函数调用 (Function Calling)
函数调用功能允许开发者定义自定义函数(工具),并将这些函数的描述提供给 Gemini 模型。模型可以智能地选择调用这些函数来完成任务,并输出结构化的调用参数。
工作原理
- 定义工具: 开发者向模型提供函数声明(名称、描述、参数架构)。
- 模型决策: 模型分析用户提示,决定是否需要调用函数。如果需要,它会生成符合函数签名的 JSON 对象。
- 执行函数: 应用程序接收模型的响应,执行实际的函数代码(例如调用外部 API)。
- 返回结果: 应用程序将函数执行的结果返回给模型。
- 生成响应: 模型利用函数返回的结果生成最终的自然语言回答。
适用场景
- 实时数据查询: 获取天气、股票价格、航班信息。
- 数据库操作: 查询或更新客户订单、库存状态。
- 控制系统: 控制智能家居设备、执行软件命令。
代码示例 (Python)
from google import genai
from google.genai import types
# 1. 定义工具函数
def get_current_weather(location: str):
"""获取指定地点的当前天气。"""
# 这里应该是实际的 API 调用
return {"temperature": "25", "unit": "Celsius", "description": "Sunny"}
# 2. 配置工具
tools = [get_current_weather]
client = genai.Client()
# 3. 发送带有工具的请求
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="北京今天的天气怎么样?",
config=types.GenerateContentConfig(tools=tools),
)
# 4. 处理响应 (模型会自动决定调用工具)
# 注意:实际应用中需要处理 function_call 部分并回传结果
print(response.text) # 或者查看 response.candidates[0].content.parts