以编程方式使用文档

本指南将展示如何追踪和记录 Google 的 Gemini 模型在 LangSmith 中的追踪方式。您将使用最新的 google-genai SDK (Python) 或 @google/genai SDK (JavaScript) 包装 Gemini 客户端以进行追踪,并尝试示例,包括基本提示词、元数据标记和多轮对话。

安装

使用您首选的包管理器安装所需的包:

pip install langsmith google-genai
npm install langsmith@latest @google/genai

设置

设置您的 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() reads GOOGLE_API_KEY / GEMINI_API_KEY from the environment
    gemini_client = genai.Client()

    # Wrap the Gemini client to enable LangSmith tracing
    client = wrappers.wrap_gemini(
        gemini_client,
        tracing_extra={
            "tags": ["gemini", "python"],
            "metadata": {
                "integration": "google-genai",
            },
        },
    )

    # Make a traced Gemini call
    response = client.models.generate_content(
        model="gemini-2.5-flash",
        contents="Explain quantum computing in simple terms.",
    )

    print(response.text)


if __name__ == "__main__":
    main()
const GEMINI_API_KEY = process.env.GEMINI_API_KEY;

// Initialize the Gemini client
const geminiClient = new GoogleGenAI({ apiKey: GEMINI_API_KEY });

// Wrap the client to enable LangSmith tracing
// Configuration is applied to ALL calls made with this wrapped client
const client = wrapGemini(geminiClient, {
  tags: ["gemini", "javascript"],
  metadata: {
    integration: "google-genai",
  },
});

// Make a traced call - tracing happens automatically
const response = await client.models.generateContent({
  model: "gemini-2.5-flash",
  contents: "Explain quantum computing in simple terms.",
});

console.log(response.text);

Python

您可以通过在调用 tracing_extra 时传递来自定义追踪。这些选项适用于您使用该包装客户端发出的所有后续请求,从而允许您附加标签和元数据,以便在 wrap_gemini()LangSmith UI 中过滤和组织追踪。tracing_extra 参数接受:

  • - tags:用于对追踪进行分类的字符串列表(例如, ["production", "gemini"]).
  • - metadata:用于附加上下文的键值对字典(例如, {"team": "ml-research", "integration": "google-genai"}).
  • - client:一个可选的自定义 LangSmith 客户端实例。

这些设置将一致地应用于包装客户端的所有追踪,从而使您能够包含应该在整个应用程序中保持不变的环境级标签或团队元数据。

JavaScript

您可以通过将配置选项传递给 wrapGemini 来自定义追踪。这些选项适用于您使用该包装客户端发出的所有后续请求,从而允许您附加标签和元数据,以便在 LangSmith UI中过滤和组织追踪。配置接受:

  • - tags:用于对追踪进行分类的字符串数组(例如, ["production", "gemini"]).
  • - metadata:用于附加上下文的键值对对象(例如, { team: "ml-research", integration: "google-genai" }).
  • - client:一个可选的自定义 LangSmith 客户端实例。

这些设置将一致地应用于包装客户端的所有追踪,从而使您能够包含应该在整个应用程序中保持不变的环境级标签或团队元数据。

在 LangSmith 中查看追踪

运行应用程序后,您可以在 LangSmith UI 中查看包含以下内容的追踪:

  • 模型请求: 发送到 Gemini 模型的完整提示词
  • 模型响应: 生成的文本和结构化输出
  • 函数调用: 使用函数调用时的工具调用和结果
  • 对话会话: 多轮对话上下文
  • 性能指标: 延迟和令牌使用信息