本頁說明如何註冊 Dialogflow 代理,並搭配 Gemini Enterprise 使用。
總覽
如要搭配 Gemini Enterprise 使用 Dialogflow 代理,必須先部署再註冊代理。註冊 Dialogflow 代理後,已部署的代理會連結至 Gemini Enterprise,兩者即可通訊。
事前準備
註冊 Dialogflow 代理前,請務必完成下列步驟:
部署 Dialogflow 代理。如要查看 Dialogflow 和對話式代理資訊主頁,請參閱「對話式代理」。
啟用 Discovery Engine API。如要為 Google Cloud專案啟用 Discovery Engine API,請前往 Google Cloud 控制台的「Discovery Engine API」頁面。
建立 Gemini Enterprise 應用程式。詳情請參閱「建立應用程式」。
向 Gemini Enterprise 註冊 Dialogflow 代理
您可以使用Google Cloud 控制台或 REST API,將 Dialogflow 代理註冊至 Gemini Enterprise。註冊後,Gemini Enterprise 應用程式中的使用者就能使用代理。
控制台
如要使用 Google Cloud 控制台註冊 Dialogflow 代理,請按照下列步驟操作:
前往 Google Cloud 控制台的「Gemini Enterprise」頁面。
選取專案。
按一下要註冊代理程式的應用程式名稱。
依序點選「代理」>「 新增代理」。 畫面上會顯示「選擇代理類型」窗格。
在「透過 Dialogflow 建立的自訂代理」資訊卡上,點選「新增」,然後向 Gemini Enterprise 註冊 Dialogflow 代理,「Configuration」(設定) 窗格隨即開啟。
如要設定代理,請按照下列步驟操作:
在「您的代理名稱」欄位輸入名稱。這個值會顯示於 Gemini Enterprise,做為代理的顯示名稱。
在「描述您的代理」欄位輸入說明。LLM 會依據這個值,判斷是否叫用代理來回覆使用者查詢。
在「Dialogflow 代理來源」欄位,輸入要向 Gemini Enterprise 註冊的 Dialogflow 代理資源路徑。
請使用以下格式:
projects/{project}/locations/{location}/agents/{agent}「服務專員是否在線上」選項預設為「已選取」。
點選「建立」。
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 代理
在註冊代理時提供的所有欄位都可以更新。更新過程中,下列欄位為必填:
displayNamedescriptionreasoning_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,請列出連結至應用程式的代理。