工作階段代表 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 類型建立、管理及更新工作階段實體。