輸入和輸出背景資訊

輸入和輸出背景資訊會套用至意圖。這兩者會共同控管對話流程:

  • 輸出背景資訊 控制 active 背景資訊。 系統比對意圖時,您為這項意圖設定的任何輸出背景資訊都會變為「使用中」狀態。
  • 輸入背景資訊 可控管意圖比對。 如有任何背景資訊處於「使用中」狀態,Dialogflow 就會找出與現有「使用中」背景資訊相符的輸入背景資訊,並優先比對設有這類背景資訊的意圖。

你可以透過情境執行下列操作:

  • 控管意圖比對順序。
  • 使用相同的訓練詞組建立特定情境的意圖。

舉例來說,請考量下列意圖:

Intent (意圖名稱) 訓練詞組 參數 輸入背景資訊 輸出背景資訊 回應
pet-init 「這些元件會顯示如下:」 - - - 「你喜歡哪種寵物?」
pet-select-dogs 「I like dogs」(我喜歡狗) - - dogs 「你想瞭解狗狗的哪些資訊?」
pet-select-cats 「我喜歡貓」 - - cats 「你想知道貓的哪些資訊?」
dog-show 「這些元件會顯示如下:」 - dogs - 「這是狗的圖片。」
cat-show 「這些元件會顯示如下:」 - cats - 「這是貓的相片。」

當使用者說出 I like dogs 時:

  • 系統比對出 pet-select-dogs 意圖。
  • 輸出背景資訊為 dogs,因此會成為有效背景資訊。

當使用者說出 I like cats 時:

  • 系統比對出 pet-select-cats 意圖。
  • 輸出背景資訊為 cats,因此會成為有效背景資訊。

當使用者說出 What do they look like? 時:

  • 如果 dogs 是有效內容:
    • 系統比對出 dog-show 意圖。
    • 系統會向使用者顯示狗的圖片。
  • 如果 cats 是有效內容:
    • 系統比對出 cat-show 意圖。
    • 系統會向使用者顯示貓咪圖片。
  • 如果沒有有效內容:
    • 系統比對出 pet-init 意圖。
    • 系統詢問使用者喜歡哪種寵物。

輸出背景資訊

您可以對同一項意圖套用多筆輸出背景資訊。系統比對意圖時,套用至意圖的任何輸出背景資訊都會變為「使用中」狀態。

有效背景資訊的參數參照

當系統比對出含有輸出背景資訊的意圖時,收集到的參數值可做為暫時儲存空間,並參照已啟用的背景資訊參數。只要背景資訊保持啟用狀態,日後進行意圖比對時,就能存取這些值。

舉例來說,請考量上述寵物範例的下列變化:

Intent (意圖名稱) 訓練詞組 參數 輸入背景資訊 輸出背景資訊 回應
pet-init 「這些元件會顯示如下:」 - - - 「你喜歡哪種寵物?」
pet-select 「我喜歡」、「我喜歡 寵物 - pet-chosen 「你想瞭解 $pet 的哪些資訊?」
pet-show 「這些元件會顯示如下:」 - pet-chosen - 「這是 #pet-chosen.pet 的相片。」

使用者說出「I like dogs」或「I like cats」時:

  • 系統比對出 pet-select 意圖。
  • pet 參數設為所選寵物類型。
  • 輸出背景資訊為 pet-chosen,因此會成為有效背景資訊。

當使用者說出 What do they look like? 時:

  • 如果 pet-chosen 是有效內容:
    • 系統比對出 pet-show 意圖。
    • 如果使用者在先前的對話輪次中選取 dogs,系統會向使用者顯示狗的圖片。
    • 如果使用者在先前的對話輪次中選取 cats,系統會向使用者顯示貓咪圖片。
  • 如果沒有有效內容:
    • 系統比對出 pet-init 意圖。
    • 系統會要求使用者選取寵物類型。

效期

每個有效背景資訊都有效期,可定義背景資訊維持有效狀態的對話回合數。一般意圖的預設生命週期為五個對話回合,後續意圖則為兩個對話回合。您可以覆寫任何背景資訊的預設效期。此外,所有背景資訊會在啟用 20 分鐘後失效。 如果意圖與已啟用的輸出背景資訊相符,系統會重設生命週期和到期計時器。

舉例來說,請參考寵物資訊代理程式的下列意圖說明:

Intent (意圖名稱) 訓練詞組 參數 輸入背景資訊 輸出背景資訊 回應
pet-init 「這些元件會顯示如下:」「牠們的聲音是什麼樣的?」「有多大?」 - - - 「你喜歡哪種寵物?」
pet-select 「我喜歡」、「我喜歡 寵物 - pet-chosen (lifespan = 2) 「你想瞭解 $pet 的哪些資訊?」
pet-show 「這些元件會顯示如下:」 - pet-chosen - 「這是 #pet-chosen.pet 的相片。What else do you want to know?"
pet-audio 「他們會發出什麼樣的聲音?」 - pet-chosen - 「Here is a #pet-chosen.pet sound. What else do you want to know?"
寵物大小 「有多大?」 - pet-chosen - 「這是 #pet-chosen.pet 尺寸表。What else do you want to know?"

下表顯示這個寵物資訊代理程式的對話範例,說明pet-chosen內容的生命週期:

Turn 對話方塊 說明
1 代理程式:What kind of pet do you like? (你喜歡哪種寵物?) 系統比對出 pet-init 意圖。
2 使用者:我喜歡貓。
代理程式:你想知道貓的哪些資訊?
系統比對出 pet-select 意圖。pet-chosen 輸出背景資訊會變為有效背景資訊。
3 使用者:牠們長什麼樣子?
代理程式:這是貓咪的圖片。還有什麼想知道的嗎?
pet-show 意圖含有 pet-chosen 輸入背景資訊,因此系統會比對這個意圖。pet-chosen 背景資訊已啟用 1 回合。
4 使用者:貓叫聲聽起來如何?
代理程式:這是貓叫聲。你還想瞭解什麼?
pet-audio 意圖含有 pet-chosen 輸入背景資訊,因此系統會比對這個意圖。pet-chosen 背景資訊已啟用 2 個回合。
5 使用者:牠們有多大?
代理程式:你喜歡哪種寵物?
由於 pet-chosen 內容已失效,因此系統會再次比對 pet-init 意圖。

輸入背景資訊

如果背景資訊處於「使用中」狀態,Dialogflow 就會找出與現有「使用中」背景資訊相符的輸入背景資訊,並優先比對設有這類背景資訊的意圖。詳細意圖比對規則如下:

  1. 意圖的輸入背景資訊清單必須是目前使用中背景資訊清單的子集,系統才會將其視為相符。這也適用於沒有輸入背景資訊的意圖。
  2. 如果意圖符合規則 1,輸入背景資訊清單與目前有效背景資訊清單最接近的意圖,就越有可能相符。

例如:

  • 沒有輸入背景資訊的意圖隨時都可相符。
  • 如果沒有任何背景資訊處於「使用中」狀態,系統只會比對沒有輸入背景資訊的意圖。
  • 如果「A」和「B」背景資訊均處於「使用中」狀態,則含有「A」和「C」輸入背景資訊的意圖並不相符。
  • 如果「A」、「B」和「C」背景資訊均處於「使用中」狀態,則含有「A」和「B」輸入背景資訊的意圖相符。
  • 如果「A」和「B」背景資訊處於啟用狀態,則含有「A」和「B」輸入背景資訊的意圖,比對相符的機率會高於沒有輸入背景資訊的意圖,或只有「A」做為輸入背景資訊的意圖。