如果您未採用其中一個整合選項,則須編寫可直接與使用者互動的程式碼。您也必須針對每一回合的對話,直接與 Dialogflow 的 API 互動,藉此傳送使用者表達內容並接收意圖比對結果。下圖呈現了與 API 互動時的處理流程。
- 使用者輸入或說出表達內容。
- 您的服務會在偵測意圖要求訊息中,將此使用者表達內容傳送至 Dialogflow。
- Dialogflow 將偵測意圖回應訊息傳送至您的服務。這則訊息中包含相符意圖、操作和參數的相關資訊,並提供為意圖定義的回應。
- 您的服務視需求執行操作,像是查詢資料庫或呼叫外部 API。
- 服務將回應傳送給使用者。
- 使用者看見或聽見回應內容。
專案設定與驗證
在呼叫 API 之前,您需要設定 GCP 專案和驗證。您可以依照快速入門導覽課程:設定一文中的步驟進行操作。
建構代理程式
大多數情況下,您應使用 Dialogflow ES 主控台建構代理程式,請參閱說明文件並開啟主控台。您可以依照主控台快速入門導覽課程頁面中的步驟建構代理程式。在進階情況下,您也可以使用 Dialogflow API 來建構代理程式。許多概念頁面側重說明以主控台建構代理程式,但也會提供相關 API 類型的連結。
REST、gRPC 和用戶端程式庫
您可以透過 REST、gRPC 或我們提供的其中一個用戶端程式庫來存取 Dialogflow API。如要進一步瞭解這些選項,請參閱「API 使用量總覽」。
工作階段
工作階段代表 Dialogflow 代理程式和使用者之間的對話。您可以在對話開始時建立一個工作階段,並將其用於每一回合的對話。當對話結束,您便停止使用該工作階段。
您不該將同一工作階段用於與不同使用者的並行對話。Dialogflow 會保留每個作用中工作階段目前有效的背景資訊。而且工作階段資料會由 Dialogflow 儲存 20 分鐘。
每個工作階段都是由系統產生的工作階段 ID 所決定。 您可透過在偵測意圖要求中提供新的工作階段 ID,來建立新的工作階段。工作階段 ID 是長度最多 36 個位元組的字串。您的系統負責產生不重複的工作階段 ID,其可以是隨機數字、經過雜湊處理的使用者 ID,或是方便產生的任何其他值。
偵測意圖
使用 API 互動時,您的服務會直接與使用者互動。針對每一回合對話,您的服務會呼叫 Sessions
類型的 detectIntent
或 streamingDetectIntent
方法,將使用者表達內容傳送到 Dialogflow。Dialogflow 使用相符意圖、行動、參數及為該意圖定義的回應等相關資訊來做出回應。您的服務會視需要執行動作,例如查詢資料庫或呼叫外部 API,並傳送訊息給使用者。此程序會一直持續到對話結束為止。
如需呼叫偵測意圖的範例,請參閱 API 快速入門導覽課程頁面和操作說明頁面。