使用 Deep Research 获取报告

Deep Research 是一款 Made by Google 智能体,适用于需要收集、分析和了解内部及外部信息的用户。

概览

当您向 Deep Research 输入提示(例如“比较示例项目的竞争对手”)时,Deep Research 会评估问题是否与研究相关,生成一份计划来概述其执行研究的步骤,并在研究过程中流式传输问题和答案。然后,它会生成一份包含引用和音频摘要的调查结果报告。

对于研究来源,Deep Research 使用应用编入索引的数据。如果为应用启用了网页搜索,它还可以使用网页搜索结果。

以下是一些示例提示,Deep Research 会针对这些提示生成报告:

  • 如何改进现有手机银行应用的用户体验,使其更加直观且易于使用?
  • 如何在高峰时段缩短客户等待时间,同时又不影响支持质量?
  • 分析中欧国家的经济形势。
  • 将 BigQuery 与其竞争对手进行比较,并以表格格式提供结果。

使用 Deep Research

最终用户可以通过应用访问和使用 Deep Research。Deep Research 可以访问应用已编入索引的数据,如果已启用,还可以访问网页搜索结果。

您可以通过应用或使用 API(通常通过许可名单提供)获取深度研究的结果。

控制台

如需在应用中使用 Deep Research,请执行以下操作:

  1. 在应用导航菜单中,前往 Deep Research

  2. 点击来源,选择代理必须包含的来源,以便提供最相关的数据洞见。

    在来源中,除了 Gemini Enterprise 来源之外,您还可以选择纳入 Google 搜索结果。

  3. 输入“深度研究”的提示,然后点击提交。如果提示与研究无关,Deep Research 会生成回答。如果系统确定提示与研究相关,那么 Deep Research 会在研究计划中列出智能体计划研究的主题。

  4. 如有必要,请修改代理的提示,以生成更符合您要求的新研究计划。

  5. 如果您接受该研究方案,请点击开始研究

    智能体开始根据计划进行研究:

    • 随着研究的进展,流式传输正在研究的主题
    • 生成包含引用的研究结果报告
    • 创建报告的 1-2 分钟音频摘要

REST

如需使用 API 进行深度研究,请执行以下操作:

  1. streamAssist 方法发送请求。

    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/v1/projects/project_id/locations/global/collections/default_collection/engines/app_id/assistants/default_assistant:streamAssist" \
    -d '{
         "query": {
           "text": "QUERY"
         },
         "agentsSpec": {
           "agentSpecs": {
             "agentId": "deep_research"
           }
         },
         "toolsSpec": {
           "vertexAiSearchSpec": {
             "dataStoreSpecs": {
               "dataStore": "projects/PROJECT_ID/locations/global/collections/default_collection/datastores/DATA_STORE_ID"
             }
           },
           "webGroundingSpec": {}
         }
        }'
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • APP_ID:应用的 ID。
    • QUERY:查询。
    • DATA_STORE_ID:应用具有多个数据存储区时,数据存储区的 ID。指定此参数后,搜索范围将仅限于指定数据存储区中的文档。

    响应

    如果请求成功,您会收到类似于以下内容的 JSON 响应。请注意 SESSION_ID。这是在下一步中启动研究流程所必需的。

    [{
     "answer": {
       "name": "ANSWER_ASSIST_NAME",
       "state": "SUCCEEDED",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "INLINE_TEXT"
             }
           },
         },
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "INLINE_TEXT_WITH_RESEARCH_PLAN"
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_PLAN"
             }
           },
         }
       ],
     },
     "sessionInfo": {
       "session": "SESSION_ID",
       "queryId": "QUERY_ID",
       "turnId": "TURN_ID"
     },
     "assistToken": "ASSIST_TOKEN"
    }
    ]
    
  2. 针对上一步中的查询发起研究。为此,请向 streamAssist 方法发送另一项请求。在此请求中,将查询设置为 Start Research,并添加上一步中的会话信息。

    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/v1/projects/project_id/locations/global/collections/default_collection/engines/app_id/assistants/default_assistant:streamAssist" \
    -d '{
         "query": {
           "text": "Start Research"
         },
         "session": "SESSION_ID",
         "agentsSpec": {
           "agentSpecs": {
             "agentId": "deep_research"
           }
         },
         "toolsSpec": {
           "vertexAiSearchSpec": {
             "dataStoreSpecs": {
               "dataStore": "projects/PROJECT_ID/locations/global/collections/default_collection/datastores/DATA_STORE_ID"
             }
           },
           "webGroundingSpec": {}
         },
        }'
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • APP_ID:应用的 ID。
    • SESSION_ID:上一步中的会话 ID。
    • DATA_STORE_ID:应用具有多个数据存储区时,数据存储区的 ID。指定此参数后,搜索范围将仅限于指定数据存储区中的文档。

    响应

    如果请求成功,您会收到类似于以下截断响应的 JSON 响应。

    响应包含 AssistAnswer 资源的实例。

    这是一个流式响应,因此,根据研究回答中的数据量,可能需要一些时间才能完全流式传输。

    [{
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "RESEARCH_QUESTION_1"
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_QUESTION",
               "contentId": "ID0"
             }
           },
         }
       ]
     },
     "assistToken": "ASSIST_TOKEN"
    },
    {
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "RESEARCH_ANSWER_1_PART_1"
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_ANSWER",
               "contentId": "ID0"
             }
           },
         }
       ]
     },
     "assistToken": "ASSIST_TOKEN"
    },
    {
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "RESEARCH_ANSWER_1_PART_2"
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_ANSWER",
               "contentId": "ID0"
             }
           },
         }
       ]
     },
     "assistToken": "ASSIST_TOKEN"
    },
    {
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "text": "INLINE_TEXT"
             },
             "textGroundingMetadata": {
               "references": [
                 {
                   "documentMetadata": {
                     "document": "DOCUMENT_ID",
                     "uri": "DOCUMENT_REDIRECT_URI",
                     "title": "DOCUMENT_TITLE",
                     "pageIdentifier": "",
                     "domain": "DOCUMENT_DOMAIN"
                   }
                 }
               ]
               "searchEntryPoints": [
                 {
                   "renderedContent": "GROUNDING_SEARCH_ENTRY_POINT"
                 }
               ]
              }
            }
          }
        ]
      }
    },
    {
     "answer": {
       "state": "IN_PROGRESS",
       "replies": [
         {
           "groundedContent": {
             "content": {
               "role": "model",
               "file": {
                 "fileId": "AUDIO_FILE_ID"
               }
             },
             "contentMetadata": {
               "contentKind": "RESEARCH_AUDIO_SUMMARY"
             }
           },
         }
       ]
     },
     "assistToken": "ASSIST_TOKEN"
    }
    {
     "answer": {
       "name": "ANSWER_ASSIST_NAME",
       "state": "SUCCEEDED"
       },
     "sessionInfo": {
       "session": "SESSION_ID",
       "queryId": "QUERY_ID",
       "turnId": "TURN_ID"
     },
    "assistToken": "ASSIST_TOKEN"
    }]