跳轉至

架構

Monorepo 結構

Panacea/ ├── packages/ │ ├── backend/ # Python Flask — 統一 API + 代理串流 + RAG │ ├── cli/ # TypeScript — anote 終端 CLI │ ├── vscode/ # TypeScript — VS Code 擴充功能 │ ├── web/ # TypeScript/React — 瀏覽器聊天機器人應用程式 │ ├── mobile/ # TypeScript/React Native (Expo) — iOS + Android │ ├── desktop/ # TypeScript/Electron — 私人桌面應用程式 │ ├── sdk/ # TypeScript — JS/TS 客戶端 SDK │ └── docs/ # MkDocs Material — 文件網站 ├── docker-compose.yml ├── package.json # npm 工作區 └── Makefile

後端架構

Python Flask 後端處理所有伺服器端邏輯:

packages/backend/ ├── app.py # Flask 進入點,路由註冊 ├── api_endpoints/ │ ├── chat/ # 代理串流 (SSE),會話管理 │ ├── documents/ # 上傳,RAG 流程,問答 │ ├── search/ # 語意搜尋索引查詢 │ ├── auth/ # JWT,Google OAuth │ ├── user/ # 個人資料,設定 │ └── payments/ # Stripe 網頁鉤子 + 結帳 ├── agents/ # LangChain/LangGraph 代理定義 ├── services/ │ ├── rag.py # 文件分塊 + Chroma 嵌入 │ ├── streaming.py # SSE 串流到 Claude/OpenAI/Gemini │ └── search.py # TF-IDF 語意搜尋 ├── database/ │ ├── db.py # MySQL 連接 + 查詢 │ └── schema.sql # 資料庫架構 └── models/ # LLM 提供者包裝

數據流:代理聊天

客戶端 (CLI / VS Code / Web / Mobile) │ POST /api/chat/stream {message, cwd, model} ▼ Flask 後端 (app.py → chat/handler.py) │ SSE 串流 ▼ LLM 提供者 (Anthropic / OpenAI / Gemini / Ollama) │ 工具調用 ↔ 執行 (讀取/寫入/編輯/Bash/Glob/Grep) ▼ 檔案系統 (cwd) + Chroma (RAG 上下文)

技術選擇

層級 技術 原因
後端 Python Flask 豐富的 ML/AI 生態系統,現有代理
代理串流 Anthropic Python SDK 原生 SSE,工具使用
向量資料庫 ChromaDB 本地優先,無需基礎設施
資料庫 MySQL ACID,現有架構
快取 Redis 會話 + 速率限制
前端 React 18 + TypeScript 類型安全,生態系統
桌面 Electron 跨平台,捆綁 Python
行動 Expo (React Native) 與網頁共享代碼
CLI Commander.js 成熟,TypeScript 友好
文件 MkDocs Material 美觀,快速,markdown