意圖都有內建的回應處理常式,能在意圖比對相符後傳回回應。這項功能僅支援靜態回應,但您可以在這些回應中使用參數參照以使其具有一定的動態性。如要總結使用者提供的資訊,這種做法就能派上用場。舉例來說,您的意圖回應可能如下:「Okay, I booked a room for you on $date」(好的,我幫您預訂了 $date 的會議室」。
有時,這樣就夠了。當您的程式碼需要執行某個動作或建構動態回應時,則需要使用下面其中一個回應選項。代理程式通常混合使用靜態和動態回應。
您可以提供多種類型的回應。基本的回應類型是文字回應,您也可以使用其他類型的回應 (圖片、音訊、合成語音等),其中某些回應只有特定平台才能使用。
如果您為一個意圖定義了多個回應變化版本,代理程式會隨機選擇回應。建議您新增幾個回應變化版本,讓代理程式的對話更自然流暢。
建構代理程式時,您必須為每個意圖提供回應資料。當您使用 API 或執行要求與 Dialogflow 進行互動時,從技術面來說,您可能不需要提供任何回應資料,因為這兩種方法都可以動態產生回應。不過,如果您想使用模擬工具進行測試;或是定義具有簡單回應的意圖,則必須提供回應資料。
一般來說,意圖回應應該要提示使用者提供可與其他意圖配對的表達內容。此外,回應也應該要引導他們回答特定內容。例如,「What city were you born in?」(你在哪個城市出生的?) 之類的問題比「Where were you born?」(你在哪出生的?) 這種較開放式的問題好。
這項資料的所在位置
建構代理程式時,最常見的做法是使用 Dialogflow ES 主控台 (請參閱說明文件並開啟主控台)。以下操作說明重點介紹如何使用主控台。如何存取意圖回應資料:
- 前往 Dialogflow ES 主控台。
- 選取代理程式。
- 選取左側欄選單中的 [Intents] (意圖)。
- 選取一個意圖。
- 向下捲動至「Responses」(回應) 部分。
如果您要使用 API (而非主控台) 建構代理程式,請參閱意圖參照的相關說明。API 欄位名稱與主控台欄位名稱類似。下方的操作說明會明確指出主控台和 API 之間所有的重要差異。
回應平台
每則回應會定義為預設平台 (在 API 中稱為 PLATFORM_UNSPECIFIED
) 或特定的整合平台。如果您並未使用整合平台,您所有的回應就可以使用預設平台。如果您使用整合平台,則每項整合都能使用專屬的回應,也可設為使用預設回應。
如要進一步瞭解平台專屬回應,請參閱「複合式回應訊息」。
建立內建回應
如何建立內建回應:
- 選取 [Default] (預設) 或特定平台。
- 如果系統尚未列出所需的回應類型 (例如文字回應),請按一下 [Add Responses] (新增回應) 並選取想要的回應類型。
- 輸入回應的必要資訊。
- 按一下 [儲存]。
使用執行要求的動態回應
您可以使用執行要求建立動態回應。詳情請參閱執行要求文件。
使用 API 的動態回應
您可以使用 API 建立動態回應。詳情請參閱 API 總覽。
特殊字元
有些特殊字符需要在回應中逸出。
如要在回應中使用美元符號 $
或數字符號 #
,請為緊跟在符號後方的內容加上括號 {}
。例如:
${100}
解析為$100
${$number}
解析為$100
,其中$number
是值為 100 的參數參照#{hello}
解析為#hello
如要在回應中使用大括號 {}
,請使用雙括號。例如:
{{hello}}
解析為{hello}
處理空參數值
如果您的意圖具有可解析為空值的參數,則必須提供至少一個不使用該參數的回應變化版本。
舉例來說,如果您的意圖有 2 個參數 (p1
和 p2
),而且其中一個或兩個可能都是空白,則應提供至少四個回應變化版本:
- 好的,You said $p1 and $p2. (我知道了,你說的是 $p1 和 $p2。)
- Got it. You said $p1. (我知道了,你說的是 $p1。)
- Got it. You said $p2. (我知道了,你說的是 $p2。)
- 我知道了。