技術人員說明文檔

本文件說明 阿斯頓 AI 客服機器人 的主要功能、後台操作、API 使用方式、安全機制與部署注意事項。

系統定位

這個網站是一套單租戶 AI 客服系統。對外提供聊天問答與人工接手能力;對內提供設定、知識匯入、資料治理、模型切換、安全管理與日誌追蹤。

主要資料分成三類:站點設定保存在 data/config.json;聊天、記憶與待處理單保存在記憶資料庫;RAG 文件與知識圖譜保存在知識資料庫。

公開 API

POST /ask

前端聊天入口。傳入 querysession_id,可選 provider。系統會先嘗試快速意圖、RAG、知識圖譜,再呼叫選定模型產生回答。

curl -X POST http://chatbot.aston.tw/ask \
  -H "Content-Type: application/json" \
  -d '{"query":"請問營業時間?","session_id":"demo"}'

GET /handoff/replies

前端可輪詢人工補答結果,用於把 Telegram 管理員回覆推回原使用者畫面。

POST /location/update

手機捷徑或外部工具可用 token 更新目前位置,系統會寫入知識圖譜,回答位置相關問題。

GET /health

健康檢查只返回基本狀態與是否已配置,避免暴露內部細節。

管理後台

未登入時只會看到品牌首頁、登入頁與本技術文檔。登入後可進入 /menu 與後台功能。

RAG 與知識圖譜

RAG 文件

可透過後台或 API 新增文字、單一 URL、sitemap。URL 匯入會檢查協議、DNS 與私有網段,避免 SSRF 類風險。

curl -X POST http://chatbot.aston.tw/add \
  -H "Content-Type: application/json" \
  -d '{"text":"客服時間為週一到週五 09:00-18:00。","source":"manual","category":"faq"}'

知識圖譜

用於保存價格、電話、地址、營業時間、社群帳號、付款方式等結構化資料。這類資料對短問句和精準問答特別有用。

/playground/kg 可手動新增三元組;/setup/confirm 有基本資料快速建檔工具;/admin/kg 可修改、刪除與匯出。

Telegram 整合

系統可用 polling 或 webhook 與 Telegram bot 通信。當使用者問題超出知識庫、命中敏感資料或需要人工確認時,會通知管理員。

管理員可以直接回覆 Telegram 待處理訊息;系統會把補答送回使用者,也可把答案寫入 RAG。若回覆包含 知識圖譜: 區塊,會嘗試拆成結構化三元組。

Webhook 模式會驗證 Telegram secret token,降低假 webhook 請求風險。

安全設定

觀測與效能

/admin/observability 提供本地模型佇列、OpenAI 佇列、fallback、token 成本、向量索引與搜尋統計。/admin/model-switch 可切換本地 Ollama 或 OpenAI 模型。

為降低瓶頸,系統有單 session 訊息合併、模型佇列上限、OpenAI 並發控制、資料保留清理與資料庫索引。若流量增加,優先檢查模型佇列深度、RAG 搜尋耗時與資料庫大小。

部署與維運

此站點應透過 reverse-proxy 暴露,不直接把服務容器 port 開到 host。Docker 服務需加入 proxy network,並由反向代理處理網域 chatbot.aston.tw

變更 compose 後需執行 docker compose config 驗證。一般程式碼變更不需要修改 compose。

維運建議:定期匯出 RAG 與知識圖譜、檢查 /admin/audit-logs、清理過期聊天資料、檢查 Telegram webhook 或 polling 狀態,並在更新模型或 API key 後用 /playground/chat 做端到端測試。