Streamlit app¶
The Streamlit app is the main user-facing interface for DocAsk.
Current file:
app/streamlit_app.py
Goal¶
The app lets a user:
select a local software project;
build a DocAsk corpus for that project;
ask questions about the selected project;
choose the retrieval backend;
enable or disable LLM generation;
inspect retrieved sources;
keep the last selected project and settings after reopening the app.
Run command¶
streamlit run app/streamlit_app.py
The app usually opens at:
http://localhost:8501/
Project setup¶
The app contains a Project setup section.
Current supported mode:
Local project path
Planned mode:
Public GitHub repository URL
When a local project path is provided, DocAsk can build a project-specific corpus.
For example:
/path/to/mmore
generates:
data/projects/mmore/project_config.yaml
data/projects/mmore/corpus.jsonl
Persistent state¶
The app stores local UI state in:
data/app_state.json
This can include:
last project name;
last project path;
last corpus path;
last project config path;
selected retrieval backend;
number of sources;
whether LLM is enabled;
source display options;
debug display options.
This file is local and should normally not be committed.
Retrieval backend¶
The app supports:
simple
mmore
For a corpus built from the interface, the safest first option is:
simple
The simple backend reads the generated corpus.jsonl directly.
The mmore backend should be used when the MMORE index has been built for the relevant corpus.
LLM caching¶
The app uses Streamlit resource caching to avoid reloading the local LLM provider for every question.
The first LLM query may take longer because the model is loaded. Later queries reuse the cached provider unless the config cache is cleared.
Sources¶
Retrieved sources are displayed by default.
The sidebar can:
hide retrieved sources;
show full source content;
show debug information.
This makes the interface useful both for users and for development debugging.