@@ -34,8 +34,8 @@ Local Multimodal AI Chat integrates several AI models behind a single Streamlit
3434
3535``` mermaid
3636flowchart TD
37- U["User"] --> UI["Streamlit UI (app.py)"]
38- UI -->|"record / upload audio"| W["Whisper ASR (audio_handler)"]
37+ U["User"] --> UI["Streamlit UI (src/ app.py)"]
38+ UI -->|"record / upload audio"| W["Whisper ASR (src/ audio_handler)"]
3939 W --> R["ChatAPIHandler router"]
4040 UI -->|"text / image / PDF / commands"| R
4141 UI -->|"upload PDF"| P["PDF handler: pypdfium2 + chunking"]
@@ -50,15 +50,17 @@ flowchart TD
5050
5151** Module layout**
5252
53+ All Python source lives under ` src/ ` .
54+
5355| File | Responsibility |
5456| ------| ----------------|
55- | ` app.py ` | Streamlit UI, session state, orchestration |
56- | ` chat_api_handler.py ` | Endpoint router (Ollama / OpenAI), text + image + RAG calls |
57- | ` vectordb_handler.py ` | Chroma client + Ollama embeddings |
58- | ` pdf_handler.py ` | PDF text extraction, chunking, indexing |
59- | ` audio_handler.py ` | Whisper transcription (webm→wav via ffmpeg) |
60- | ` database_operations.py ` | SQLite repositories (messages, settings) |
61- | ` utils.py ` / ` prompt_templates.py ` / ` html_templates.py ` | Helpers, prompts, UI styling |
57+ | ` src/ app.py` | Streamlit UI, session state, orchestration |
58+ | ` src/ chat_api_handler.py` | Endpoint router (Ollama / OpenAI), text + image + RAG calls |
59+ | ` src/ vectordb_handler.py` | Chroma client + Ollama embeddings |
60+ | ` src/ pdf_handler.py` | PDF text extraction, chunking, indexing |
61+ | ` src/ audio_handler.py` | Whisper transcription (webm→wav via ffmpeg) |
62+ | ` src/ database_operations.py` | SQLite repositories (messages, settings) |
63+ | ` src/ utils.py` / ` src/ prompt_templates.py` / ` src/ html_templates.py` | Helpers, prompts, UI styling |
6264
6365## Tech Stack
6466
@@ -105,8 +107,8 @@ Running Ollama inside Docker is slow on Windows (system calls are translated bet
105107 ```
1061084 . ** Run** :
107109 ``` bash
108- python3 database_operations.py # initializes the SQLite database
109- streamlit run app.py
110+ python3 src/ database_operations.py # initializes the SQLite database
111+ streamlit run src/ app.py
110112 ```
1111135 . ** Pull models** as described above.
112114
0 commit comments