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

安装

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

设置

设置您的 API 密钥 和项目名称:
export LANGSMITH_API_KEY=<your_langsmith_api_key>
export LANGSMITH_PROJECT=<your_project_name>
export LANGSMITH_TRACING=true
export GOOGLE_API_KEY=<your_google_api_key>
要创建 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="Explain quantum computing in simple terms.",
    )

    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 模型的完整提示
  • 模型响应:生成的文本和结构化输出
  • 函数调用:使用函数调用时的工具调用和结果
  • 聊天会话:多轮对话上下文
  • 性能指标:延迟和令牌使用信息