# 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 한다.