Django==5.2.17
django-cors-headers==4.7.0
djangorestframework==3.17.2
docker==7.0.0
gunicorn==22.0.0
httpx==0.27.0
numpy==1.26.4
pyjwt==2.7.0
pypdf==6.19.0
requests==2.29.0
uvicorn==0.30.0
channels==4.2.2
onnxruntime==1.18.1
psutil==5.9.0
python-docx==1.1.0
markdown==3.5.2
beautifulsoup4==4.12.3
# Resizes and re-encodes frames in model_control/views.py.
Pillow==12.3.0
# The Dockerfile installs openwakeword with --no-deps (it pins a tflite-runtime
# with no Python 3.12 wheel), so its module-level imports must be declared here.
scipy==1.17.1
scikit-learn==1.9.0

# dev
pytest==8.2.2

# Chroma loader dependencies
#
# Do not add sentence-transformers here. Embeddings come from ChromaDB's
# ONNXMiniLM_L6_V2 (see vector_db_control/singletons.py), which runs the same
# all-MiniLM-L6-v2 weights on onnxruntime. sentence-transformers requires torch,
# whose Linux wheel hard-depends on ~4.5 GB of CUDA wheels that are dead weight
# here — the backend only ever talks to /dev/tenstorrent, never a GPU.
chromadb==0.5.3
langchain-core==0.3.81
langchain-text-splitters==0.3.11
chroma-hnswlib==0.7.3
--no-binary=chroma-hnswlib
pysqlite3==0.5.3

# RAG retrieval pipeline (hybrid BM25 + ONNX cross-encoder rerank; torch-free).
# tokenizers/huggingface_hub are pinned to the versions already resolved
# transitively today so they stay when sentence-transformers is removed.
rank_bm25==0.2.2
tokenizers==0.22.2
huggingface_hub==0.36.2
