# namanjain221995/personal-llm-chabot architecture

> Architecture diagram of the GitHub repository namanjain221995/personal-llm-chabot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/namanjain221995/personal-llm-chabot
- Repository: https://github.com/namanjain221995/personal-llm-chabot

## Overview

TechSara is a local-first AI analyst for Salesforce and other user-provided sources. A user asks through the chat UI; the orchestrator prepares context and dispatches to an answering mode such as warehouse SQL, record retrieval, live Salesforce, web research, or document analysis, then streams a cited answer and optional artifacts. The graph also retains documented memory, reporting, video, and developer-API capabilities. Evidence is limited to the README, tree, and sampled excerpts; uncertain internal wiring is omitted.

Main entry points: [`orchestrator/app/engines/router.py`](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/router.py) (Engine router), [`orchestrator/app/main.py`](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/main.py) (Chat orchestrator), [`orchestrator/app/engines/sql.py`](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/sql.py) (Warehouse SQL), [`orchestrator/app/engines/report.py`](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/report.py) (Report generation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["User experience"]
  node_frontend["Chat interface<br/>[ChatApp.tsx]"]
  node_proxy["API proxy<br/>[proxy.ts]"]
end

subgraph group_orchestration["Request orchestration"]
  node_main["Chat orchestrator<br/>[main.py]"]
  node_memory["Cross-chat memory<br/>[memory_semantic.py]"]
  node_compaction["Context compaction<br/>[compaction.py]"]
  node_router["Engine router<br/>[router.py]"]
end

subgraph group_engines["Answer engines"]
  node_sql["Warehouse SQL<br/>[sql.py]"]
  node_rag["Record retrieval<br/>[rag.py]"]
  node_sfintel["Salesforce intelligence<br/>[sf_intel.py]"]
  node_search["Web search<br/>[search.py]"]
  node_research["Deep research<br/>[deep_research.py]"]
  node_documents["Document analysis<br/>[document.py]"]
  node_reports["Report generation<br/>[report.py]"]
  node_video["Video analysis<br/>[pipeline.py]"]
end

subgraph group_data["Data and integrations"]
  node_warehouse[("Analytics warehouse<br/>[storage.py]")]
  node_brain["Salesforce Brain<br/>[graph.py]"]
  node_salesforce[("Salesforce org")]
  node_web["Self-hosted search"]
  node_postgres[("Application database<br/>[db.py]")]
end

subgraph group_platform["Platform services"]
  node_artifacts["Artifact pipeline<br/>[pipeline.py]"]
  node_chart["Chart preparation<br/>[chart_pipeline.py]"]
  node_publicapi["Developer API<br/>[endpoints.py]"]
  node_auth["Authentication<br/>[api.py]"]
end

node_user(("Analyst"))

node_user -->|"asks"| node_frontend
node_frontend -->|"sends request"| node_proxy
node_proxy -->|"proxies chat"| node_main
node_main -->|"recalls context"| node_memory
node_main -->|"compacts context"| node_compaction
node_main -->|"dispatches turn"| node_router
node_router -->|"selects mode"| node_sql
node_router -->|"selects mode"| node_rag
node_router -->|"selects mode"| node_sfintel
node_router -->|"selects mode"| node_search
node_router -->|"selects mode"| node_research
node_router -->|"selects mode"| node_documents
node_router -->|"selects mode"| node_reports
node_sql -->|"queries"| node_warehouse
node_rag -->|"retrieves knowledge"| node_brain
node_sfintel -->|"queries org"| node_salesforce
node_search -.->|"searches sources"| node_web
node_research -.->|"searches sources"| node_web
node_documents -->|"reads uploads"| node_artifacts
node_reports -->|"renders deliverables"| node_artifacts
node_video -->|"checkpoints stages"| node_postgres
node_sql -->|"prepares chart"| node_chart
node_reports -->|"prepares chart"| node_chart
node_main -->|"starts analysis"| node_video
node_publicapi -->|"dispatches requests"| node_router
node_auth -->|"stores identity"| node_postgres

click node_frontend "https://github.com/namanjain221995/personal-llm-chabot/blob/main/frontend/components/ChatApp.tsx"
click node_proxy "https://github.com/namanjain221995/personal-llm-chabot/blob/main/frontend/lib/proxy.ts"
click node_main "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/main.py"
click node_memory "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/memory_semantic.py"
click node_compaction "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/compaction.py"
click node_router "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/router.py"
click node_sql "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/sql.py"
click node_rag "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/rag.py"
click node_sfintel "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/sf_intel.py"
click node_search "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/search.py"
click node_research "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/deep_research.py"
click node_documents "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/document.py"
click node_reports "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/report.py"
click node_video "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/video/pipeline.py"
click node_warehouse "https://github.com/namanjain221995/personal-llm-chabot/blob/main/sync-worker/syncworker/storage.py"
click node_brain "https://github.com/namanjain221995/personal-llm-chabot/blob/main/brain/Salesforce-Org-Data-main/src/graphrag/graph.py"
click node_postgres "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/db.py"
click node_artifacts "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/artifacts/pipeline.py"
click node_chart "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/core/chart_pipeline.py"
click node_publicapi "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/publicapi/endpoints.py"
click node_auth "https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/authn/api.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_frontend,node_proxy toneBlue
class node_main,node_memory,node_compaction,node_router toneAmber
class node_sql,node_rag,node_sfintel,node_search,node_research,node_documents,node_reports,node_video toneMint
class node_warehouse,node_brain,node_salesforce,node_web,node_postgres toneRose
class node_artifacts,node_chart,node_publicapi,node_auth,node_user toneIndigo
```

## Components

### User experience

- [Chat interface](https://github.com/namanjain221995/personal-llm-chabot/blob/main/frontend/components/ChatApp.tsx): `frontend/components/ChatApp.tsx`
- [API proxy](https://github.com/namanjain221995/personal-llm-chabot/blob/main/frontend/lib/proxy.ts): `frontend/lib/proxy.ts`

### Request orchestration

- [Chat orchestrator](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/main.py): `orchestrator/app/main.py`
- [Cross-chat memory](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/memory_semantic.py): `orchestrator/app/memory_semantic.py`
- [Context compaction](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/compaction.py): `orchestrator/app/compaction.py`
- [Engine router](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/router.py): `orchestrator/app/engines/router.py`

### Answer engines

- [Warehouse SQL](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/sql.py): `orchestrator/app/engines/sql.py`
- [Record retrieval](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/rag.py): `orchestrator/app/engines/rag.py`
- [Salesforce intelligence](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/sf_intel.py): `orchestrator/app/engines/sf_intel.py`
- [Web search](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/search.py): `orchestrator/app/engines/search.py`
- [Deep research](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/deep_research.py): `orchestrator/app/engines/deep_research.py`
- [Document analysis](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/document.py): `orchestrator/app/engines/document.py`
- [Report generation](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/engines/report.py): `orchestrator/app/engines/report.py`
- [Video analysis](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/video/pipeline.py): `orchestrator/app/video/pipeline.py`

### Data and integrations

- [Analytics warehouse](https://github.com/namanjain221995/personal-llm-chabot/blob/main/sync-worker/syncworker/storage.py): `sync-worker/syncworker/storage.py`
- [Salesforce Brain](https://github.com/namanjain221995/personal-llm-chabot/blob/main/brain/Salesforce-Org-Data-main/src/graphrag/graph.py): `brain/Salesforce-Org-Data-main/src/graphrag/graph.py`
- **Salesforce org**
- **Self-hosted search**
- [Application database](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/db.py): `orchestrator/app/db.py`

### Platform services

- [Artifact pipeline](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/artifacts/pipeline.py): `orchestrator/app/artifacts/pipeline.py`
- [Chart preparation](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/core/chart_pipeline.py): `orchestrator/app/core/chart_pipeline.py`
- [Developer API](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/publicapi/endpoints.py): `orchestrator/app/publicapi/endpoints.py`
- [Authentication](https://github.com/namanjain221995/personal-llm-chabot/blob/main/orchestrator/app/authn/api.py): `orchestrator/app/authn/api.py`

### Other components

- **Analyst**

## Connections

- Analyst → Chat interface: asks
- Chat interface → API proxy: sends request
- API proxy → Chat orchestrator: proxies chat
- Chat orchestrator → Cross-chat memory: recalls context
- Chat orchestrator → Context compaction: compacts context
- Chat orchestrator → Engine router: dispatches turn
- Engine router → Warehouse SQL: selects mode
- Engine router → Record retrieval: selects mode
- Engine router → Salesforce intelligence: selects mode
- Engine router → Web search: selects mode
- Engine router → Deep research: selects mode
- Engine router → Document analysis: selects mode
- Engine router → Report generation: selects mode
- Warehouse SQL → Analytics warehouse: queries
- Record retrieval → Salesforce Brain: retrieves knowledge
- Salesforce intelligence → Salesforce org: queries org
- Web search → Self-hosted search: searches sources
- Deep research → Self-hosted search: searches sources
- Document analysis → Artifact pipeline: reads uploads
- Report generation → Artifact pipeline: renders deliverables
- Video analysis → Application database: checkpoints stages
- Warehouse SQL → Chart preparation: prepares chart
- Report generation → Chart preparation: prepares chart
- Chat orchestrator → Video analysis: starts analysis
- Developer API → Engine router: dispatches requests
- Authentication → Application database: stores identity
