▶️ Runbook¶
🛠️ Prerequisites¶
uv sync --locked --all-groupscp .env.example .envand setOPENAI_API_KEYpoe ingest-papers --strategy llamaindex(and/or--strategy langchain)
🚀 Launch¶
poe run-papers-rag
Streamlit starts with --server.fileWatcherType none so HuggingFace
transformers lazy imports do not spam ModuleNotFoundError: torchvision.
Restart after code changes — auto-reload is off.
🔑 OpenAI key¶
Streamlit does not source .zshrc. It inherits exported variables from the
process that launched it.
Source |
Works |
|---|---|
Repo-root |
Yes — loaded from the monorepo root even though Streamlit cwd is the app script dir |
|
Yes |
Assignment without |
No |
Streamlit Cloud |
Yes (deploy) |
Process env wins over .env (override=False).
🎛️ UI¶
Control |
Meaning |
|---|---|
Strategy |
LlamaIndex or LangChain (isolated |
Similarity top-k |
Chunks kept after overfetch ( |
Clear chat |
Reset session messages |
Sources |
Citations expander, collapsed |
Sidebar also shows LLM id, embed model, Chroma path, and index ready/empty.
ask() routing
(RAG stack):
Corpus questions (all papers, common theme) →
catalog.jsonAuthor questions (who is the main author, who wrote) →
catalog.jsonOtherwise → vector retrieve
If the index is empty: poe ingest-papers --strategy llamaindex (or
langchain). Chart-axis or /uni00 sources: rebuild, then restart Streamlit.