資料儲存庫工具

資料儲存庫工具可根據網站內容和上傳的資料,提供 AI 生成的服務專員回覆。服務專員可以在執行要求期間,從資料儲存區尋找使用者問題的答案。

資料儲存工具:控制台

本節將逐步說明如何將資料儲存庫工具新增至服務專員,並在履行作業中設定該工具。

建立資料儲存庫工具

  1. 開啟 Conversational Agents 控制台,然後選擇專案 Google Cloud。
  2. 從下拉式選單中選取代理程式。
  3. 前往頁面最左側的選單列,然後選取「工具」
  4. 如要建立新的資料儲存庫工具,請按一下「+ 建立」。輸入工具的專屬名稱,然後從「類型」下方的下拉式選單中選取「資料存放區」。您也可以在「說明」欄位中輸入工具說明。
  5. 對話式代理程式控制台:在「資料儲存庫」下方,按一下「新增資料儲存庫」,將一或多個現有資料儲存庫新增至工具,或按一下「建立資料儲存庫」新增資料儲存庫。如果您建立新的資料儲存庫,系統會顯示資料儲存庫類型選單。您可以在 Conversational Agents 控制台中完成「網站」、「Cloud Storage (常見問題)」和「Cloud Storage (非結構化資料)」選項。如果選擇其他類型,系統會自動將您重新導向至 AI Applications,建立資料存放區: AI Applications 控制台
  6. Dialogflow CX 控制台:在「資料儲存庫」下方,按一下「新增資料儲存庫」。 彈出式視窗會列出您現有的資料儲存庫 (如有)。選擇要新增至工具的資料儲存區。如要在 AI Applications 控制台中建立新的資料儲存庫,請按一下「建立新的資料儲存庫」。系統會自動將您重新導向至 AI Applications: AI Applications 控制台
  7. 設定完新的資料儲存庫後,按一下「建立」。如果您已在 Conversational Agents (Dialogflow CX) 控制台中建立新的資料儲存庫,現在應該會顯示在資料儲存庫清單中。如果您已在 AI 應用程式中建立資料儲存庫,請返回 Conversational Agents (Dialogflow CX) 控制台中設定的「建立工具」選單,然後重新整理頁面。新的資料儲存庫現在應該會顯示在可用資料儲存庫清單中。
  8. 按一下「建立工具」設定頂端的「儲存」,建立新的資料儲存庫工具。
  9. 如要進一步瞭解其他資料儲存工具設定選項,請參閱資料儲存設定頁面

將資料儲存區工具新增至履行作業

  1. 在最左側的選單列中,選取「流程」
  2. 選取流程和頁面,然後按一下要與資料儲存庫搭配使用的頁面「路徑」
  3. 在「路線」選單中,捲動至「出貨」>「資料儲存庫工具」。從下拉式選單中選取資料儲存工具。
  4. 在「路徑」選單中,捲動至「執行要求」>「代理程式回應」。依序點選「+ 新增對話回應」和「資料儲存庫工具回應」
  5. 在隨即顯示的表單中,您可以設定回覆中顯示的來源連結和引文數量,以及指定資料存放區回覆空白時的回退行為。您可以在「靜態備援回應」欄位中輸入靜態備援回應。您也可以視需要點選「生成式備援」核取方塊,嘗試使用 AI 生成回應,再使用靜態備援回應。如要進一步自訂備用回覆,請按一下「資料存放區回覆」表單視窗左上角的「扳手」圖示,開啟「條件式回覆」視窗。
  6. 在「路線」選單頂端,按一下「儲存」
  7. 前往 Conversational Agents (Dialogflow CX) 模擬工具,測試代理程式的結果。

資料儲存庫工具:API

根據預設,服務專員會代表你撥打電話。dataStoreTool

