A Streamlit chat assistant for vacuum robot buying advice, maintenance guidance, troubleshooting, and generated usage reports. The app combines a LangChain agent with a Chroma-backed RAG knowledge base and a small sample usage dataset.
- Streamlit chat UI in
app.py - LangChain agent and tool middleware in
agent/ - RAG retrieval and Chroma vector store setup in
rag/ - Knowledge source files in
data/ - Prompt templates in
prompts/ - YAML configuration in
config/
- Python 3.12+
uv- An OpenAI-compatible API key for the configured chat and embedding models
The model names are configured in config/rag.yaml. Set the API key and base URL
for your OpenAI-compatible endpoint before running the app:
export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="https://your-resource.openai.azure.com/openai/v1/"uv syncBuild or refresh the local vector store:
uv run python rag/vector_store.pyRun the Streamlit app:
uv run streamlit run app.pyuv run python -m unittest discover -s testsPlain unittest discovery also works:
uv run python -m unittestLocal runtime artifacts are intentionally ignored by git:
chroma_db/logs/md5.txt- Python cache files