> ## 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.

# 追踪 DeepSeek 应用

[DeepSeek](https://deepseek.com/) 提供高性能、兼容 OpenAI 的语言模型，包括 `deepseek-chat`（用于通用对话）和 `deepseek-reasoner`（用于高级推理任务）。使用 LangSmith 可以通过捕获输入、输出和元数据的结构化跟踪来调试、监控和评估您的 LLM 应用。

本指南将向您展示如何在 Python 和 TypeScript 中将 DeepSeek 与 LangSmith 集成，使用 LangSmith 的 [`@traceable`](https://reference.langchain.com/python/langsmith/run_helpers/traceable)（Python）和 [`traceable(...)`](https://reference.langchain.com/javascript/modules/langsmith.html)（TypeScript）工具自动记录 LLM 调用。

## 安装

安装 [OpenAI](https://platform.openai.com/docs/libraries) 和 LangSmith：

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

  ```bash uv theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  uv add openai langsmith
  ```

  ```bash npm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  npm install openai langsmith dotenv
  ```
</CodeGroup>

DeepSeek 提供了一个[兼容 OpenAI 的 API](https://api-docs.deepseek.com/)，这意味着您可以使用 OpenAI SDK 与 DeepSeek 模型进行交互。唯一的区别是您需要将客户端配置为指向 DeepSeek 的基础 URL（`https://api.deepseek.com/v1`），而不是 OpenAI 的端点。

## 设置

设置您的 [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_TRACING="true"
export LANGSMITH_PROJECT="deepseek-integration"
export DEEPSEEK_API_KEY="your-deepseek-api-key"
```

* 确保您拥有来自 [DeepSeek 账户](https://platform.deepseek.com/) 的 DeepSeek API 密钥。
* 设置 `LANGSMITH_TRACING=true` 并提供您的 LangSmith API 密钥（`LANGSMITH_API_KEY`）以激活跟踪的自动记录。
* 指定一个 [`LANGSMITH_PROJECT`](/langsmith/log-traces-to-project) 名称以按项目组织跟踪；如果未设置，跟踪将进入默认项目（名为 "default"）。
* `LANGSMITH_TRACING` 标志必须为 true 才能记录任何跟踪。

## 配置跟踪

1. 使用 LangSmith 对 DeepSeek API 调用进行检测。在您的脚本中，创建一个配置为使用 DeepSeek API 端点的 OpenAI 客户端，并将调用包装在一个被跟踪的函数中：

   <CodeGroup>
     ```python Python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
     import os
     from openai import OpenAI
     from langsmith import traceable

     # 创建一个指向 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)
     ```

     ```typescript TypeScript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
     import { config } from "dotenv";
     import OpenAI from "openai";
     import { traceable } from "langsmith/traceable";

     config(); // 从 .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);
     })();

     ```
   </CodeGroup>

   在此示例中，您使用 OpenAI SDK 与 [DeepSeek 的 API](https://api-docs.deepseek.com/) 进行交互。OpenAI 客户端配置了 `base_url="https://api.deepseek.com/v1"`，以便在保持 OpenAI 兼容语法的同时将请求路由到 DeepSeek 的端点。

   `@traceable` 装饰器（Python）或 `traceable` 函数（TypeScript）包装您的函数，以便每次调用都被记录为类型为 `"llm"` 的跟踪运行。`metadata` 参数为跟踪添加标签：

   * `ls_provider`：标识提供者（DeepSeek）以过滤跟踪。
   * `ls_model_name`：指定用于成本跟踪和分析的模型。

   函数返回完整的消息对象（`response.choices[0].message`），其中包括响应内容以及角色和任何其他字段等元数据。LangSmith 自动捕获：

   * 发送给模型的输入消息。
   * 模型的完整响应（内容、角色等）。
   * 模型名称和令牌使用统计信息。
   * 执行时间和任何错误。

2. 执行您的脚本以生成跟踪：

   <CodeGroup>
     ```bash Python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
     python deepseek_trace.py
     ```

     ```bash TypeScript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
     node deepseek_trace.js
     ```
   </CodeGroup>

   函数调用将访问 DeepSeek 的 API，并且由于 `@traceable`/`traceable` 包装器，LangSmith 将记录此调用的输入和输出作为新的跟踪。您会发现模型的响应打印到控制台，并且在 [LangSmith UI](https://smith.langchain.com) 中出现相应的运行。

## 在 LangSmith 中查看跟踪

运行示例后，您可以在 [LangSmith UI](https://smith.langchain.com) 中检查记录的跟踪：

1. 打开 LangSmith UI 并登录您的账户。
2. 选择您用于此集成的项目（例如，在 `LANGSMITH_PROJECT` 中设置的名称，或者如果您未设置则为 "default"）。
3. 找到与您的 DeepSeek API 调用对应的跟踪。它将通过函数名称（`DeepSeek Chat Completion`）标识。
4. 单击跟踪以打开它。您将能够检查模型输入和输出，包括您发送的提示消息和 DeepSeek 的响应，以及时间信息（延迟）和令牌使用情况。

通过 LangSmith 的跟踪，您可以完全了解您的 DeepSeek 调用——允许您调试 DeepSeek 模型的行为、监控性能（响应时间和令牌使用情况）以及比较具有不同参数的运行。

## 成本跟踪

虽然 DeepSeek 模型是开放权重的，但使用托管的 DeepSeek API 可能会根据您的计划产生基于使用量的费用。

LangSmith 可以通过估算令牌使用量并应用特定于模型的定价，自动将成本与跟踪的 LLM 调用关联起来。跟踪 DeepSeek API 调用时，LangSmith 使用记录的提示和响应消息来计算令牌数量，并将成本信息附加到每个运行。

要启用 LLM 调用的自动成本跟踪，请参阅[基于令牌数量自动跟踪成本](/langsmith/cost-tracking#llm-calls:-automatically-track-costs-based-on-token-counts)。

启用后，成本将直接显示在 LangSmith UI 中每个跟踪的 DeepSeek 运行旁边，允许您监控使用情况并随时间比较实验。

***

<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-deepseek.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
