diff --git a/research/rag/251110_gemini_file_search_api_테스트_및_콜드메일_개선방안_평가.md b/research/rag/251110_gemini_file_search_api_테스트_및_콜드메일_개선방안_평가.md index 98e3767..fda73be 100644 --- a/research/rag/251110_gemini_file_search_api_테스트_및_콜드메일_개선방안_평가.md +++ b/research/rag/251110_gemini_file_search_api_테스트_및_콜드메일_개선방안_평가.md @@ -104,8 +104,8 @@ Google Gemini File Search API는 파일을 자동으로 청크·색인·임베 **제약**: - 청크 내용 직접 조회 불가 (블랙박스) -- 무료 tier 쿼터 제한 (분당 요청 제한) -- 48시간 자동 삭제 정책 +- 무료 tier 쿼터 제한 (RPM 5회, RPD 25회) +- Files API 임시 객체 48시간 삭제 (Store 색인 데이터는 영구 보존) --- @@ -145,12 +145,12 @@ Google Gemini File Search API는 파일을 자동으로 청크·색인·임베 - 개선: Google 최적화 청크 + grounding_metadata - 효과: 근거 출처 자동 추적, 답변 신뢰도 향상 -### 5.3 치명적 제약사항 +### 5.3 주요 제약사항 -**48시간 자동 삭제**: -- Files API: 업로드 후 48시간 자동 삭제 -- File Search Store: 별도 삭제 필요 -- 영향: 콜드메일 과거 IR 자료 재조회 불가 +**Files API vs File Search Store 저장 정책**: +- Files API 임시 객체: 업로드 후 48시간 자동 삭제 +- File Search Store 색인 데이터: 수동 삭제 전까지 영구 보존 +- 영향: 과거 IR 자료 재조회 가능 (이전 평가 오류 수정됨) **비용 구조**: - 색인 생성: $0.15/1M 토큰 (최초 1회) @@ -163,6 +163,11 @@ Google Gemini File Search API는 파일을 자동으로 청크·색인·임베 - 내부 문서 업로드 보안 리스크 - 감사 로그 제한적 +**무료 tier 실용성 제약 (실질적 장애물)**: +- RPM 5회: 동시 사용자 10명 기준 30초 내 소진 +- RPD 25회: 일일 처리량 극히 제한적 +- 프로덕션 적용 시 유료 tier 필수 ($250+ 지출 후 Tier 2 권장) + ### 5.4 IR 평가 품질 개선 효과 분석 참고: rb8001/app/services/startup_valuation.py:38-72, 296-314 @@ -177,43 +182,50 @@ Google Gemini File Search API는 파일을 자동으로 청크·색인·임베 - seed 탈출하고 증거 2개 이상 시 신뢰도가 0.7~0.8로 상승 - grounding_metadata로 근거 제공하여 설명가능성 개선 -**실무 운영 제약**: -- 48시간 삭제 제약으로 전면 교체 불가 -- "신속 PoC·임시 분석"은 File Search 활용 -- "영구 보관·재조회"는 Chroma/pgvector 유지 -- 하이브리드 병행 운영 권장 +**실무 운영 권장사항**: +- 무료 tier RPM/RPD 제약으로 프로덕션 즉시 적용 어려움 +- 유료 tier 전환 후 ChromaDB/pgvector 대체 검토 가능 +- 초기 단계: 샤도우 라우팅으로 정확도·비용·속도 A/B 테스트 +- File Search Store는 영구 보존되므로 재조회 시나리오 문제 없음 --- ## 6. 결론 및 권장사항 -### 6.1 전면 교체 비권장 +### 6.1 즉시 전면 교체 비권장 (단계적 전환 권장) **이유**: -1. 48시간 제한: 과거 IR 자료 재조회 시나리오 차단 -2. 데이터 주권: 외부 의존 보안 리스크 +1. 무료 tier 제약: RPM 5회/RPD 25회로 프로덕션 불가능 +2. 데이터 주권: 외부 의존 보안 리스크 (내부 문서 업로드) 3. 현재 시스템 우수: ChromaDB/pgvector 안정적 운영 중 +4. 비용 불확실성: 유료 tier 전환 후 비용 검증 필요 -### 6.2 선택적 활용 시나리오 +### 6.2 단계적 적용 시나리오 -**PoC 및 신속 분석**: -- 임시 IR 자료 빠른 평가 (48시간 이내) -- 신규 스타트업 초기 스크리닝 +**1단계: 무료 tier 검증 (현재 가능)**: +- 개발/테스트 환경에서 품질 검증 +- 소량 IR 자료 정확도 비교 테스트 +- 비용 대비 효과 측정 -**하이브리드 아키텍처**: -- Gemini File Search: 임시 분석 -- ChromaDB/pgvector: 영구 저장 -- 양쪽 동시 저장 후 비교 검증 +**2단계: 유료 tier 샤도우 라우팅**: +- 트래픽 10% Gemini로 분기 +- ChromaDB와 동시 처리 후 결과 비교 +- 3개월 A/B 테스트로 정확도·비용·속도 평가 -**멀티모달 확장**: +**3단계: 점진적 전환 또는 하이브리드 운영**: +- 평가 결과에 따라 비율 조정 (10% → 50% → 100%) +- 또는 용도별 분리: 신규 분석은 Gemini, 레거시 데이터는 ChromaDB + +**멀티모달 확장 기회**: - 이미지/동영상 포함 IR 자료 처리 - Gemini의 멀티모달 기능 활용 ### 6.3 최종 권장사항 -**현재 시스템 유지**: skill-rag-file + ChromaDB + pgvector -**Gemini 병행 테스트**: 트래픽 10% 샤도우 라우팅 -**의사결정 기준**: 3개월 A/B 테스트 후 정확도·비용·속도 비교 +**단기 (1~3개월)**: 현재 시스템 유지 + 무료 tier 품질 검증 +**중기 (3~6개월)**: 유료 tier 전환 후 10% 샤도우 라우팅 A/B 테스트 +**장기 (6개월~)**: 테스트 결과 기반 점진적 전환 또는 하이브리드 운영 +**핵심 수정**: File Search Store 영구 보존 확인으로 재조회 제약 해소됨 --- @@ -235,10 +247,11 @@ Google Gemini File Search API는 파일을 자동으로 청크·색인·임베 ### 7.3 제한사항 -- 무료 tier 쿼터: 분당 요청 제한 (429 에러) -- 저장 한도: 프로젝트 1GB (무료), 10GB (Tier 1) +- 무료 tier 쿼터: RPM 5회, RPD 25회 (프로덕션 사용 불가) +- 저장 한도: 프로젝트 1GB (무료), 10GB (Tier 1), 100GB (Tier 2), 1TB (Tier 3) - 파일 크기: 최대 100MB -- 보존 기간: 48시간 (Files API) +- File Search Stores: 프로젝트당 최대 10개 +- Files API 임시 객체: 48시간 자동 삭제 (Store 색인 데이터는 영구 보존) ### 7.4 공식 문서 @@ -248,7 +261,21 @@ Google Gemini File Search API는 파일을 자동으로 청크·색인·임베 --- -**검증 완료**: 2025-11-10 -**테스트 환경**: 51124 서버, 실제 운영 API 키 사용 +**검증 완료**: 2025-11-10 +**테스트 환경**: 51124 서버, 실제 운영 API 키 사용 **재현 가능**: venv_gemini_test 환경 보존됨 +--- + +## 8. 구현 방안 (최종 형태) + +1. **rb8001/app/services/gemini_file_search_client.py 생성**: `google-genai` SDK 기반 비동기 클라이언트 구현, `upload_and_index()`, `query()`, `delete_store()` 메서드 제공, API 키는 settings.GEMINI_API_KEY로 환경변수화 + +2. **rb8001/app/services/coldmail_processor.py 수정**: 기존 skill-rag-file 호출 경로와 병행하여 Gemini File Search 경로 추가, 환경변수 `USE_GEMINI_FILE_SEARCH=true` 시 Gemini 사용, 결과 비교 로깅 추가 + +3. **rb8001/app/services/ir_analyzer.py 수정**: RAG 쿼리 로직에 Gemini grounding_metadata 파싱 추가, 근거 출처(청크 ID, 페이지 번호) 자동 추출하여 startup_valuation.py의 evidence_count 계산에 반영 + +4. **requirements.txt에 google-genai 추가**: `google-genai>=1.49.0` 의존성 추가, Docker 이미지 재빌드 필요, 기존 httpx 사용으로 aiohttp 선택사항 + +5. **.env 및 settings.py 업데이트**: `GEMINI_API_KEY`, `USE_GEMINI_FILE_SEARCH` (default: false), `GEMINI_FILE_SEARCH_STORE_ID` 환경변수 추가, aistudio.google.com에서 API 키 발급 후 설정 +