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

# 追踪 Mistral 应用

[Mistral](https://mistral.ai/) 通过一个简单的 API 提供对开放权重语言模型的托管访问。

本指南向您展示如何使用 LangSmith 追踪 Mistral API 调用，从而记录提示、响应和元数据，用于调试和可观测性。追踪数据通过 [LangSmith SDK](https://reference.langchain.com/python/langsmith/) 和标准的 span 检测直接发送到 LangSmith。

## 安装

安装 Mistral 的官方库和 LangSmith：

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

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

[`mistralai`](https://docs.mistral.ai/getting-started/clients) 提供了一个 Mistral 客户端，用于与 Mistral 的 API 交互。

## 设置

设置您的 [API 密钥](/langsmith/create-account-api-key) 和项目名称：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
export MISTRAL_API_KEY="<your_mistral_api_key>"
export LANGSMITH_TRACING="true"
export LANGSMITH_API_KEY="<your_langsmith_api_key>"
export LANGSMITH_PROJECT="<your_project_name>"  # 可选
```

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

## 配置追踪

1. 使用 LangSmith 检测 Mistral API 调用。在您的脚本中，创建一个 Mistral 客户端，并将调用包装在一个可追踪的函数中：

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

     # 使用您的 API 密钥初始化 Mistral API 客户端
     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

     # 示例用法
     result = query_mistral("Hello, how are you?")
     print("Mistral response:", result.content)
     ```

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

     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);
         // 返回消息内容以便 LangSmith 正确捕获
         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();
     ```
   </CodeGroup>

   在此示例中，您使用 [Mistral SDK](https://docs.mistral.ai/getting-started/clients) 发送一个聊天补全请求（包含用户提示）并检索模型的答案。

   [`@traceable`](https://reference.langchain.com/python/langsmith/run_helpers/traceable) 装饰器（来自 [LangSmith Python SDK](https://reference.langchain.com/python/langsmith/observability/sdk/)）包装了 `query_mistral` 函数，使得每次调用都被记录为类型为 `"llm"` 的追踪运行。`metadata={"ls_provider": "mistral", "ls_model_name": "mistral-medium-latest"}` 为追踪标记了提供者（Mistral）和模型名称。

   您也可以参考 [LangSmith JavaScript SDK](https://reference.langchain.com/javascript/modules/langsmith.html)。

2. 执行您的脚本以生成追踪。例如：

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

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

   `query_mistral("Hello, how are you?")` 调用将访问 Mistral API，并且由于 `@traceable`/`traceable` 包装器，LangSmith 将记录此调用的输入和输出作为新的追踪。您将在控制台看到模型的响应被打印出来，并且在 [LangSmith](https://smith.langchain.com) 中会出现相应的运行记录。

## 在 LangSmith 中查看追踪

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

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/cost-tracking#llm-calls:-automatically-track-costs-based-on-token-counts)。

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

***

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