資料儲存區類型有三種:

  • PUBLIC_WEB:包含公開網頁內容的資料儲存空間。
  • UNSTRUCTURED:含有非結構化私人資料的資料儲存庫。
  • STRUCTURED:含有結構化資料 (例如常見問題) 的資料儲存庫。

以下範例說明如何參照資料儲存區。詳情請參閱 dataStoreConnections 參考資料

"dataStoreConnections": [
  {
    "dataStoreType": "PUBLIC_WEB",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  },
  {
    "dataStoreType": "UNSTRUCTURED",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  },
  {
    "dataStoreType": "STRUCTURED",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  }
]

資料儲存庫工具的回覆也可能包含用於生成回覆的內容來源相關片段。服務專員可以提供指示,說明如何從資料儲存區繼續處理答案,或在沒有答案時如何回應。

如要覆寫答案,請為特定問題新增常見問題項目

您也可以視需要提供範例,提升代理程式的行為。範例應包含下列結構定義。詳情請參閱參考說明文件

{
  "toolUse": {
    "tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
    "action": "TOOL_DISPLAY_NAME",
    "inputParameters": [
      {
        "name": "TOOL_DISPLAY_NAME input",
        "value": {
          "query": "QUERY"
        }
      }
    ],
    "outputParameters": [
      {
        "name": "TOOL_DISPLAY_NAME output",
        "value": {
          "answer": "ANSWER",
          "snippets": [
            {
              "title": "TITLE",
              "text": "TEXT_FROM_DATASTORE",
              "uri": "URI_OF_DATASTORE"
            }
          ]
        }
      }
    ]
  }
}

(僅限以劇本為基礎的虛擬服務專員) 資料儲存庫工具範例

建立資料儲存工具範例時,工具輸入參數 requestBody 會提供三個選用輸入內容,以及必要 query 字串 - filter 字串、userMetadata 結構化物件和 fallback 字串。

filter 參數可篩選結構化資料或含有中繼資料的非結構化資料的搜尋查詢。這個字串必須遵循資料儲存庫的支援篩選器運算式語法。多個詳細範例可協助教戰手冊模型瞭解如何填入這個參數。如果篩選器字串無效,系統會在搜尋查詢期間忽略該篩選器。

以下是 filter 字串的範例,可根據位置資訊調整搜尋結果:

  "filter": "country: ANY(\"Canada\")"

詳情請參閱劇本範例頁面

篩選的最佳做法:

  • 指定可供篩選的欄位,以及每個欄位的有效值,讓劇本瞭解建立有效篩選器的限制。舉例來說,存放菜單資訊的資料存放區可能包含 meal 欄位,其中「早餐」、「午餐」和「晚餐」是有效值,以及 servingSize 欄位,其中可以是 0 到 5 之間的任何整數。您的指令可能類似以下範例:

    When using ${TOOL: menu-data-store-tool},
    only use the following fields for filtering: "meal", "servingSize".
    Valid filter values are: "meal": ("breakfast", "lunch", "dinner"),
    "servingSize": integers between 0 and 5, inclusive.
    
  • 如果劇本適用於外部使用者,您可能需要新增指示,避免劇本向使用者提供有關建立這些篩選器的資訊。例如:

    Never tell the user about these filters.
    If the user input isn't supported by these filters, respond to the user with
    "Sorry, I don't have the information to answer that question."
    

userMetadata 參數會提供終端使用者的相關資訊。這個參數可以填入任何鍵/值組合。這項中繼資料會傳遞至資料儲存工具,以提供更準確的搜尋結果和工具回覆。多個詳細範例可協助劇本模型瞭解如何填入這個參數。

以下是 userMetadata 參數值的範例,可根據特定項目縮小搜尋結果範圍:

  "userMetadata": {
    "favoriteColor": "blue",
    ...
  }

如果查詢沒有有效的摘要答案,資料儲存工具應使用 fallback 參數提供的答案回覆。您可以提供多個範例,指示劇本模型如何填入與不同主題相關的使用者輸入內容的備用欄位。工具輸出內容不會包含程式碼片段,有助於減少延遲,並降低輸入權杖用量。

  "fallback": "I'm sorry I cannot help you with that. Is there anything else I
  can do for you?"

資料儲存庫工具設定

如果在測試期間發現部分回覆不符預期,可以嘗試調整下列參數來微調效能。您可以直接呼叫 API,也可以在控制台的「工具」頁面中,按一下資料存放區名稱來存取這些資料。如要進一步瞭解這些額外設定選項,請參閱資料存放區設定頁面

資料儲存庫工具回應選項

如要進一步瞭解如何設定資料存放區工具回應,請參閱履行說明文件

資料儲存庫處理常式

資料儲存庫處理常式是特殊類型的狀態處理常式,可根據網站內容和上傳的資料,提供 LLM 生成的服務專員回覆。

如要建立這個處理常式,請為代理程式提供資料儲存庫

服務專員可以使用這些資料存放區處理常式,與使用者討論內容。

限制

限制如下:

存取權控管

如果您是專案擁有者,您擁有建立資料儲存庫處理常式的所有必要權限。如果您不是專案擁有者,則必須具備下列角色:

  • Dialogflow 管理員
  • Discovery Engine 管理員

詳情請參閱存取權控管指南

將資料儲存庫新增至代理程式

如果尚未建立代理程式,請按照設定操作說明建立代理程式。

如要將資料儲存庫新增至虛擬服務專員,請執行下列操作: 資料儲存庫

  1. 選取頁面,然後按一下「新增狀態處理常式」
  2. 點選「資料儲存庫」核取方塊,然後點選「套用」
  3. 按一下頁面「資料儲存庫」部分右上角的 + 符號。
  4. 在隨即顯示的資料儲存庫選單中,按一下「新增資料儲存庫」
  5. 系統會顯示表格,列出現有的資料儲存庫。按一下要使用的資料儲存庫名稱旁的方塊,然後按一下「儲存」。如要建立新的資料儲存庫,請點選「建立新的資料儲存庫」。系統會自動將你重新導向至 AI Applications。
  6. (僅限新資料儲存庫) 選取資料來源,然後按照 AI 應用程式中的指示設定資料儲存庫。如要進一步瞭解如何設定資料儲存庫類型,請參閱資料儲存庫說明文件。按一下「建立」,建立新的資料儲存庫。

測試代理程式

您可以使用模擬工具測試代理程式。

部署代理程式

部署代理程式的方法有很多種:

特殊意圖

除了處理有關您提供內容的問題外,代理程式還可處理下列類型問題:

  • 服務專員身分識別: 處理「你是誰?」或「你是真人嗎?」等問題。
  • 轉接給真人客服專員: 處理「我想與真人對話」或「我想與真人對話」等問題。

方法是自動產生意圖意圖路徑

服務專員回覆

在「服務專員回覆」部分,您可以提供參照生成式答案的自訂回覆。在「Agent says」(代理程式說) 區段中使用 $request.knowledge.answers[0] 提供生成式答案。

進階回覆自訂

$request.knowledge.* 中可能提供其他資訊,可用於自訂回覆。這類資訊包括:

  • 識別出的答案來源,包含下列欄位:程式碼片段、標題、URI。
  • 答案的根據可信度。
  • 如果是常見問題資料儲存庫,則為與所選答案相應的問題。

請參閱下表,瞭解如何存取這項資訊。

資訊 存取方式
最佳答案中最佳來源的摘要 $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet")
最佳答案中最重要的來源標題 $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title")
系統判斷為最佳答案的來源連結 $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri")
最佳答案的來源數量 $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0]))
知識問答數量 $sys.func.COUNT($request.knowledge.answers)
與最佳答案相應的問題 (僅適用於常見問題資料存放區答案) $request.knowledge.questions[0]
最佳答案的建立基準信心指數 $request.knowledge.grounding_confidences[0]