工作階段代表 Dialogflow 代理程式和使用者之間的對話。您可以在工作階段中建立特殊實體,稱為「工作階段實體」。工作階段實體可延伸或取代自訂實體類型,且只會在建立工作階段時存在。所有工作階段資料 (包括工作階段實體) 都會由 Dialogflow 儲存 20 分鐘。
舉例來說,如果您的代理程式具有包含「梨」和「葡萄」的 @fruit
實體類型,則代理程式會根據從使用者收集到的資訊,決定是否要將實體類型更新為包含「蘋果」或「橘子」。更新後的實體類型在後續工作階段中,會納入「apple」或「orange」實體項目。
使用執行要求建立工作階段實體
您可以使用執行服務建立工作階段實體。WebhookResponse
類型包含名為 sessionEntityTypes
的欄位,用於設定工作階段實體。
以下範例說明如何將 fruit
實體類型的實體項目設為目前工作階段的 apple
和 orange
。
WebhookResponse 範例:
{ "fulfillmentMessages": [ { "text": { "text": [ "Choose apple or orange" ] } } ], "sessionEntityTypes":[ { "name":"projects/project-id/agent/sessions/session-id/entityTypes/fruit", "entities":[ { "value":"APPLE_KEY", "synonyms":[ "apple", "green apple", "crabapple" ] }, { "value":"ORANGE_KEY", "synonyms":[ "orange" ] } ], "entityOverrideMode":"ENTITY_OVERRIDE_MODE_OVERRIDE" } ] }
使用 Actions on Google 用戶端程式庫的範例:
如果您使用的是 Actions on Google 用戶端程式庫,可以使用會話實體外掛程式。
程式碼會類似以下內容:
const { sessionEntitiesHelper } = require('actions-on-google-dialogflow-session-entities-plugin') const app = dialogflow() .use(sessionEntitiesHelper()) app.intent('input.welcome', (conv) => { conv.ask('make your choice: apple or orange?'); // Set the fruit session entity values to 'apple' and 'orange'. conv.sessionEntities.add({ name: 'fruit', entities: [{ value: 'APPLE_KEY', synonyms: [ 'apple', 'green apple', 'crabapple' ] }, { value: 'ORANGE_KEY', synonyms: ['orange'] }] }); conv.sessionEntities.send(); });
使用 API 建立工作階段實體
您可使用 SessionEntityTypes
類型建立、管理及更新工作階段實體。