kpaa / requirements.txt
scvcoder's picture
deps: sqlite-vec + sentence-transformers 추가 (dense retrieval + reranker)
13e8911 verified
# 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 한다.