以编程方式使用文档

Mistral 通过简单 API 提供对开源语言模型的托管访问。

本指南展示如何使用 LangSmith 追踪 Mistral API 调用,从而记录提示词、响应和元数据以便调试和可观测性。追踪通过 LangSmith SDK 和标准 span 插桩直接发送到 LangSmith。

安装

安装 Mistral 官方库和 LangSmith:

pip install mistralai langsmith
npm install @mistralai/mistralai langsmith dotenv

mistralai 提供 Mistral 客户端用于与 Mistral API 交互。

设置

设置您的 API 密钥 和项目名称:

  • - 确保您有来自您的 Mistral AI 账户 的 Mistral API 密钥(将其设置为 MISTRAL_API_KEY).
  • - 设置 LANGSMITH_TRACING=true 并提供您的 LangSmith API 密钥(LANGSMITH_API_KEY)可激活追踪的自动日志记录。
  • - 指定一个 LANGSMITH_PROJECT 名称来按项目组织追踪;如果未设置,追踪将发送到默认项目(名为 "default")。
  • - 必须将 LANGSMITH_TRACING 标志设置为 true 才能记录任何追踪。

配置追踪

  1. 使用 LangSmith 检测 Mistral API 调用。在脚本中创建一个 Mistral 客户端,并在 traced 函数中包装一个调用:
    from mistralai import Mistral
    from langsmith import traceable

    # Initialize Mistral API client with your API key
    client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

    @traceable(
        run_type="llm",
        metadata={"ls_provider": "mistral", "ls_model_name": "mistral-medium-latest"},
    )
    def query_mistral(prompt: str):
        response = client.chat.complete(
            model="mistral-medium-latest",
            messages=[{"role": "user", "content": prompt}],
        )
        return response.choices[0].message

    # Example usage
    result = query_mistral("Hello, how are you?")
    print("Mistral response:", result.content)
    
    const mistral = new Mistral({
      apiKey: process.env.MISTRAL_API_KEY,
    });

    const langsmith = new Client();

    const tracedChatCompletion = traceable(
      async (params: {
        model: string;
        messages: Array<{ role: string; content: string }>;
      }) => {
        const response = await mistral.chat.complete(params);
        // Return the message content so LangSmith captures it correctly
        return response.choices[0].message.content;
      },
      {
        name: "Mistral Chat Completion",
        run_type: "llm",
        metadata: {
          ls_provider: "mistral",
          ls_model_name: "mistral-small-latest",
        },
      }
    );

    async function main() {
      const response = await tracedChatCompletion({
        model: "mistral-small-latest",
        messages: [
          { role: "user", content: "Say hello in one short sentence." },
        ],
      });

      console.log(response);
    }

    main();
    

在此示例中,您使用 Mistral SDK 发送聊天补全请求(带用户提示)并检索模型的回答。

@traceable 装饰器(来自 LangSmith Python SDK)包装了 query_mistral 函数,以便每次调用都被记录为类型的跟踪运行 "llm"metadata={"ls_provider": "mistral", "ls_model_name": "mistral-medium-latest"} 标记跟踪的提供程序(Mistral)和模型名称。

您也可以参考 LangSmith JavaScript SDK

  1. 执行脚本以生成跟踪。例如:
    python mistral_trace.py
    
    node index.js
    

query_mistral("Hello, how are you?") 调用将连接到 Mistral API,并且由于 @traceable/traceable 包装器,LangSmith 会将此调用的输入和输出记录为新的跟踪。您会在控制台中看到模型的响应打印出来,并且相应的运行会显示在 LangSmith.

在 LangSmith 中查看跟踪

运行示例后,您可以在 LangSmith UI:

  1. 打开 LangSmith UI 并登录您的账户。
  2. 选择您用于此集成的项目(例如,在 LANGSMITH_PROJECT中设置的名称,如果您未设置,则为默认值)。
  3. 找到与您的 Mistral API 调用对应的跟踪。它将通过函数名称来识别(query_mistral),如果有提供自定义名称的话。
  4. 点击追踪记录以打开它。您将能够检查模型的输入和输出,包括您发送的提示消息和来自 Mistral 的响应,以及时间信息(延迟)和调用失败时的任何错误详情。

借助 LangSmith 的追踪功能,您可以完全了解您的 Mistral 调用情况——让您能够调试 Mistral 模型的行为、监控性能(例如响应时间和令牌使用量),并使用元数据标签比较不同参数下的运行情况。

成本追踪

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

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

要启用 LLM 调用的自动成本追踪,请参阅 根据令牌数量自动追踪成本.

启用后,成本将直接显示在 LangSmith UI 中,与每个追踪的 Mistral 运行一起呈现,以便您可以监控使用情况并随时间比较实验结果。