Customer Service
WhatsApp 客服平台 — 自動回覆主鏈 · 坐席 Portal · 知識庫 RAG · Drive 媒體。
Backend(FastAPI)承接 Twilio webhook、Portal API、審計與存儲;Viola-agent 負責對話編排、模型路由,並透過 MCP 回調 backend 能力。

功能亮點
- WhatsApp 入站 — Twilio webhook、burst 合併、轉人工 / 固定回覆
- Viola 主鏈 —
full 硬切編排,MCP 調用 backend 業務能力
- 坐席 Portal — 即時聊天、知識填空、媒體預覽、系統日誌
- 知識庫 RAG —
knowledge + Portal 同步重建 FAISS
- 多 worker — Redis 協調 burst、會話鎖與推送(044 / 045)
架構
組件總覽
入站詳細流程(語義分析 → 轉人工 / AI)
客戶 WhatsApp 文字入站後,Backend 先跑策略鏈(報價專人、行動承諾、關鍵詞、語義 LLM、知識庫缺口等),命中則走 handoff_orchestrator 轉人工;否則進入 Viola / RAG 自動回覆。主入口:POST /webhook → app/webhook/customer_inbound.py。
策略與門控(節選)
部署細節 → deployment/README.md
本版本:硬編碼 Prompt 與大模型(0.2.0)
運行時以倉庫根目錄 .env 為準;下表為本版本 0.2.0 基線。詳情 → docs/prompt-model-versions/0.2.0.md。
憲法(Principle III):凡修改 app/chatbot_service/llm_templates/ 等硬編碼 Prompt,或變更本節記載的大模型基線,必須在同一變更集更新本節、新增版本檔,並更新 docs/prompt-model-versions/(見 .specify/memory/constitution.md)。
大模型(0.2.0)
代碼未設 OPENROUTER_CHAT_MODEL 時的回退默認值為 openai/gpt-4.1。本機 Ollama 可設 LLM_SOURCE=ollama 或 CS_LLM_DEPLOY_MODE=gb10_local(見 .env.example)。
硬編碼 System Prompt(0.2.0)
角色對客主 Prompt 寫死在代碼模板中(Portal 長 Prompt / 風格為可選疊加,不替代下列基座):
組裝與注入順序(基座 → 知識變量 → Portal 長 Prompt → 風格):
其餘硬編碼輔助 Prompt:input_parser_templates.py、info_verification_templates.py(同目錄)。
以往版本
點擊進入版本目錄(含索引與各版詳情):
→ docs/prompt-model-versions/
快速開始
前置
- 安裝 Docker / Compose
- 複製環境變量:
cp .env.example .env 並填入密鑰
- (可選)本地開發:Python 3.12+、Node.js
一鍵啟動
cd deployment
./up.ps1 -Build
# 停止
cd deployment
./down.ps1
本地開發
# Backend
poetry install
poetry run uvicorn main:app --reload --port 8000
# Portal(默認 /api → :8000,同域 cookie)
cd frontend
npm install
npm run dev
更多 → frontend/README.md
測試
poetry run pytest tests/unit -q
Viola 主鏈配置
CS_VIOLA_MAINLINE_MODE ≠ off 時,backend 將主鏈轉發至 viola-agent。
硬切驗收建議:
CS_VIOLA_MAINLINE_MODE=full
CS_VIOLA_MAINLINE_FALLBACK_ENABLED=false
CS_VIOLA_PREVIEW_ENGINE=viola_mainline
此模式下 backend 不應執行 langgraph_mainline。
審計:scripts/cutover/ · 報告:docs/migration/viola-mcp-mainline-report.md
運行時治理(038)
倉庫結構
app/ Backend 業務與服務
frontend/ 坐席 Portal(React + Vite)
viola-agent/ 對話主鏈 agent
knowledge/ RAG 知識 Markdown
deployment/ 分離 Compose 與啟動腳本
specs/ Speckit 功能規格
docs/ 運維 · 遷移 · runbook
tests/ 單元 / 集成測試
Git remotes
本倉庫以本地 origin 為準。請勿綁定舊公司遠端或個人鏡像位址。
文檔索引