研究报告中搜索接地(Search Grounding)的使用指南
技术背景
大型语言模型(LLM)的训练数据存在截止日期,无法实时反映快速变化的商业世界。例如,公司财报、市场动态、突发新闻等时效性信息,模型可能无法准确回答。搜索接地(Search Grounding)技术通过将 LLM 与 Google 搜索集成,使模型能够检索并引用最新网络信息,从而生成准确、实时的回答。Gemini 1.5 模型提供了搜索接地功能,但需要配置动态检索阈值,使用复杂。Gemini 2.0 及更高版本引入了新的搜索工具,简化了集成过程,无需阈值设置,且支持与函数调用等其他工具组合使用。本教程旨在展示如何利用这一新功能构建一个自动生成公司研究报告的应用,解决传统 LLM 信息滞后的问题。
核心原理
搜索工具的核心原理是:在模型生成内容时,自动触发 Google 搜索查询,获取相关网页信息,并将这些信息作为上下文注入到生成过程中。模型基于这些实时信息进行推理和生成,确保输出内容的准确性和时效性。与旧版搜索接地不同,新搜索工具无需设置动态检索阈值,模型会根据需要自动决定是否搜索。数据流如下:用户输入公司名称 -> 模型规划研究步骤 -> 模型发起搜索请求 -> 获取搜索结果 -> 模型整合信息并生成报告 -> 流式输出结果。关键组件包括:Gemini 模型(负责推理和生成)、Google 搜索工具(提供实时信息)、SDK 客户端(管理 API 调用)。设计决策上,新工具将搜索作为模型的原生能力,简化了开发者的集成工作,同时通过流式传输提升用户体验。
架构分析
本教程的系统架构遵循典型的 AI 应用模式:客户端-服务端架构。客户端使用 Google Gen AI SDK 与 Gemini API 交互。核心组件包括:1) SDK 客户端(client):负责认证和 API 调用;2) 模型(MODEL_ID):指定使用的 Gemini 模型版本;3) 配置(GenerateContentConfig):设置系统指令、工具列表和生成参数;4) 工具(Tool):启用 Google 搜索功能;5) 流式响应处理:通过 generate_content_stream 方法逐块接收生成内容。设计思想是模块化:将模型选择、工具配置、提示词分离,便于扩展。开发者可以修改系统指令来定制报告风格,或添加其他工具(如函数调用)来增强功能。流式传输设计减少了等待时间,提升了交互体验。
完整实战教程
##### 版权所有 2026 Google LLC.
# @title Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
使用 Gemini 2+ 的搜索工具
在本教程中,你将利用 Gemini 模型最新的搜索工具来撰写一份公司报告。请注意,搜索工具是付费功能,本教程不适用于免费版 API 密钥。
你可能会问,为什么需要为此使用搜索工具?嗯,你可能知道,当今的商业世界发展非常迅速,而大型语言模型通常训练频率不够高,无法捕捉最新的动态。幸运的是,Google 搜索可以帮上忙。Google 搜索旨在提供准确且近乎实时的信息,可以帮助我们完美地完成这项任务。
请注意,虽然 Gemini 1.5 模型提供了搜索接地功能,也可能帮助你实现类似的结果(参见之前的笔记本),但 Gemini 2.0 及更高版本模型中的新搜索工具更强大、更易用,应优先于搜索接地使用。还可以同时使用多个工具(例如,搜索工具和函数调用)。
设置
安装 SDK
新的 Google Gen AI SDK 提供了对 Gemini 模型的编程访问,同时支持 Google AI for Developers 和 Vertex AI API。除少数例外,在一个平台上运行的代码也可以在另一个平台上运行。这意味着您可以使用 Developer API 快速构建原型,然后无需重写代码即可将应用迁移到 Vertex AI。
%pip install -U -q google-genai
设置你的 API 密钥
要运行以下单元格,你的 API 密钥必须存储在名为 GEMINI_API_KEY 的 Colab 密钥中。如果你还没有 API 密钥,或者不确定如何创建 Colab 密钥,请参阅 [身份验证]
](../quickstarts/Authentication.ipynb) 查看示例。
from google.colab import userdata
GEMINI_API_KEY=userdata.get('GEMINI_API_KEY')
导入库
from google import genai
from google.genai.types import GenerateContentConfig, Tool
from IPython.display import display, HTML, Markdown
import io
import json
import re
初始化 SDK 客户端
使用新的 SDK,你现在只需要用你的 API 密钥(或如果使用 Vertex AI 则使用 OAuth)初始化一个客户端。模型现在在每次调用中设置。
client = genai.Client(api_key=GEMINI_API_KEY)
选择模型
搜索工具是 Gemini 模型中的一项新功能,可自动从网络检索准确且基于事实的内容,供开发者进一步处理。与 Gemini 1.5 模型中的搜索接地不同,您无需设置动态检索阈值。
有关所有 Gemini 模型的更多信息,请查看文档,了解每个模型的详细信息。
MODEL_ID = "gemini-3.7-flash" # @param ["gemini-3.1-pro-preview", "gemini-3.7-flash", "gemini-3.5-flash-lite", "gemini-2.5-pro"] {"allow-input":true, isTemplate: true}
使用 Gemini 撰写报告
选择一家目标公司进行研究
接下来,你将使用Alphabet作为示例研究目标。
COMPANY = 'Alphabet' # @param {type:"string"}
让 Gemini 规划任务并撰写报告
最新的 Gemini 模型相比之前的模型有了巨大的进步,因为它们可以一次性完成推理、规划、搜索和写作。在这种情况下,你只需给 Gemini 一个提示词,模型就能无缝完成你的任务。你还会使用输出流式传输,即在生成响应时流式传输响应,模型会在生成后立即返回响应的分块。如果你希望 SDK 在模型完成整个生成过程后返回响应,你也可以使用非流式方法。
请注意,你必须启用 Google 搜索建议,这有助于用户找到与有根据的响应相对应的搜索结果,并显示搜索查询,这些查询包含在有根据的响应的元数据中。你可以找到更多详细信息了解此要求。
sys_instruction = """You are an analyst that conducts company research.
You are given a company name, and you will work on a company report. You have access
to Google Search to look up company news, updates and metrics to write research reports.
When given a company name, identify key aspects to research, look up that information
and then write a concise company report.
Feel free to plan your work and talk about it, but when you start writing the report,
put a line of dashes (---) to demarcate the report itself, and say nothing else after
the report has finished.
"""
config = GenerateContentConfig(system_instruction=sys_instruction, tools=[Tool(google_search={})], temperature=0)
response_stream = client.models.generate_content_stream(
model=MODEL, config=config, contents=[COMPANY])
report = io.StringIO()
for chunk in response_stream:
candidate = chunk.candidates[0]
for part in candidate.content.parts:
if part.text:
display(Markdown(part.text))
# Find and save the report itself.
if m := re.search('(^|\n)-+\n(.*)$', part.text, re.M):
# Find the starting '---' line and start saving.
report.write(m.group(2))
elif report.tell():
# If there's already something in the buffer, keep recording.
report.write(part.text)
else:
print(json.dumps(part.model_dump(exclude_none=True), indent=2))
# You must enable Google Search Suggestions
if gm := candidate.grounding_metadata:
if sep := gm.search_entry_point:
display(HTML(sep.rendered_content))
非常令人印象深刻!Gemini 首先会为任务制定计划,执行相关搜索,并为你流式生成一份报告。
最终输出
渲染最终输出。
display(Markdown(report.getvalue().replace('$', r'\$'))) # Escape $ signs for better MD rendering
display(HTML(sep.rendered_content))
如您所见,Gemini 模型能够为我们撰写一份简洁、准确且结构良好的研究报告。报告中的所有信息都是真实且最新的。
请注意,本教程旨在展示新搜索工具的功能并激发有趣的用例,而非构建生产级研究报告生成器。如果您希望使用工具,请查看 Gemini 应用中的 Google 深度研究。
后续步骤
* 要了解搜索工具的更多信息,请查看搜索工具文档。
* 要开始使用流式传输,请查看流式传输快速入门。
* 要开始使用搜索工具,请查看搜索工具快速入门。
* 要了解 Gemini 2.0 中的搜索工具比之前的搜索接地功能更简单、更强大,请将此教程与之前的示例进行比较。
要了解所有 Gemini 功能的更多信息,请查看Gemini 快速入门笔记本。
常见问题
常见错误及排查方法:1) API 密钥无效或未设置:确保在 Colab 中正确存储 GEMINI_API_KEY,并检查密钥是否有效。2) 免费版密钥不支持搜索工具:搜索工具为付费功能,需升级 API 密钥。3) 模型不支持搜索工具:确认所选模型(如 gemini-3.7-flash)支持搜索工具,可参考官方文档。4) 网络问题:确保网络连接稳定,可重试。5) 输出格式问题:如果报告中的美元符号被错误渲染,代码中已使用 replace('$', r'\$') 转义。6) 搜索建议未显示:必须启用 Google 搜索建议,否则可能违反服务条款。生产环境优化:1) 使用 Vertex AI 进行生产部署,以获得更好的可扩展性和安全性。2) 实现缓存机制,避免重复搜索相同查询。3) 设置合理的超时和重试策略。4) 监控 API 使用量,控制成本。
企业应用扩展
本教程展示了搜索工具的基本用法,开发者可以进一步扩展:1) 结合函数调用,实现更复杂的业务逻辑,如自动生成多个公司报告并汇总。2) 使用 Gemini 的深度研究功能(Deep Research)构建更强大的研究助手。3) 将搜索工具集成到聊天机器人中,提供实时信息查询。4) 利用流式传输实现实时报告生成,并添加进度指示。5) 探索其他模型参数(如 temperature)对报告风格的影响。6) 将报告输出保存为文件或数据库,构建知识库。7) 参考官方文档和快速入门,了解更多高级功能。
总结
本教程面向有编程基础的开发者,介绍如何使用 Gemini 2+ 模型的新搜索工具撰写公司研究报告。与旧版搜索接地相比,新工具无需动态检索阈值,更强大易用。教程涵盖 SDK 安装、API 密钥配置、模型选择、流式生成报告及搜索建议展示,并强调搜索工具为付费功能。通过实际代码演示,开发者可快速掌握将实时网络搜索集成到 AI 应用中的方法,适用于需要最新信息的商业分析、新闻聚合等场景。
- --
内容来源与验证
- 内容等级:PREMIUM_A
- 质量等级:A
- 难度:中级
- 验证等级:V1
- 原文作者:
- 原文日期:
- 来源许可:Apache-2.0
- 来源版本:
61c12e8d5e19888c756c6f64978d68d84c115b8f - 查看原文
站内还有更多完整实战教程
加入会员,解锁全部教程、完整代码与持续更新内容。
加入会员