# Optional retrieval layer. Not required: without these, search_local_data falls
# back to BM25 keyword search, which needs nothing installed.
#
#     python3 -m venv .venv
#     .venv/bin/python -m pip install -r requirements-rag.txt
#     AGENT_RAG=hybrid .venv/bin/python run.py "Wartungsfenster?"
#
# langchain-core, not the `langchain` metapackage: nothing here imports `langchain`
# itself, and the metapackage drags in integrations this project has no use for.
# Installed and tested at langchain-core 1.6.6, Python 3.13.
#
# langchain-text-splitters is a separate distribution because LangChain 1.x moved
# the splitters out of the main package.
langchain-core>=1.6,<2
langchain-text-splitters>=1,<2

# ONNX embeddings on CPU. ~220 MB for the default model, against ~2 GB for the
# torch-based alternative, and this machine may already be running a local LLM.
fastembed>=0.7

# Notes:
#
# faiss is deliberately NOT a dependency. langchain-core ships InMemoryVectorStore,
# which is numpy-based and adequate into the tens of thousands of chunks; the
# project has no use for a separate vector DB, and adding one would add a service
# to run. If the corpus outgrows it, swap the store in store.py -- nothing above
# that file changes.
#
# The embedding model itself downloads on first use (~220 MB, cached under
# ~/.cache/fastembed or $FASTEMBED_CACHE_PATH). Set it ahead of time with:
#     AGENT_RAG_MODEL=sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
