| # Hugging Face Spaces (Gradio SDK + ZeroGPU) 빌드용 평탄화 의존성. | |
| # 로컬 노트북 사용자는 이 파일을 쓰지 말고 `pip install -e ".[llm]"` (또는 pyproject.toml) 사용. | |
| # 이 파일은 HF Spaces 가 자동으로 `pip install -r requirements.txt` 로 처리. | |
| # | |
| # llama-cpp-python 은 *의도적으로* 빠짐 — HF Spaces 에서는 ZeroGPU 백엔드 | |
| # (transformers + @spaces.GPU) 가 활성화되므로 필요 없음. | |
| # ── core (pyproject.toml dependencies 와 동기화) ── | |
| httpx[http2]>=0.27 | |
| pydantic>=2.6 | |
| pydantic-settings>=2.2 | |
| lxml>=5 | |
| diskcache>=5.6 | |
| tenacity>=8 | |
| platformdirs>=4 | |
| fastapi>=0.110 | |
| uvicorn[standard]>=0.27 | |
| python-dotenv>=1 | |
| pyyaml>=6 | |
| huggingface-hub>=1.3 # transformers 5.x 가 요구. Gradio 5.20+ 은 HfFolder 의존 제거. | |
| tqdm>=4.66 | |
| sse-starlette>=2.1 | |
| truststore>=0.10 | |
| # ── HF Spaces (ZeroGPU + Gradio) ── | |
| gradio>=5.0 | |
| transformers>=5.0 # Gemma 4 토크나이저는 5.x 부터 (extra_special_tokens 리스트 포맷) | |
| torch>=2.4 | |
| accelerate>=0.34 | |
| spaces>=0.30 | |
| # ── RAG retrieval — dense + reranker ── | |
| # 누락 시 _safe_dense_search 가 silent fail 로 BM25 만 동작 → 분야별 안내서 | |
| # 매칭이 토큰 빈도 편향(예: 약국 편 짧은 FAQ 가 학원 편 대신 잡힘) 발생. | |
| sqlite-vec>=0.1 # data/embeddings.sqlite 의 chunk_vectors (vec0) 가상테이블 로드 | |
| sentence-transformers>=3.0 # BAAI/bge-m3 임베더 + cross-encoder 리랭커 | |
| # ── 패키지 자체 ── | |
| # HF Spaces 는 requirements.txt 처리 시점에 app 파일이 아직 /home/user/app 에 | |
| # mount 되어 있지 않아 `-e .` 가 동작하지 않는다. 대신 app.py 에서 | |
| # `src/` 를 sys.path 에 prepend 한다. | |