# Task-512: InsuRo 벡터 검색 통합 + Drive 커넥터 고도화 (OpenRAG Phase 3)

## 목표
Phase 1/2에서 구현된 pgvector 인프라 + Docling 파싱을 InsuRo 서비스에 실전 통합한다.
금소법 PDF 자동 인덱싱, 프론트엔드 검색 UI, Google Drive 변경 감지를 구현한다.

## 선행 작업 (완료)
- ✅ Phase 1: pgvector 인프라 (`/home/jay/workspace/libs/` — chunker, embedding, ingest, search, SQL 마이그레이션)
- ✅ Phase 2: Docling 파싱 (`/home/jay/workspace/libs/doc_parser.py` + ai_parser.py 통합)
- ✅ FastAPI 엔드포인트: `POST /api/insuro/search` (main.py에 이미 추가됨)

## 구현 범위

### 1. Supabase 마이그레이션 실행
- `/home/jay/workspace/libs/migrations/001_pgvector_setup.sql`을 InsuRo Supabase에 적용
- Supabase 대시보드 SQL Editor 또는 psql로 실행
- 환경변수: `INSURO_NEW_SUPABASE_URL`, `INSURO_NEW_SERVICE_ROLE_KEY` (`.env.keys` 참조)
- 마이그레이션 성공 확인: `SELECT * FROM knowledge_documents LIMIT 1;` 에러 없으면 OK

### 2. 금소법 PDF 자동 인덱싱 스크립트
- 경로: `/home/jay/projects/InsuRo/server/ingest_fcpa.py` (신규)
- 동작:
  1. Google Drive에서 금소법 PDF 다운로드 (gdrive.py 활용)
  2. Docling으로 파싱 (doc_parser.py)
  3. 청킹 → 임베딩 → Supabase 저장 (ingest.py)
  4. source='insuro_fcpa' 태깅
- CLI 실행: `python3 ingest_fcpa.py` (1회성 또는 cron)
- 중복 방지: content_hash로 이미 인덱싱된 문서 스킵
- 참고: 금소법 PDF 경로 `/home/jay/.cokacdir/workspace/autoset/금융소비자_보호에_관한_법률법률제21065호20260102.pdf`

### 3. InsuRo 프론트엔드 검색 UI
- 기존 FCPA 가이드 페이지(`src/pages/FcpaGuide.tsx`)에 검색 기능 추가
- 검색창: 텍스트 입력 → `POST /api/insuro/search` 호출 → 결과 표시
- 검색 결과 UI: 관련도 점수 + 문서 제목 + 매칭 텍스트 스니펫
- 검색 없을 때: 기존 summary + checklist 그대로 표시 (비파괴)
- shadcn 컴포넌트 활용 (Input, Card, Badge 등)

### 4. Google Drive 변경 감지 + 자동 인제스션
- 경로: `/home/jay/projects/InsuRo/server/gdrive_sync.py` (신규)
- 기능:
  1. Google Drive 폴더를 주기적으로 스캔 (Changes API 또는 폴링)
  2. 새 PDF 발견 시 자동 다운로드 → Docling 파싱 → 인덱싱
  3. 삭제된 파일은 인덱스에서도 제거
- 동기화 상태: sync_status 테이블 또는 로컬 JSON으로 관리
- 환경변수: INSURO_GOOGLE_CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN, DRIVE_FOLDER_ID (`.env.keys`)

### 5. 관리자 인제스션 UI (선택)
- AdminFcpa 페이지에 "문서 인덱싱" 버튼 추가
- 버튼 클릭 → `POST /api/insuro/ingest` → 금소법 PDF 인제스션 트리거
- 인덱싱 상태/진행률 표시

## 테스트
- ingest_fcpa.py: 금소법 PDF 인덱싱 → 검색으로 "제22조" 조회 확인
- 프론트엔드: 검색 입력 → 결과 표시 E2E
- Drive 동기화: 파일 추가/삭제 시 인덱스 반영 확인
- 기존 FcpaGuide 기능 미영향 확인

## 주의사항
- libs/ 모듈 직접 수정 금지. import해서 사용만 할 것.
- 기존 main.py에 이미 추가된 search 엔드포인트 재사용
- API 키 하드코딩 금지
- InsuRo 서버 포트: 8001 (기존)
- InsuRo 프로젝트: `/home/jay/projects/InsuRo/`