获取 StreamAssist 的搜索结果

在 Web 应用中,您可以获得流式响应形式的问题解答。本文档介绍了如何使用 REST API 获取答案。如果您想使用 Gemini Enterprise Web 应用,请参阅与助理对话

StreamAssist 概览

StreamAssist 提供了一种强大的互动方式来处理用户查询。它以流式方式运行,支持实时来回互动。

该 API 的主要功能包括:

  • 保持对话上下文:它使用会话来保持对话上下文,确保它能理解之前互动范围内的后续查询。

  • 纳入提供的文件:将附加文件作为上下文,以便生成更明智、更相关的回答。

  • 无缝集成:可与各种代理和工具集成,以满足各种用户请求。

准备工作

确保您具有以下各项:

  • 为您的 Google Cloud启用了 Discovery Engine API。 您可以在Google Cloud 控制台中的 Discovery Engine API 页面上启用该 API。

    前往 Discovery Engine API

  • 已分配 discoveryengine.assistants.assist 权限的 Discovery Engine 角色

  • 现有的 Gemini Enterprise 应用。如需创建应用,请参阅创建应用

获取搜索结果

您可以使用 streamAssist 方法向 Gemini Enterprise 提问并获取回答。以下 curl 命令列出了必填字段。

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "query": {
    "text": "QUERY_TEXT_1"
  }
}'

替换以下内容:

  • ENDPOINT_LOCATION-:API 请求的多区域。分配以下值之一:
    • us-(表示美国多区域)
    • eu-(表示欧盟多区域)
    • global-(表示全球位置)
    如需了解详情,请参阅为数据存储区指定多区域
  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • APP_ID:Gemini Enterprise 应用的唯一标识符。
  • LOCATION:数据存储区的多区域:globaluseu
  • QUERY_TEXT_1:搜索查询文本。

如需详细了解这些字段以及返回的内容,请参阅响应正文

使用同一会话获取搜索结果

如需在现有会话中继续对话并从 Gemini Enterprise 获取回答,请使用 streamAssist 方法。以下代码示例展示了必需字段:

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
  "query": {
    "text": "QUERY_TEXT_2"
  }
}'

替换以下内容:

  • ENDPOINT_LOCATION-:API 请求的多区域。分配以下值之一:
    • us-(表示美国多区域)
    • eu-(表示欧盟多区域)
    • global-(表示全球位置)
    如需了解详情,请参阅为数据存储区指定多区域
  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • APP_ID:Gemini Enterprise 应用的唯一标识符。
  • LOCATION:数据存储区的多区域:globaluseu
  • QUERY_TEXT_2:搜索查询文本。
  • SESSION_ID:之前对话或查询中的会话 ID。

如需详细了解这些字段以及返回的内容,请参阅响应正文

上传文件并获取搜索结果(预览版)

如需为助理提供更多相关信息,请将文件上传到会话,然后查询其内容。请按照以下步骤操作:

  1. 使用 addContextFile 方法将文件上传到会话。

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/sessions/SESSION_ID:addContextFile" \
      -d '
    {
      "fileName": "FILE_NAME",
      "mimeType": "MIME_TYPE",
      "fileContents": "BASE64_ENCODED_FILE"
    }'
    
    

    替换以下内容:

    • ENDPOINT_LOCATION-:API 请求的多区域。分配以下值之一:
      • us-(表示美国多区域)
      • eu-(表示欧盟多区域)
      • global-(表示全球位置)
      如需了解详情,请参阅为数据存储区指定多区域
    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • LOCATION:数据存储区的多区域:globaluseu
    • APP_ID:Gemini Enterprise 应用的唯一标识符。
    • SESSION_ID:之前对话或查询中的会话 ID。
    • FILE_NAME:文件的名称。
    • MIME_TYPE:文件的 MIME 类型,例如 text/plainapplication/pdf。如需详细了解不同的媒体类型,请参阅媒体类型
    • BASE64_ENCODED_FILE:文件的 base64 编码表示形式。

    如需详细了解这些字段以及返回的内容,请参阅响应正文

  2. 使用同一会话询问有关您使用 streamAssist 方法上传的文件的相关问题。

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
      -d '
    {
      "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
      "fileIds": ["FILE_ID"],
      "query": {
        "text": "QUERY_TEXT_3"
      }
    }'
    
    

    替换以下内容:

    • ENDPOINT_LOCATION-:API 请求的多区域。分配以下值之一:
      • us-(表示美国多区域)
      • eu-(表示欧盟多区域)
      • global-(表示全球位置)
      如需了解详情,请参阅为数据存储区指定多区域
    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • APP_ID:Gemini Enterprise 应用的唯一标识符。
    • LOCATION:数据存储区的多区域:globaluseu
    • QUERY_TEXT_3:搜索查询文本。
    • SESSION_ID:之前对话或查询中的会话 ID。
    • FILE_ID:您上传到助理的文件的 ID。

    如需详细了解这些字段以及返回的内容,请参阅响应正文