Playbook 可使用明確定義的參數,接受及發出情境資訊。參數可用來儲存對話相關資訊,例如使用者選項、動作結果等。您可以在應對手冊和流程之間傳遞這些參數的值。
參數宣告
您可以定義輸入 (讀取) 參數和輸出 (寫入) 參數。
參數有名稱、說明和下列其中一種型別:
- 字串
- 數字
- 布林
- 工具專屬參數類型
您也可以指定參數是否為清單。
輸入 (讀取) 參數
您可以為每個應對手冊定義「輸入參數」(也稱為「讀取參數」),讓應對手冊使用從流程和其他應對手冊傳遞的值。舉例來說,playbook 可能會接收使用者偏好的名稱做為參數,並用來向使用者表達感謝,也可能會接收訂單 ID 做為參數,並使用工具擷取訂單詳細資料。
輸入參數是依各個 playbook 定義,且 playbook 預設不會顯示其他 Dialogflow CX 控制台參數類型。如果目標應對手冊有同名的輸入參數,當流程轉換至應對手冊時,頁面和工作階段參數會傳播至應對手冊。如要在轉換期間將資訊從流程傳遞至應對手冊,請定義應對手冊輸入參數,並使用與轉換前工作階段或頁面參數相同的名稱。
建立範例,控制輸入參數值對動作的影響。 舉例來說,如果輸入參數會影響代理稱呼使用者的方式,請建立範例來定義參數值,然後在範例的話語動作中使用相同的值。詳情請參閱「傳遞參數」。
輸出 (寫入、傳回) 參數
您可以為每個 playbook 定義「輸出參數」(也稱為「寫入參數」和「傳回參數」),讓 playbook 發出資訊,供其他流程或 playbook 使用。舉例來說,playbook 可能會向使用者收集訂單號碼,並透過輸出參數傳送,或者使用工具預訂航班,並透過輸出參數傳送確認號碼。
建立範例,控管 playbook 決定各輸出參數值的方式。舉例來說,如果代表確認號碼的輸出參數應從工具使用輸出內容衍生值,請建立工具使用輸出內容與教戰手冊輸出參數值相符的範例。
傳遞參數
與流程不同,Playbook 不支援使用特定語法插入參數值。而是依據指示和少量樣本提示範例,決定如何使用參數值,以及在指定參數值時如何決定值。
例行程序應對手冊到流程
如要將參數從例行程序應對手冊傳遞至流程,請按照下列步驟操作:
- 定義例行程序應對手冊的寫入參數。這些參數會變成工作階段參數。
- 流程可以使用工作階段參數。
- 在操作說明和範例中加入參數用法。
流程到例行程序應對手冊
如要將參數從流程傳遞至例行程序應對手冊,請按照下列步驟操作:
- 流程會寫入工作階段參數。
- 為同名的例行程序應對手冊定義讀取參數。
- 在操作說明和範例中加入參數用法。
工作應對手冊到流程
如要將參數從工作 Playbook 傳遞至流程,請按照下列步驟操作:
- 在流程設定中,定義同名的輸入參數。
- 在操作說明和範例中加入參數用法。
流程轉工作應對手冊
如要將參數從流程傳遞至上層任務應對手冊,請按照下列步驟操作:
- 在流程設定中,定義傳回參數。
- 在操作說明和範例中加入參數用法。
如要將參數從流程傳遞至子任務應對手冊,請按照下列步驟操作:
- 定義工作輸入參數,其名稱與流程中的工作階段參數相同。
- 在操作說明和範例中加入參數用法。
例行程序應對手冊轉換為工作應對手冊
如要將參數從例行程序應對手冊傳遞至任務應對手冊,請按照下列步驟操作:
- 為工作應對手冊定義同名的輸入參數。
- 在操作說明和範例中加入參數用法。
涉及工具的範例
假設某個代理專門販售活動票券,並有下列工作應對手冊:
- 名為
Ticket ordering的應對手冊,會使用名為Ticket sales API的工具下單。- 這個應對手冊接受類型為
number、名稱為event_id的輸入參數。 Ticket sales API工具預期會收到包含event_id的要求。
- 這個應對手冊接受類型為
- 名為
Event selection的教戰手冊,可協助使用者選取活動,然後將他們轉送至Ticket ordering,並使用參數event_id購買票券。
在本範例中,為確保 event_id 能可靠地從 Event selection 傳遞至 Ticket ordering,以及從 Ticket ordering 傳遞至 Ticket sales API,需要提供多個範例。
Ticket ordering 應對手冊應包含多個範例,且這些範例應:
- 輸入參數
event_id應指定實際值,且每個範例的值都不同。 - 加入工具使用動作,並在要求主體中加入與輸入參數指定的相同擬真
event_id值。
Event selection 應對手冊應包含多個範例,且這些範例應:
- 加入使用者語句,讓使用者選取具有一些實際
event_id的事件,每個範例都不同。 - 加入
Ticket ordering的 Playbook 叫用,將event_id參數設為與使用者所選相同的實際event_id。
除了新增範例外,您也可以在操作說明、目標或工具詳細資料中,新增具體操作說明,解釋參數的使用方式。舉例來說,教戰手冊 Ticket ordering 包含下列指令:
- Use parameter event_id to send a buy_tickets request with ${TOOL: Ticket sales API}
有了上述範例和指示,Event selection 戰略手冊就能根據使用者的選擇正確決定 event_id,並將其做為名為 event_id 的輸入參數傳遞給 Ticket ordering playbook。接著,Ticket ordering 會將相同的 event_id 傳遞至 Ticket sales API 的要求主體。Playbook 仰賴具有不同參數值的範例,推論參數的使用方式。