DeepSeek 提供高性能、OpenAI 兼容的语言模型,包括 deepseek-chat (用于通用对话)和 deepseek-reasoner (用于高级推理任务)。使用 LangSmith 可以通过捕获输入、输出和元数据的结构化追踪来调试、监控和评估您的 LLM 应用。
本指南向您展示如何在 Python 和 TypeScript 中将 DeepSeek 与 LangSmith 集成,使用 LangSmith 的 @traceable(Python)和 traceable(...)(TypeScript)工具自动记录 LLM 调用。
安装
安装 OpenAI 和 LangSmith:
pip install openai langsmith
uv add openai langsmith
npm install openai langsmith dotenv
DeepSeek 提供 OpenAI 兼容 API,这意味着您可以使用 OpenAI SDK 与 DeepSeek 模型进行交互。唯一的区别是您需要将客户端配置为指向 DeepSeek 的基础 URL(https://api.deepseek.com/v1)而不是 OpenAI 的端点。
设置
设置您的 API 密钥 和项目名称:
- - 确保您拥有来自您的 DeepSeek 账户.
- - 的 DeepSeek API 密钥,设置
LANGSMITH_TRACING=true并提供您的 LangSmith API 密钥 (LANGSMITH_API_KEY) 会激活自动追踪记录。 - - 指定一个
LANGSMITH_PROJECT名称来按项目组织追踪记录;如果未设置,追踪记录将进入默认项目(名为 "default")。 - - 该
LANGSMITH_TRACING标志必须为 true 才能记录任何追踪记录。
配置追踪
- 使用 LangSmith 为 DeepSeek API 调用添加检测。在脚本中,创建一个配置为使用 DeepSeek API 端点的 OpenAI 客户端,并将调用包装在追踪函数中:
from openai import OpenAI
from langsmith import traceable
# Create a client pointing to DeepSeek
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com/v1"
)
@traceable(
run_type="llm",
name="DeepSeek Chat Completion",
metadata={"ls_provider": "deepseek", "ls_model_name": "deepseek-chat"},
)
def call_deepseek(messages: list[dict]):
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
return response.choices[0].message
if __name__ == "__main__":
messages = [
{"role": "system", "content": "You are a helpful assistant that translates English to French."},
{"role": "user", "content": "I love programming."}
]
result = call_deepseek(messages=messages)
print("Model reply:", result.content)
config(); // Load env vars from .env
const openai = new OpenAI({
apiKey: process.env.DEEPSEEK_API_KEY,
baseURL: "https://api.deepseek.com/v1"
});
type ChatMessage = {
role: "system" | "user" | "assistant";
content: string;
};
const callDeepSeek = traceable(
async (messages: ChatMessage[]) => {
const response = await openai.chat.completions.create({
model: "deepseek-chat",
messages
});
return response.choices[0].message;
},
{
name: "DeepSeek Chat Completion",
run_type: "llm",
metadata: {
ls_provider: "deepseek",
ls_model_name: "deepseek-chat"
}
}
);
(async () => {
const messages: ChatMessage[] = [
{
role: "system",
content: "You are a helpful assistant that translates English to French."
},
{
role: "user",
content: "I love programming."
}
];
const result = await callDeepSeek(messages);
console.log("Model reply:", result.content);
})();
在此示例中,您使用 OpenAI SDK 与 DeepSeek 的 API进行交互。OpenAI 客户端配置了 base_url="https://api.deepseek.com/v1" 来将请求路由到 DeepSeek 的端点,同时保持 OpenAI 兼容的语法。
该 @traceable 装饰器(Python)或 traceable 函数(TypeScript)将您的函数包装起来,以便每次调用都作为类型为 "llm"的追踪运行被记录下来。该 metadata 参数为追踪添加以下标签:
- -
ls_provider:识别提供商(DeepSeek)以便筛选追踪记录。 - -
ls_model_name:指定用于成本跟踪和分析的模型。
函数返回完整的消息对象(response.choices[0].message),其中包含响应内容以及角色和任何其他字段等元数据。LangSmith 会自动捕获:
- - 发送给模型的输入消息。
- - 模型的完整响应(内容、角色等)。
- - 模型名称和 token 使用统计。
- - 执行时间和任何错误。
- 执行脚本以生成追踪:
python deepseek_trace.py
node deepseek_trace.js
函数调用将访问 DeepSeek 的 API,由于 @traceable/traceable 包装器,LangSmith 会将此调用的输入和输出记录为新的追踪。您会在控制台中看到模型的响应打印出来,并在 LangSmith UI.
在 LangSmith 中查看追踪
运行示例后,您可以在 LangSmith UI:
- 打开 LangSmith UI 并登录您的账户。
- 选择您用于此集成的项目(例如,在
LANGSMITH_PROJECT中设置的名称,或者如果您未设置,则为 "default")。 - 找到与您的 DeepSeek API 调用对应的追踪。它将由函数名称标识(
DeepSeek Chat Completion). - 点击追踪将其打开。您将能够检查模型的输入和输出,包括您发送的提示消息和 DeepSeek 的响应,以及时间信息(延迟)和令牌使用情况。
借助 LangSmith 的追踪功能,您可以完全了解 DeepSeek 调用的情况——让您能够调试 DeepSeek 模型的行为、监控性能(响应时间和令牌使用情况),以及比较不同参数下的运行情况。
成本追踪
虽然 DeepSeek 模型是开放权重的,但使用托管的 DeepSeek API 可能会根据您的计划产生基于使用量的费用。
LangSmith 可以通过估算令牌使用量并应用特定模型的定价来自动将成本与追踪的 LLM 调用相关联。追踪 DeepSeek API 调用时,LangSmith 使用记录的提示和响应消息来计算令牌数量,并向每次运行附加成本信息。
要启用 LLM 调用的自动成本追踪,请参阅 根据令牌数量自动追踪成本.
启用后,成本会直接显示在 LangSmith UI 中,与每个追踪的 DeepSeek 运行一起显示,让您能够监控使用情况并随时间比较实验。