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

- 작성자: [민트](https://community.clauders.ai/member/imported-member-smUiDI8zkn)
- 공간: [비즈니스 / 재테크](https://community.clauders.ai/business)
- 게시: 2025-12-01
- 연재: [고객에서 출발하는 사업 실행 계획](https://community.clauders.ai/series/working-backwards-roadmap) 3/3편
- 태그: #비즈니스로드맵
- 주소: https://community.clauders.ai/business/post/openai%EC%97%90%EC%84%9C-gemini-file-search%EB%A1%9C-pkm-rag-%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98-b2d18f37-ed08-899e-81f9-0c1e64aef03c

---

### 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**로 직접 구현했습니다.

```
# 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 검색 요청 구조

```
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](https://ai.google.dev/gemini-api/docs/file-search))

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

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