A chat assistant for the University of Chicago's Research Computing Center. Ask about accounts, SSH, Slurm jobs, storage, and software — answers are retrieved from the official RCC User Guide, with citations.
Built with Streamlit and the Mistral API. Read-only and RAG-only — it reads documentation, never runs commands on the cluster.
- 🔎 Grounded answers — retrieves and cites real RCC docs; no hallucinated commands.
- 📎 File uploads — drop in a PDF or text file and ask about it.
- 💬 Streaming replies with conversation memory for follow-ups.
- 🗂️ Self-updating docs — a one-command refresh keeps the bundled guide current.
pip install -r requirements.txt
export MISTRAL_API_KEY=sk-...
streamlit run app.py # → http://localhost:8501| Variable | Default | Purpose |
|---|---|---|
MISTRAL_API_KEY |
(required) | Mistral API key |
RCC_DOCS_PATH |
./docs |
User Guide markdown source |
RCC_WEB_PATH |
./web |
Scraped website text source |
LOG_LEVEL |
WARNING |
Python log level |
The model is given two tools — search_docs(query) to rank the documentation tree and read_doc(path) to read a page — so every file under docs/ and web/ is reachable, and answers stay tied to the source. Reads are confined to those directories.
The bundled docs//web/ snapshot is refreshed from the upstream user-guide repo. Run from an internet-connected host:
./refresh-docs.sh # sync docs + web, stamp docs_snapshot.json
./refresh-docs.sh --scrape # also re-scrape the RCC websiteapp.py # the Streamlit app (UI + RAG loop)
refresh-docs.sh # pull upstream docs → docs/ + web/
docs/ # RCC User Guide (markdown)
web/ # scraped RCC website (text)
docs_snapshot.json # source commit + sync date