> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/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 包装器目前处于 **Beta** 阶段。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=<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](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="Explain quantum computing in simple terms.",
      )

      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: "Explain quantum computing in simple terms.",
  });

  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="terminal-2">
    [将这些文档连接](/use-these-docs)到 Claude、VSCode 等，通过 MCP 获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/langsmith/trace-with-google-gemini.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
