# Vector DB 통합 시스템 ## 개요 회의록 작성 시스템을 위한 Vector DB 기반 용어집 및 관련자료 검색 시스템 ## 주요 기능 1. **용어집 (Term Glossary)** - PostgreSQL + pgvector 기반 - 맥락 기반 용어 설명 제공 - Claude AI 연동 2. **관련자료 (Related Documents)** - Azure AI Search 기반 (별도 인덱스) - Hybrid Search + Semantic Ranking - 회의록 유사도 검색 ## 기술 스택 - Python 3.11+ - FastAPI (REST API) - PostgreSQL + pgvector (용어집) - Azure AI Search (관련자료) - Azure OpenAI (Embedding) - Claude 3.5 Sonnet (LLM) - Redis (캐싱) ## 프로젝트 구조 ``` vector/ ├── src/ │ ├── models/ # 데이터 모델 │ ├── db/ # DB 연동 (PostgreSQL, Azure Search) │ ├── services/ # 비즈니스 로직 │ ├── api/ # REST API │ └── utils/ # 유틸리티 (임베딩, 설정 등) ├── scripts/ # 초기화 및 데이터 로딩 스크립트 └── tests/ # 테스트 ``` ## 설치 및 실행 ### 1. 환경 설정 ```bash # .env 파일 생성 cp .env.example .env # .env 파일을 열어 실제 API 키 및 데이터베이스 정보 입력 # - POSTGRES_* (PostgreSQL 접속 정보) # - AZURE_OPENAI_* (Azure OpenAI API 키 및 엔드포인트) # - AZURE_SEARCH_* (Azure AI Search API 키 및 엔드포인트) # - CLAUDE_API_KEY (Claude API 키) ``` ### 2. 의존성 설치 ```bash # 가상환경 생성 (권장) python -m venv venv source venv/bin/activate # Linux/Mac # venv\Scripts\activate # Windows # 패키지 설치 pip install -r requirements.txt ``` ### 3. 설정 검증 ```bash # 모든 설정이 올바른지 확인 python scripts/validate_setup.py ``` ### 4. 데이터 로딩 ```bash # 용어집 데이터 로딩 (PostgreSQL 테이블 자동 생성 및 데이터 삽입) python scripts/load_terms.py # 관련자료 데이터 로딩 (Azure AI Search 인덱스 생성 및 데이터 업로드) python scripts/load_documents.py ``` ### 5. API 서버 실행 ```bash # 방법 1: 직접 실행 python -m src.api.main # 방법 2: uvicorn 사용 (개발 모드) uvicorn src.api.main:app --reload --host 0.0.0.0 --port 8000 ``` ### 6. API 문서 확인 브라우저에서 다음 주소로 접속: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## API 엔드포인트 ### 용어집 API - `POST /api/terms/search` - 용어 검색 - `GET /api/terms/{term_id}` - 용어 상세 조회 - `POST /api/terms/{term_id}/explain` - 맥락 기반 용어 설명 (Claude AI) ### 관련자료 API - `POST /api/documents/search` - 관련 문서 검색 (Hybrid Search) - `GET /api/documents/related/{meeting_id}` - 관련 회의록 추천 - `POST /api/documents/{doc_id}/summarize` - 유사 내용 요약 (Claude AI) ## 테스트 ### 설정 검증 테스트 ```bash # 환경 설정 및 의존성 확인 python scripts/validate_setup.py ``` ### 데이터 로딩 테스트 ```bash # 데이터 파일 로드 및 임베딩 생성 검증 python tests/test_data_loading.py ``` ### API 테스트 ```bash # API 서버가 실행 중인 상태에서: pytest tests/test_api.py -v ``` 자세한 테스트 가이드는 [TESTING.md](TESTING.md) 참조 ## 문서 - [TESTING.md](TESTING.md) - 상세한 테스트 가이드 및 문제 해결 - [IMPLEMENTATION_SUMMARY.md](IMPLEMENTATION_SUMMARY.md) - 구현 완료 보고서 - [용어집 구현방안](../design/구현방안-용어집.md) - [관련자료 구현방안](../design/구현방안-관련자료.md) - [아키텍처 최적안 결정](../design/아키텍처_최적안_결정.md)