對話

在自己的 App 或客服系統裡和 AI 對話,支援串流回傳,以及會話的轉人工、結束和評價。

POST /v1/chat

{
  "message": "有没有 400 美元以内的潜水表?",
  "conversation_id": null,
  "user": {"id": "u_123", "name": "李四", "email": "li@example.com", "ip": "85.214.132.117", "language": null},
  "stream": false
}
  • 不傳 conversation_id 時會新建會話,回應裡會回傳它,後續訊息帶上。
  • user 由你的伺服器直接告訴我們(API Key 呼叫方是可信的),帶了才能查訂單。
  • 預設回覆語言:傳 user.language(例如 de、zh-CN、pt-BR)就用它;否則傳 user.ip,我們會依所在地判斷;都不傳就用後台的預設語言。顧客在對話裡要求更換語言後,以顧客的要求為準。
  • stream: false 時回傳 {"conversation_id", "message", "status", "products"};message 為 null 表示會話在人工接待中,訊息已轉給人工。
  • stream: true 時回傳 SSE,事件見下表。
事件 type內容
user_message已儲存的使用者訊息
delta回覆的一段文字 text,依序拼接
productsAI 查到的商品卡片
language顧客要求更換回覆語言,language 是新的語種代碼
status會話狀態變化(例如轉人工)
replace用 text 整體替換已收到的回覆(出錯時換成備援話術)
queued_for_human會話在人工接待中,沒有 AI 回覆
done最終儲存的訊息和會話狀態
error出錯

其他介面

方法路徑說明
GET/v1/conversations會話列表,?status=&end_user_id=
GET/v1/conversations/{id}/messages會話和全部訊息
POST/v1/conversations/{id}/messages你的客服系統以人工身分回覆:{"content", "agent_name"},會話隨即進入人工狀態
POST/v1/conversations/{id}/status客服端操作:{"status": "ai"} 交還給 AI,{"status": "closed"} 結束會話
POST/v1/conversations/{id}/close顧客在你的 App 裡結束會話;已經結束的也回傳成功
POST/v1/conversations/{id}/rating會話結束後顧客評價:{"rating": "good" | "bad", "comment": "可选,最多 500 字"},可以修改

會話狀態:ai(AI 回覆)、pending_human(等待人工)、human(人工接待中)、closed(已結束)。

會話裡還有:closed_by 是誰結束的(customer 顧客、agent 客服、ai 顧客表示沒有其他問題後 AI 結束),rating / rating_comment / rated_at 顧客評價。

結束會話:網頁視窗頂部有「結束會話」按鈕(二次確認);微信小程式裡顧客傳送「結束」也會結束;「機器人設定」裡開啟「AI 自動結束會話」時,顧客明確表示沒有其他問題,AI 道別後結束會話。結束後網頁視窗請顧客評價滿意 / 不滿意並可留言,微信裡請顧客回覆 1 或 2;之後顧客再傳訊息是新的會話。

轉人工後的分派:「機器人設定」裡選擇分派方式——分給手上會話最少的客服(預設)、輪流分派,或客服自己接。自動分派只分給選了「在線」並且後台頁面開著的客服,每人有同時接待上限(「團隊」頁設定);分到的客服超過設定時間(預設 2 分鐘)沒回覆就改派。會話裡的 assigned_member_id 是分到的客服,assigned_at 是分派時間,handoff_at 是轉人工時間。人都滿了時顧客排隊,網頁視窗顯示前面還有幾位。

營業時間和留言:「機器人設定」裡開啟營業時間後,營業時間外顧客轉人工不會排隊,網頁視窗彈出留言表單(稱呼、電子郵件或手機、問題),微信和開放 API 的對話由 AI 請顧客留言;營業時間內沒有客服在線也一樣。留言會生成工單,客服回覆時,原會話還沒結束就發進會話,顧客留了電子郵件也會以店鋪名義寄送電子郵件。只推送到你的系統(轉人工方式選「推送到我的系統」)時不看營業時間。

這頁對你有幫助嗎?

最後更新: