註冊及管理 Dialogflow 代理程式

本頁說明如何註冊 Dialogflow 代理,並搭配 Gemini Enterprise 使用。

總覽

如要搭配 Gemini Enterprise 使用 Dialogflow 代理,必須先部署再註冊代理。註冊 Dialogflow 代理後,已部署的代理會連結至 Gemini Enterprise,兩者即可通訊。

事前準備

註冊 Dialogflow 代理前,請務必完成下列步驟:

向 Gemini Enterprise 註冊 Dialogflow 代理

您可以使用Google Cloud 控制台或 REST API,將 Dialogflow 代理註冊至 Gemini Enterprise。註冊後,Gemini Enterprise 應用程式中的使用者就能使用代理。

控制台

如要使用 Google Cloud 控制台註冊 Dialogflow 代理,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。

    前往 Gemini Enterprise

  2. 選取專案。

  3. 按一下要註冊代理程式的應用程式名稱。

  4. 依序點選「代理」>「 新增代理」。 畫面上會顯示「選擇代理類型」窗格。

  5. 在「透過 Dialogflow 建立的自訂代理」資訊卡上,點選「新增」,然後向 Gemini Enterprise 註冊 Dialogflow 代理,「Configuration」(設定) 窗格隨即開啟。

  6. 如要設定代理,請按照下列步驟操作:

    1. 在「您的代理名稱」欄位輸入名稱。這個值會顯示於 Gemini Enterprise,做為代理的顯示名稱。

    2. 在「描述您的代理」欄位輸入說明。LLM 會依據這個值,判斷是否叫用代理來回覆使用者查詢。

    3. 在「Dialogflow 代理來源」欄位,輸入要向 Gemini Enterprise 註冊的 Dialogflow 代理資源路徑。

      請使用以下格式: projects/{project}/locations/{location}/agents/{agent}

      「服務專員是否在線上」選項預設為「已選取」。

    4. 點選「建立」。

curl

以下程式碼範例說明如何註冊代理:

  curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "description": "DESCRIPTION",
      "icon": {
        "uri": "ICON_URI"
      },
      "dialogflowAgentDefinition": {
        "dialogflowAgent": "projects/DIALOGFLOW_PROJECT_ID/locations/DIALOGFLOW_LOCATION/agents/DIALOGFLOW_AGENT_ID"
      }
    }'

將變數替換為值:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • APP_ID:Gemini Enterprise 應用程式的 ID。
  • DISPLAY_NAME:代理在 Gemini Enterprise 中顯示的容易使用名稱。
  • DESCRIPTION:簡短說明代理的功能,Gemini Enterprise 使用者會看到這項資訊。例如「從上傳的出差發票中擷取重要資訊」。
  • ICON_URI:圖示的公開 URI,會顯示在 Dialogflow 代理名稱旁。您也可以在 icon.content 中提供 Base64 編碼圖片。
  • DIALOGFLOW_PROJECT_ID: Google Cloud 專案 ID,用於識別 Dialogflow 代理的位置。
  • DIALOGFLOW_LOCATION:Dialogflow 代理的託管位置,例如 global 或 us-central1。
  • DIALOGFLOW_AGENT_ID:Dialogflow 代理的專屬 ID。

如果這個指令成功執行,回應會傳回新建立 Dialogflow 代理資源的所有欄位,包括 name 欄位中的專屬資源名稱。這個資源名稱可用於日後更新或參考。

列出連結至應用程式的代理

下列程式碼範例說明如何取得與應用程式連結的所有代理詳細資料:

REST

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents"

將變數替換為值:

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:應用程式的多區域:global、us 或 eu。
  • APP_ID:Gemini Enterprise 應用程式的 ID。

如果代理不是由 Google 預先建構,回覆的前幾行會包含 name 欄位。這個欄位的值包含路徑結尾的代理 ID。舉例來說,在下列回應中,代理程式 ID 為 12345678901234567890:

{
"name": "projects/123456/locations/global/collections/default_collection/engines/my-app/assistants/default_assistant/agents/12345678901234567890",
...
}

查看 Dialogflow 代理的詳細資料

下列程式碼範例說明如何擷取已註冊 Gemini Enterprise 的代理詳細資料:

REST

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID"

將變數替換為值:

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:應用程式的多區域:global、us 或 eu。
  • APP_ID:Gemini Enterprise 應用程式的 ID。
  • AGENT_ID:代理 ID。如要找出代理 ID,請列出連結至應用程式的代理。

更新 Dialogflow 代理

在註冊代理時提供的所有欄位都可以更新。更新過程中,下列欄位為必填:

  • displayName
  • description
  • reasoning_engine

更新欄位時,即使特定欄位沒有任何變更,也必須在更新要求中重新定義所有欄位及其值。

以下程式碼範例示範如何更新 Dialogflow 代理程式的註冊資訊:

curl

  curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
  "https://discoveryengine.googleapis.com/v1alpha/AGENT_RESOURCE_NAME" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "description": "DESCRIPTION",
      "icon": {
        "uri": "ICON_URI"
      },
      "dialogflowAgentDefinition": {
        "dialogflowAgent": "projects/PROJECT_ID/locations/REASONING_ENGINE_LOCATION/agents/DIALOGFLOW_AGENT_ID"
      }
    }'

將變數替換為值:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • AGENT_RESOURCE_NAME:要更新的代理程式註冊資源名稱。
  • DISPLAY_NAME:代理的顯示名稱。
  • DESCRIPTION:Gemini Enterprise 中顯示的代理說明。說明僅供使用者參考。
  • ICON_URI:圖示的公開 URI,會顯示在 Dialogflow 代理名稱旁。您也可以在 icon.content 中提供 Base64 編碼圖片。
  • REASONING_ENGINE_LOCATION:要建立代理的推論引擎雲端位置。
  • DIALOGFLOW_AGENT_ID:Dialogflow 代理的專屬 ID。

刪除 Dialogflow 代理

下列程式碼範例示範如何刪除與應用程式連結的代理:

REST

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID"

將變數替換為值:

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:應用程式的多區域:global、us 或 eu
  • APP_ID:Gemini Enterprise 應用程式的 ID。
  • AGENT_ID:代理 ID。如要找出代理 ID,請列出連結至應用程式的代理。