函数调用 (Function Calling)

函数调用功能允许开发者定义自定义函数(工具),并将这些函数的描述提供给 Gemini 模型。模型可以智能地选择调用这些函数来完成任务,并输出结构化的调用参数。

工作原理

  1. 定义工具: 开发者向模型提供函数声明(名称、描述、参数架构)。
  2. 模型决策: 模型分析用户提示,决定是否需要调用函数。如果需要,它会生成符合函数签名的 JSON 对象。
  3. 执行函数: 应用程序接收模型的响应,执行实际的函数代码(例如调用外部 API)。
  4. 返回结果: 应用程序将函数执行的结果返回给模型。
  5. 生成响应: 模型利用函数返回的结果生成最终的自然语言回答。

适用场景

  • 实时数据查询: 获取天气、股票价格、航班信息。
  • 数据库操作: 查询或更新客户订单、库存状态。
  • 控制系统: 控制智能家居设备、执行软件命令。

代码示例 (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