> ## Documentation Index
> Fetch the complete documentation index at: https://langchain-zh.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 追踪 Google Gemini 应用

本指南将展示如何在 LangSmith 中追踪和记录 [Google Gemini](https://ai.google.dev/gemini-api/docs) 模型。您将使用最新的 [`google-genai` SDK](https://googleapis.github.io/python-genai/)（Python）或 [`@google/genai` SDK](https://googleapis.github.io/js-genai/release_docs/index.html)（JavaScript）来对 Gemini 调用进行插装，包装 Gemini 客户端以实现追踪，并尝试包括基础提示、元数据标记和多轮对话在内的示例。

<Note>
  LangSmith 的 Gemini 包装器目前处于 **测试版**。API 可能在未来的版本中发生变化。
</Note>

## 安装

使用您偏好的包管理器安装所需的包：

<CodeGroup>
  ```bash pip theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  pip install langsmith google-genai
  ```

  ```bash npm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  npm install langsmith@latest @google/genai
  ```
</CodeGroup>

## 设置

设置您的 [API 密钥](/langsmith/create-account-api-key) 和项目名称：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
export LANGSMITH_API_KEY=<您的_langsmith_api_密钥>
export LANGSMITH_PROJECT=<您的项目名称>
export LANGSMITH_TRACING=true
export GOOGLE_API_KEY=<您的_google_api_密钥>
```

要创建 Google API 密钥，请参考 [Google AI Studio](https://aistudio.google.com/apikey)。

## 配置追踪

要追踪 Gemini API 调用，请使用 LangSmith 的 [`wrap_gemini`](https://reference.langchain.com/python/langsmith/wrappers/_gemini/wrap_gemini)（Python）或 [`wrapGemini`](https://reference.langchain.com/javascript/functions/langsmith.wrappers_gemini.wrapGemini.html)（JavaScript）包装函数。此包装器会拦截对 Gemini 客户端的调用，并自动将它们作为追踪记录到 LangSmith 中。包装器保留了原始客户端的全部功能，同时增加了可观测性：

<CodeGroup>
  ```python Python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  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()
  ```

  ```javascript JavaScript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  import { GoogleGenAI } from "@google/genai";
  import { wrapGemini } from "langsmith/wrappers/gemini";

  const GEMINI_API_KEY = process.env.GEMINI_API_KEY;

  // 初始化 Gemini 客户端
  const geminiClient = new GoogleGenAI({ apiKey: GEMINI_API_KEY });

  // 包装客户端以启用 LangSmith 追踪
  // 配置将应用于使用此包装客户端进行的所有调用
  const client = wrapGemini(geminiClient, {
    tags: ["gemini", "javascript"],
    metadata: {
      integration: "google-genai",
    },
  });

  // 发起一个被追踪的调用 - 追踪会自动进行
  const response = await client.models.generateContent({
    model: "gemini-2.5-flash",
    contents: "用简单的术语解释量子计算。",
  });

  console.log(response.text);
  ```
</CodeGroup>

<Tabs>
  <Tab title="Python" icon="brand-python">
    您可以在调用 `wrap_gemini()` 时传递 [`tracing_extra`](https://reference.langchain.com/python/langsmith/wrappers/_gemini/wrap_gemini) 来自定义追踪。此参数将应用于您使用该包装客户端进行的所有后续请求，从而允许您附加标签和元数据，以便在 [LangSmith UI](https://smith.langchain.com) 中对追踪进行筛选和组织。`tracing_extra` 参数接受：

    * `tags`：用于对追踪进行分类的字符串列表（例如 `["production", "gemini"]`）。
    * `metadata`：用于提供额外上下文的键值对字典（例如 `{"team": "ml-research", "integration": "google-genai"}`）。
    * `client`：一个可选的、自定义的 LangSmith 客户端实例。

    这些设置会在包装客户端生成的所有追踪中保持一致应用，因此您可以包含环境级别的标签或团队元数据，这些信息应在整个应用程序中保持不变。
  </Tab>

  <Tab title="JavaScript" icon="brand-javascript">
    您可以通过向 [`wrapGemini`](https://reference.langchain.com/javascript/functions/langsmith.wrappers_gemini.wrapGemini.html) 传递配置选项来自定义追踪。这些选项将应用于您使用该包装客户端进行的所有后续请求，从而允许您附加标签和元数据，以便在 [LangSmith UI](https://smith.langchain.com) 中对追踪进行筛选和组织。配置接受：

    * `tags`：用于对追踪进行分类的字符串数组（例如 `["production", "gemini"]`）。
    * `metadata`：用于提供额外上下文的键值对对象（例如 `{ team: "ml-research", integration: "google-genai" }`）。
    * `client`：一个可选的、自定义的 LangSmith 客户端实例。

    这些设置会在包装客户端生成的所有追踪中保持一致应用，因此您可以包含环境级别的标签或团队元数据，这些信息应在整个应用程序中保持不变。
  </Tab>
</Tabs>

## 在 LangSmith 中查看追踪

运行您的应用程序后，您可以在 [LangSmith UI](https://smith.langchain.com) 中查看追踪，其中包括：

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

***

<div className="source-links">
  <Callout icon="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/i18n\zh-CN\langsmith\trace-with-google-gemini.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>

  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>
</div>
