omni-bot 客服 Bot
omni-bot 客服 Bot
Section titled “omni-bot 客服 Bot”多租戶、多頻道的行業通用 Bot 平台。一家店一個租戶(store_id),一個租戶可含多個 bot
(dialog 導覽 + FAQ),透過 /storeId/:botId 路由到達。KV session 與 D1 查詢全部以 storeId + botId 隔離。
核心:channel-agnostic 的 xstate v5 機器(@omni-bot/core-machine);
LINE/Telegram/WeChat/PWA 各一個 adapter,共用同一台機器與同一份內容 JSON。
技術棧:Cloudflare Workers(5 個 prod worker,Astro6+Hono4+Svelte5+Drizzle/D1)+ pnpm workspace monorepo。
深度文件在 repo:
~/Code/omni-bot/(docs/ARCHITECTURE.md、docs/CONTENT-JSON-GUIDE.md、TODO-REVIEW.md)。
Worker 對照
Section titled “Worker 對照”| Worker | 頻道 | 說明 |
|---|---|---|
| line-worker | LINE | webhook → 多租戶 → 機器 → 回覆 |
| telegram-worker | Telegram | webhook + /selfcheck |
| wechat-worker | GET verify + POST message,XML | |
| admin-worker | — | 租戶/bot 管理 API |
| (pwa) | PWA | adapter stub |
新增租戶 / bot
Section titled “新增租戶 / bot”完整流程見 repo docs/CONTENT-JSON-GUIDE.md(內容 JSON schema + 新增租戶步驟)。要點:
- 建租戶
store_id(權限/費用邊界)。 - 在租戶下建 bot,各自獨立的 content/FAQ/channels/session。
- 內容用同一份 JSON schema(sections/image),機器 channel-agnostic 處理。
- 無 preview env(5 個 prod worker)。migration 先行。
- 部署:
./scripts/ship.sh deploy <worker>或deploy-all。 - 本機實測:
./scripts/ship.sh dev <worker>。
待補(給維護者)
Section titled “待補(給維護者)”- 各頻道 webhook 設定畫面(LINE/Telegram/WeChat 後台對照)
- 內容 JSON 編輯範例
-
/selfcheck用法