feat: rag md file

This commit is contained in:
djeon 2025-10-30 11:26:23 +09:00
parent 155894c3ff
commit 2481fa907b

132
rag/docs/README.md Normal file
View File

@ -0,0 +1,132 @@
# 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)