Skip to main content
DeepSeek 提供高性能、兼容 OpenAI 的语言模型,包括 deepseek-chat(用于通用对话)和 deepseek-reasoner(用于高级推理任务)。使用 LangSmith 可以通过捕获输入、输出和元数据的结构化跟踪来调试、监控和评估您的 LLM 应用。 本指南将向您展示如何在 Python 和 TypeScript 中将 DeepSeek 与 LangSmith 集成,使用 LangSmith 的 @traceable(Python)和 traceable(...)(TypeScript)工具自动记录 LLM 调用。

安装

安装 OpenAI 和 LangSmith:
pip install openai langsmith
DeepSeek 提供了一个兼容 OpenAI 的 API,这意味着您可以使用 OpenAI SDK 与 DeepSeek 模型进行交互。唯一的区别是您需要将客户端配置为指向 DeepSeek 的基础 URL(https://api.deepseek.com/v1),而不是 OpenAI 的端点。

设置

设置您的 API 密钥 和项目名称:
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 账户 的 DeepSeek API 密钥。
  • 设置 LANGSMITH_TRACING=true 并提供您的 LangSmith API 密钥(LANGSMITH_API_KEY)以激活跟踪的自动记录。
  • 指定一个 LANGSMITH_PROJECT 名称以按项目组织跟踪;如果未设置,跟踪将进入默认项目(名为 “default”)。
  • LANGSMITH_TRACING 标志必须为 true 才能记录任何跟踪。

配置跟踪

  1. 使用 LangSmith 对 DeepSeek API 调用进行检测。在您的脚本中,创建一个配置为使用 DeepSeek API 端点的 OpenAI 客户端,并将调用包装在一个被跟踪的函数中:
    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)
    
    在此示例中,您使用 OpenAI SDK 与 DeepSeek 的 API 进行交互。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. 执行您的脚本以生成跟踪:
    python deepseek_trace.py
    
    函数调用将访问 DeepSeek 的 API,并且由于 @traceable/traceable 包装器,LangSmith 将记录此调用的输入和输出作为新的跟踪。您会发现模型的响应打印到控制台,并且在 LangSmith UI 中出现相应的运行。

在 LangSmith 中查看跟踪

运行示例后,您可以在 LangSmith UI 中检查记录的跟踪:
  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 UI 中每个跟踪的 DeepSeek 运行旁边,允许您监控使用情况并随时间比较实验。