API 互動

如果您未採用其中一個整合選項,則須編寫可直接與使用者互動的程式碼。您也必須針對每一回合的對話,直接與 Dialogflow 的 API 互動,藉此傳送使用者表達內容並接收意圖比對結果。下圖呈現了與 API 互動時的處理流程。

說明 API 流程的圖表
  1. 使用者輸入或說出表達內容。
  2. 您的服務會在偵測意圖要求訊息中,將此使用者表達內容傳送至 Dialogflow。
  3. Dialogflow 將偵測意圖回應訊息傳送至您的服務。這則訊息中包含相符意圖、操作和參數的相關資訊,並提供為意圖定義的回應。
  4. 您的服務視需求執行操作,像是查詢資料庫或呼叫外部 API。
  5. 服務將回應傳送給使用者。
  6. 使用者看見或聽見回應內容。

專案設定與驗證

在呼叫 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 類型的 detectIntentstreamingDetectIntent 方法,將使用者表達內容傳送到 Dialogflow。Dialogflow 使用相符意圖、行動、參數及為該意圖定義的回應等相關資訊來做出回應。您的服務會視需要執行動作,例如查詢資料庫或呼叫外部 API,並傳送訊息給使用者。此程序會一直持續到對話結束為止。

如需呼叫偵測意圖的範例,請參閱 API 快速入門導覽課程頁面操作說明頁面