主题
追踪 Google Gemini 应用
本指南展示如何在 LangSmith 中追踪和记录 Google Gemini 模型。你将使用最新的 google-genai SDK(Python)或 @google/genai SDK(JavaScript)对 Gemini 调用进行埋点,包装 Gemini 客户端以启用追踪,并尝试包括基本提示词、元数据标记和多轮对话在内的示例。
NOTE
LangSmith Gemini 包装器处于 beta 阶段。API 在未来的版本中可能会发生变化。
安装
使用你偏好的包管理器安装所需依赖包:
bash
pip install langsmith google-genaibash
npm install langsmith@latest @google/genai设置
设置你的 API key 和项目名称:
bash
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 key,请参阅 Google AI Studio。
配置追踪
要追踪 Gemini API 调用,请使用 LangSmith 的 wrap_gemini(Python)或 wrapGemini(JavaScript)包装函数。该包装器会拦截对 Gemini 客户端的调用,并自动将其作为追踪记录到 LangSmith。包装器在增加可观测性的同时保留原客户端的全部功能:
python
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()javascript
import { GoogleGenAI } from "@google/genai";
import { wrapGemini } from "langsmith/wrappers/gemini";
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);你可以在调用 wrap_gemini() 时传入 tracing_extra 来自定义追踪。该参数会应用于使用该包装客户端进行的所有后续请求,让你可以附加标签和元数据,以便在 LangSmith UI 中筛选和整理追踪。tracing_extra 参数接受:
tags:用于对追踪分类的字符串列表(例如["production", "gemini"])。metadata:包含键值对的字典,用于提供额外上下文(例如{"team": "ml-research", "integration": "google-genai"})。client:可选的自定义 LangSmith client 实例。
这些设置会一致地应用于该包装客户端的所有追踪,因此你可以加入应在整个应用中保持不变的环境级标签或团队元数据。
在 LangSmith 中查看追踪
运行应用后,你可以在 LangSmith UI 中查看包含以下内容的追踪:
- 模型请求:发送给 Gemini 模型的完整提示词
- 模型响应:生成的文本和结构化输出
- 函数调用:使用函数调用时的工具调用和结果
- 聊天会话:多轮对话上下文
- 性能指标:延迟和 token 使用量信息