OpenAI에서 Gemini File Search로 PKM RAG 마이그레이션

1. 개요

1.1 배경

기존 OpenAI Vector Store 기반 PKM RAG 시스템을 Google의 새로운 Gemini File Search 기능으로 마이그레이션했습니다. Gemini File Search는 2025년 11월에 출시된 기능으로, 관리형 RAG 서비스를 무료 스토리지와 함께 제공합니다.

1.2 마이그레이션 동기

| 항목 | OpenAI | Gemini |
|------|--------|--------|
| 스토리지 비용 | $0.10/GB/day | 무료 |
| 쿼리 임베딩 | 유료 | 무료 |
| 인덱싱 비용 | 유료 | $0.15/1M tokens (최초만) |
| 월 예상 비용 | $20+ | $0.14 |
| 답변 생성 | 별도 GPT 호출 필요 | 자동 생성 |

2. 기술 구현

2.1 아키텍처

```

┌─────────────────────────────────────────────────────────────┐

│                    Gemini File Search RAG                    │

├─────────────────────────────────────────────────────────────┤

│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐     │

│  │   init.py   │───▶│   sync.py   │───▶│  query.py   │     │

│  │ (스토어생성) │    │ (파일업로드) │    │ (시맨틱검색) │     │

│  └─────────────┘    └─────────────┘    └─────────────┘     │

│         │                 │                  │              │

│         ▼                 ▼                  ▼              │

│  ┌─────────────────────────────────────────────────────┐   │

│  │           Gemini File Search Store (7개)            │   │

│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐   │   │

│  │  │insights │ │knowledge│ │projects │ │writing  │   │   │

│  │  │CRITICAL │ │CRITICAL │ │  HIGH   │ │  HIGH   │   │   │

│  │  └─────────┘ └─────────┘ └─────────┘ └─────────┘   │   │

│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐              │   │

│  │  │ study   │ │ weekly  │ │ archive │              │   │

│  │  │  HIGH   │ │ MEDIUM  │ │ MEDIUM  │              │   │

│  │  └─────────┘ └─────────┘ └─────────┘              │   │

│  └─────────────────────────────────────────────────────┘   │

└─────────────────────────────────────────────────────────────┘

```

2.2 주요 파일 구조

```

.gemini-pkms-rag/

├── config.json          # 스토어 설정 및 경로 정의

├── init.py              # File Search Store 생성

├── sync.py              # 마크다운 파일 업로드

├── query.py             # 시맨틱 검색 실행

├── store_registry.json  # 생성된 스토어 ID 저장

└── sync_log.json        # 동기화 결과 로그

```

2.3 REST API 사용

Python SDK(v1.47.0)가 아직 File Search를 지원하지 않아 REST API로 직접 구현했습니다.

```python

# File Search Store 생성

POST https://generativelanguage.googleapis.com/v1beta/fileSearchStores

# 파일 업로드

POST https://generativelanguage.googleapis.com/upload/v1beta/{store_id}:uploadToFileSearchStore

# 시맨틱 검색 (generateContent + file_search tool)

POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent

```

2.4 검색 요청 구조

```python

data = {

    "contents": [{"parts": [{"text": query}]}],

    "tools": [{

        "file_search": {

            "file_search_store_names": store_ids  # 스토어 ID 배열

        }

    }],

    "systemInstruction": {

        "parts": [{

            "text": "You are a helpful assistant..."

        }]

    }

}

```

3. 동기화 결과

3.1 성공률

- 전체 성공률: 99.5%

- 실패 원인: 일시적 503 Service Unavailable (Gemini API 과부하)

- 동기화 시간: 약 15분

4. Claude Code 스킬 통합

4.1 스킬 업데이트

기존 24-pkm-search 스킬을 Gemini File Search로 업데이트했습니다.

4.2 트리거 키워드

다음 표현 사용 시 자동으로 PKM 검색이 실행됩니다:

- "~에 대해 검색해줘"

- "~찾아줘", "~찾아봐"

- "~뭐야?", "~뭐였지?"

- "전에 썼던 ~", "예전에 정리한 ~"

- "노트에서 ~", "PKM에서 ~"

4.3 검색 테스트

쿼리: "아카이브 AI 스터디"

결과:

- 10개 관련 문서 검색

- AI가 자동으로 종합 답변 생성

- 출처(문서명) 함께 제공

5. 비용 분석

5.1 OpenAI Vector Store (이전)

| 항목 | 계산 | 월 비용 |
|------|------|---------|
| 스토리지 | 1,000 files × 3KB × 30일 × $0.10/GB | ~$9 |
| 쿼리 임베딩 | 일 10회 × 30일 × ~$0.01 | ~$3 |
| GPT-4 답변 | 일 10회 × 30일 × ~$0.03 | ~$9 |
| 월 합계 | | ~$21 |

5.2 Gemini File Search (현재)

| 항목 | 계산 | 월 비용 |
|------|------|---------|
| 스토리지 | 무료 | $0 |
| 쿼리 임베딩 | 무료 | $0 |
| 인덱싱 | 1,000 files × 3KB × $0.15/1M tokens (최초) | ~$0.14 |
| 월 합계 | | ~$0.14 |

5.3 비용 절감

- 월간: $21 → $0.14 (**99.3% 절감**)

- 연간: $252 → $1.68 (**$250 절약**)

6. 장단점 분석

6.1 장점

1. 비용 효율성: 스토리지 및 쿼리 무료

2. 자동 답변 생성: 별도 LLM 호출 없이 RAG 답변 제공

3. 자동 청킹/임베딩: 관리형 서비스로 인프라 부담 감소

4. Grounding 메타데이터: 출처 정보 자동 제공

6.2 단점

1. SDK 미지원: Python SDK가 아직 File Search 미지원 (REST API 필요)

2. 일시적 오류: 503 에러 간헐적 발생 (재시도로 해결)

3. 미국 한정: 일부 기능 지역 제한 있음

7. 결론

OpenAI에서 Gemini File Search로 마이그레이션을 성공적으로 완료했습니다.

핵심 성과:

- PKM 파일 인덱싱 완료

- 월 비용 99.3% 절감 ($21 → $0.14)

- Claude Code 스킬 통합으로 대화형 검색 가능

- 자동 답변 생성으로 사용성 향상

향후 계획:

- 정기 동기화 자동화 (cron 또는 hook)

- 검색 결과 품질 모니터링

- Python SDK 정식 지원 시 코드 마이그레이션

8. 참고 자료

- [Gemini File Search 공식 문서](https://ai.google.dev/gemini-api/docs/file-search)

- [REST API 레퍼런스](https://ai.google.dev/api/rest)

찐후기: 일단 OPEN AI API 썼을 때보다 검색결과 빨리 나오고 (30초 걸리던 게 5-10초 걸림) 더 상세히 찾아주는 것 같음. 끗!

3
3개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요