Skip to main content
本指南将展示如何在 LangSmith 中追踪和记录 Google Gemini 模型。您将使用最新的 google-genai SDK(Python)或 @google/genai SDK(JavaScript)来对 Gemini 调用进行插装,包装 Gemini 客户端以实现追踪,并尝试包括基础提示、元数据标记和多轮对话在内的示例。
LangSmith 的 Gemini 包装器目前处于 测试版。API 可能在未来的版本中发生变化。

安装

使用您偏好的包管理器安装所需的包:
pip install langsmith google-genai

设置

设置您的 API 密钥 和项目名称:
export LANGSMITH_API_KEY=<您的_langsmith_api_密钥>
export LANGSMITH_PROJECT=<您的项目名称>
export LANGSMITH_TRACING=true
export GOOGLE_API_KEY=<您的_google_api_密钥>
要创建 Google API 密钥,请参考 Google AI Studio

配置追踪

要追踪 Gemini API 调用,请使用 LangSmith 的 wrap_gemini(Python)或 wrapGemini(JavaScript)包装函数。此包装器会拦截对 Gemini 客户端的调用,并自动将它们作为追踪记录到 LangSmith 中。包装器保留了原始客户端的全部功能,同时增加了可观测性:
from google import genai
from langsmith import wrappers

def main():
    # genai.Client() 从环境变量中读取 GOOGLE_API_KEY / GEMINI_API_KEY
    gemini_client = genai.Client()

    # 包装 Gemini 客户端以启用 LangSmith 追踪
    client = wrappers.wrap_gemini(
        gemini_client,
        tracing_extra={
            "tags": ["gemini", "python"],
            "metadata": {
                "integration": "google-genai",
            },
        },
    )

    # 发起一个被追踪的 Gemini 调用
    response = client.models.generate_content(
        model="gemini-2.5-flash",
        contents="用简单的术语解释量子计算。",
    )

    print(response.text)


if __name__ == "__main__":
    main()
您可以在调用 wrap_gemini() 时传递 tracing_extra 来自定义追踪。此参数将应用于您使用该包装客户端进行的所有后续请求,从而允许您附加标签和元数据,以便在 LangSmith UI 中对追踪进行筛选和组织。tracing_extra 参数接受:
  • tags:用于对追踪进行分类的字符串列表(例如 ["production", "gemini"])。
  • metadata:用于提供额外上下文的键值对字典(例如 {"team": "ml-research", "integration": "google-genai"})。
  • client:一个可选的、自定义的 LangSmith 客户端实例。
这些设置会在包装客户端生成的所有追踪中保持一致应用,因此您可以包含环境级别的标签或团队元数据,这些信息应在整个应用程序中保持不变。

在 LangSmith 中查看追踪

运行您的应用程序后,您可以在 LangSmith UI 中查看追踪,其中包括:
  • 模型请求:发送给 Gemini 模型的完整提示
  • 模型响应:生成的文本和结构化输出
  • 函数调用:使用函数调用时的工具调用和结果
  • 聊天会话:多轮对话的上下文
  • 性能指标:延迟和令牌使用信息