本页面介绍了如何向 Gemini Enterprise 注册 Dialogflow 代理,以及如何将 Dialogflow 代理与 Gemini Enterprise 搭配使用。
概览
如需将 Dialogflow 代理与 Gemini Enterprise 搭配使用,您必须先部署代理,然后再注册代理。注册 Dialogflow 代理会将已部署的代理与 Gemini Enterprise 相关联,以便它们能够相互通信。
准备工作
在注册 Dialogflow 代理之前,您必须确保已完成以下步骤:
- 部署 Dialogflow 代理。如需查看 Dialogflow 和对话代理信息中心,请参阅对话代理。
- 为您的 Google Cloud 项目启用 Discovery Engine API。
- 为您的 Discovery Engine 服务账号启用
Vertex AI User和Vertex AI Viewer角色。这是 Gemini Enterprise 能够与您的 Dialogflow 代理进行通信的必要条件。您可以在Google Cloud 控制台的“Identity and Access Management”部分配置这些权限。 - 选中包括 Google 提供的角色授权复选框,以查看 Discovery Engine 服务账号。
- 创建 Gemini Enterprise 应用。如需了解详情,请参阅创建应用。
向 Gemini Enterprise 注册 Dialogflow 代理
您可以使用Google Cloud 控制台或 REST API 向 Gemini Enterprise 注册您的 Dialogflow 代理。注册后,您的代理将可在 Gemini Enterprise 应用中供用户使用。
控制台
如需使用 Google Cloud 控制台注册 Dialogflow 代理,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。
选择您的项目。
点击要向其注册代理的应用的名称。
依次点击代理 > 添加代理。 选择代理类型窗格即会显示。
在通过 Dialogflow 构建的自定义代理卡片上,点击添加,向 Gemini Enterprise 注册您的 Dialogflow 代理。配置窗格即会打开。
如需配置代理,请按以下步骤操作:
在您的代理名称字段中输入一个名称。此值将显示在 Gemini Enterprise 中,作为您的代理的显示名称。
在描述您的代理字段中输入相关说明。LLM 会根据此值来确定是否调用您的代理来响应用户查询。
在 Dialogflow 代理来源字段中,输入要向 Gemini Enterprise 注册的 Dialogflow 代理的资源路径。
使用此格式:
projects/{project}/locations/{location}/agents/{agent}默认情况下,系统会设置代理可用性选项(选中时)。
在工具设置部分下,在工具说明字段中输入相关说明。LLM 会根据此说明来了解工具的用途,并决定何时使用它。
在输入参数名称字段中输入名称。这是函数调用的参数名称。此参数名称向 LLM 提供了关于该参数预计包含的内容类型(例如
question、command、search_query)的提示。在输入参数说明字段中输入相关说明。这是函数调用的参数说明。此说明向 LLM 提供了关于该参数的更多信息,例如预计会传入什么类型的内容以及应该执行什么操作。
点击创建。
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:标识您的 Dialogflow 代理位置的 Google Cloud 项目 ID。
- DIALOGFLOW_LOCATION:托管您的 Dialogflow 代理的特定地理位置,例如
global或us-central1。 - DIALOGFLOW_AGENT_ID:您的 Dialogflow 代理的唯一标识符。
如果此命令成功执行,则响应中会返回新创建的 Dialogflow 代理资源的所有字段,包括其在“name”字段中的唯一资源名称。此资源名称可用于未来的更新或引用。
列出已关联到应用的代理
以下代码示例演示了如何获取与您的应用关联的所有代理的详细信息:
curl
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 注册的代理的详细信息:
curl
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 代理的唯一标识符。
删除 Dialogflow 代理
以下代码示例演示了如何删除与您的应用关联的代理:
curl
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。