建立對話與訊息
以 API 建立對話、送出訊息,再由 Webhook 接收 Agent 回覆的串接流程;欄位定義見 API 文件。
以 API 串接對話分兩步:先建立對話取得對話 ID,再對這個對話送出訊息;Agent 的回覆會以 Webhook 推送給您。本頁說明流程與注意事項,每個欄位的型別與必填規則以 API 文件為準。
建立對話
建立一個新的對話。
端點: https://api.maiagent.ai/api/v1/conversations/
請求方法: POST
請求標頭:
Authorization: Api-Key <您的API金鑰>
Content-Type: application/json請求內容:
必填 webChat(Web Chat ID:在後台 客服對話 → 對話平台 → 編輯該 Agent 的 API 平台 → 串接與登入 → Webhook 設定 最下方的 API 資訊 卡複製,見使用者手冊對話平台基本設定;也可用 GET /api/v1/web-chats/ 取得)。要讓對話歸屬某位訪客時,另帶 contact(聯絡人 ID,須屬於同一個對話平台,取得方式見聯絡人身分同步與 Token 更新);不帶 contact 時,對話的聯絡人是 API 金鑰所屬的使用者,用同一把金鑰建立的對話都會歸在這位聯絡人底下。欄位定義見 API 文件建立新的對話。
請求範例:
import requests
response = requests.post(
url='https://api.maiagent.ai/api/v1/conversations/',
headers={
'Authorization': 'Api-Key <您的API金鑰>'
},
json={
'webChat': '您的 Web Chat ID'
}
)回應內容:
串接訊息時,記下回應中的 id(對話 ID)即可:取得對話中的所有訊息、辨識訊息 Webhook 屬於哪一個對話,都用這個 ID。設定 Webhook 需要的對話平台 ID 在 inbox.id。回應欄位見 API 文件建立新的對話。
傳送訊息
建立一則新訊息
端點: https://api.maiagent.ai/api/v1/messages/
請求方法: POST
請求標頭:
請求內容:
必填 conversation(對話 ID);訊息文字放在 content,附件放在 attachments(預設為空陣列)。欄位定義見 API 文件發送訊息 (建立)。
附件物件要先建立再帶入,建立方式見 Presigned 檔案上傳模式:建立訊息附件;把建立附件時回應的物件(type、filename、file)原樣放進 attachments。
請求範例:
Python 範例
cURL 範例
回應格式:
收到回應代表訊息建立成功,回應內容是剛建立的這則訊息,不含 Agent 的回覆;回覆會以 Webhook 推送,見 Webhook。回應欄位見 API 文件發送訊息 (建立)。
回應範例:
訊息類型說明
incoming: 收到的訊息outgoing: 發送的訊息
訊息內容中的圖片
content 是純文字,平台原樣儲存、不解析其中的網址。要在對話中呈現圖片有兩種方式:
Markdown 圖片語法 
Agent 回覆或工具結果要「顯示」一張外部圖片
Web Chat 與 MaiGPT 以 Markdown 渲染訊息,瀏覽器會直接向該網址抓圖,網址(含查詢字串)原樣保留
使用 Markdown 圖片時要注意:
圖片由使用者的瀏覽器載入,網址必須可從公網不經認證存取;平台不會代為下載或轉存。
帶簽章且會到期的網址(例如 Azure SAS、S3 presigned)寫進訊息後不會更新,到期後舊訊息裡的圖片就無法顯示。需要長期可看時,請提供不會過期的網址,或由您的系統提供固定網址再轉導。
請用 Markdown 語法,不要依賴 HTML 標籤;HTML 的處理方式依前端渲染器而定,不在契約內。
回應中引用節點的
imageUrl是知識庫段落的圖片,與訊息內容的圖片無關。自訂 API 工具回傳圖片網址時的兩段式流程,見 API 工具工程指南:回應怎麼回給模型。
訊息回饋
訊息回應中的 feedback 是唯讀欄位:沒有回饋時為 null,有回饋時是物件 {"id": "…", "type": "like", "suggestion": "…", "updatedAt": "…"}。建立訊息的請求不接受 feedback,要對一則 AI 回覆按讚或倒讚,用獨立的端點:
type必填,只接受like或dislike;suggestion選填,可為空字串。修改用
PATCH /api/v1/messages/{messagePk}/feedback/{id}/,取消用DELETE,{id}是回饋物件的id。回饋會出現在 AgentOps 的對話記錄中,欄位見 API 文件建立訊息回饋。
刪除對話
DELETE /api/v1/conversations/{id}/ 刪除一般對話,成功回 204。這是軟刪除:對話從列表與查詢中消失、無法再延續,平台保留資料供稽核。需要同時清掉對話附件的檔案時,請另外呼叫對話附件管理 API。見 API 文件刪除對話。
引用節點的頁碼欄位
Agent 回覆的 citationNodes[] 每筆帶一個 chatbotTextNode(被引用的段落),其中的頁碼欄位:
pageStart、pageEnd
這個段落在來源文件中的起訖頁,從 1 起算;段落沒有跨頁時兩者相同
pageNumber
等於 pageStart,為相容舊串接而保留
只有解析器能對應到真實頁面的文件(主要是 PDF,以及以 PDF 方式解析的 Office 文件)才有頁碼;.txt、.md、CSV/Excel、HTML、爬蟲匯入的網頁、音訊逐字稿等沒有分頁的來源,這三個欄位都是 null(欄位仍會出現,不是省略)。顯示引用時請先判斷 null 再組「第 N 頁」的文字或帶 #page=N 的檔案連結。知識庫檢索 API 回傳的段落使用相同的欄位與規則。
最後更新於
這有幫助嗎?