将工具与 Gemini API 搭配使用

工具扩展了 Gemini 模型的功能,使其能够处理超出 LLM 知识范围的任务,进行实际操作和访问实时信息,以及执行复杂的计算任务。模型可以使用标准请求-响应互动和 实时流式会话(使用 Live API)中的工具。

工具是模型可用于回答查询的特定功能(例如 Google 搜索或代码执行)。Gemini API 提供了一套全托管式内置工具,您也可以使用 函数 调用来定义自定义工具。

如需构建多步、以目标为导向的系统,请参阅智能体概览

可用的内置工具

工具 说明 使用场景
Google 搜索 以网络上的时事和事实为依据来提供回答,以减少幻觉。 \- 回答有关近期活动的问题
\- 使用各种来源验证事实
Google 地图 构建可查找地点、获取路线和提供丰富的本地上下文信息的感知位置的助理。 - 规划包含多个停靠点的旅行行程
- 根据用户条件查找本地商家
代码执行 允许模型编写和运行 Python 代码,以准确解决数学问题或处理数据。 - 解出复杂的数学方程
- 精确处理和分析文本数据
网址上下文 指示模型读取和分析特定网页或文档中的内容。 \- 根据特定网址或文档回答问题
\- 检索不同网页上的信息
计算机使用(预览版) 让 Gemini 查看屏幕并生成与网络浏览器界面互动的操作(客户端执行)。 \- 自动执行重复的基于 Web 的工作流
\- 测试 Web 应用界面
文件搜索 为自己的文档编制索引并进行搜索,以启用检索增强生成 (RAG)。 - 搜索技术手册
- 根据专有数据回答问题

如需详细了解与特定工具相关的费用,请参阅价格页面

工具执行的工作原理

借助工具,模型可以在对话期间请求执行操作。流程因工具是内置(由 Google 管理)还是自定义(由您管理)而异。

内置工具流程

对于内置工具(Google 搜索、Google 地图、网址上下文、文件搜索、代码执行),整个过程都在一次 API 调用中完成:

  1. 发送提示:“GOOG 最新股价的平方根是多少?”
  2. Gemini 确定需要工具并在 Google 的服务器上执行这些工具(例如,搜索股价,然后运行 Python 代码来计算平方根)。
  3. Gemini 会根据工具结果返回最终答案。

自定义工具流程(函数调用)

对于自定义工具和计算机使用,您的应用会处理执行:

  1. 发送提示以及函数(工具)声明。
  2. Gemini 可能会返回结构化 JSON 以调用特定函数 (例如,{"name": "get_order_status", "args": {"order_id": "123"}}), 并且始终包含唯一的 id
  3. 在应用或环境中执行该函数。
  4. 将函数结果(与函数调用具有相同的 id)发送回 Gemini。
  5. Gemini 使用结果生成最终回答或其他工具调用。

如需了解详情,请参阅函数调用指南

组合内置工具和自定义工具流程

对于组合了内置工具和自定义工具(函数调用)的请求,模型使用工具上下文循环来协调不同环境中的执行

  1. 发送提示并声明要启用的内置工具和自定义函数,并设置一个标志以启用组合支持。
  2. Gemini 执行内置工具,并在生成任何客户端函数调用时让用户执行(先执行哪个取决于提示和模型决定)。它会返回包含以下内容的回答:
    • 工具调用的确认信息
    • 工具响应的结果(如果模型生成了两个并行函数调用,则可能会在 JSON 之后显示)
    • 用于调用函数的结构化 JSON
    • 用于保留上下文的加密想法签名
  3. 在应用或环境中执行该函数。
  4. 返回 Gemini 回答的所有部分,以及函数调用结果。
  5. Gemini 使用所有组合的上下文生成最终回答。

如需了解如何启用对内置工具和自定义工具组合的支持以及上下文循环的示例,请参阅工具组合指南

结构化输出与函数调用

Gemini 提供了两种生成结构化输出的方法。当模型需要通过连接到您自己的工具或数据系统来执行 中间步骤时,请使用函数 调用。当您严格要求模型的最终回答遵循特定架构(例如用于呈现自定义界面)时,请使用 结构化输出

使用工具的结构化输出

您可以将结构化输出与 内置工具结合使用,以确保以外部数据或 计算为依据的模型回答仍遵循严格的架构。

如需查看代码示例,请参阅使用工具的结构化输出