Mistral Large 4 于 2026 年 10 月 6 日上线 Mistral API,比开放权重的发布提前了三周。如果你想现在就试用这个 1 万亿参数的“Le Chonk”,API 是唯一的入口,而且眼下也是最便宜的入口:在公开预览期间,Mistral 把它标为 每百万输入 token $0.68、每百万输出 token $2.09,是 $1.36 / $4.18 标价的一半。
本文用大约五分钟带你从零跑通第一次调用,然后覆盖那些容易踩坑的部分:推理分块、图像输入、函数调用、JSON 输出和成本。每个请求都可以在 Apifox 中保存并反复重放,方便你把 Large 4 和当前在用的模型做对比。
初次接触这个模型?可以先读《Mistral 回来了:Le Chonk 在网络安全上胜过 GPT-6 Astra 和 Claude》,了解基准数据以及网络安全那条头条背后的前提。
准备工作
| 项目 | 值 |
|---|---|
| 前置 URL | https://api.mistral.ai/v1 |
| 鉴权 | Authorization: Bearer $MISTRAL_API_KEY |
| 模型 ID | mistral-large-4(别名 mistral-large-4-0) |
| 主接口 | POST /v1/chat/completions |
| 上下文窗口 | 1M token |
| 输入类型 | 文本、图像 |
| Python SDK | pip install mistralai |
| TypeScript SDK | npm install @mistralai/mistralai |
第 1 步:获取 API key
- 登录 Mistral Studio(原 La Plateforme)。
- 打开 API Keys 并新建一个 key。给它起个能说明用途的名字,比如
local-dev或ci-staging。 - 立刻复制,Studio 不会再显示第二次。
- 在 shell 中导出:
export MISTRAL_API_KEY="your-key-here"
不要把 key 提交进代码库。如果你要把它接入多个工具,我们的《API key 管理最佳实践》讲解了轮换和权限收窄。
第 2 步:发起第一次调用
最快的验证方式是直接用 curl:
curl https://api.mistral.ai/v1/chat/completions \
-H "Authorization: Bearer $MISTRAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mistral-large-4",
"messages": [
{"role": "user", "content": "Give me three edge cases to test on a pagination API."}
]
}'
调用成功时,choices[0].message.content 中返回答案,同时还有一个 usage 块,包含 prompt_tokens、completion_tokens 和 total_tokens。如果返回 401,说明 key 有误或没有导出;模型上的 404 通常是模型 ID 拼写错误。
Python 版本
import os
from mistralai import Mistral
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
response = client.chat.complete(
model="mistral-large-4",
messages=[
{"role": "user", "content": "Give me three edge cases to test on a pagination API."}
],
)
print(response.choices[0].message.content)
TypeScript 版本
import { Mistral } from "@mistralai/mistralai";
const client = new Mistral({ apiKey: process.env.MISTRAL_API_KEY });
const response = await client.chat.complete({
model: "mistral-large-4",
messages: [
{ role: "user", content: "Give me three edge cases to test on a pagination API." },
],
});
console.log(response.choices[0].message.content);
第 3 步:在 Apifox 中保存它
一旦开始对比模型,手打 curl 命令很快就会让人厌烦。在 Apifox 中:
- 新建 HTTP 请求:
POST https://api.mistral.ai/v1/chat/completions。 - 添加环境变量
MISTRAL_API_KEY,并设置 headerAuthorization: Bearer {{MISTRAL_API_KEY}}。 - 粘贴第 2 步的 JSON body,点击发送。
- 复制该请求,把
model改成你今天在用的模型(例如mistral-medium-3-5),两个都跑一遍。
现在你有两个使用同一 prompt 的已保存请求。Apifox 会分别展示响应体、状态码、耗时和大小,因此不必写脚本就能对比回答质量、延迟和 usage token 数。再加一条后置操作断言,校验 choices[0].message.content 非空,你就得到了一个随时可重跑的冒烟测试,Mistral 每次更新预览版都能用。
第 4 步:开启和关闭推理
Large 4 是一个混合模型:同一个模型既能给快速回答,也能做逐步推理。你通过一个参数 reasoning_effort 来控制它:
| 取值 | 行为 | 适用场景 |
|---|---|---|
"none" |
最少思考,响应中不含 thinking 分块 | 对话、抽取、分类,以及任何对延迟敏感的场景 |
"high" |
在最终答案前返回完整的 thinking 分块 | 调试、多步规划、数学、代码评审 |
curl https://api.mistral.ai/v1/chat/completions \
-H "Authorization: Bearer $MISTRAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mistral-large-4",
"messages": [
{"role": "user", "content": "Our API returns 200 with an empty body under load. List likely causes in order of probability."}
],
"reasoning_effort": "high"
}'
这里正是会写崩解析器的地方。当 reasoning_effort: "high" 时,message.content 不再是字符串,而是变成一组分块:
- 一个
thinking分块,承载推理过程; - 一个
text分块,承载最终答案。
所以 response.choices[0].message.content 打印出来是一个列表,而不是你的答案。要显式取出 text 分块:
response = client.chat.complete(
model="mistral-large-4",
messages=[{"role": "user", "content": "Why would a 200 response have an empty body?"}],
reasoning_effort="high",
)
content = response.choices[0].message.content
if isinstance(content, str):
answer = content
else:
answer = "".join(c.text for c in content if c.type == "text")
print(answer)
Thinking token 按输出 token 计费,因此 "high" 的单次成本更高。默认用 "none",只在确实需要的调用上切到 "high"。
第 5 步:发送图像
Large 4 原生支持多模态,配有 1.6B 参数的视觉编码器。把图像作为 content 的一部分,和文本一起传入:
curl https://api.mistral.ai/v1/chat/completions \
-H "Authorization: Bearer $MISTRAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mistral-large-4",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "This is a screenshot of our API error dashboard. Which endpoint is failing most and what is the error code?"},
{"type": "image_url", "image_url": "https://example.com/dashboard.png"}
]
}
]
}'
本地文件则改传 base64 data URL:"image_url": "data:image/png;base64,<encoded>"。Mistral 称 Large 4 在 Dense 200 视觉接地基准上得分 42%,略高于 GPT-6 Astra 的 41%,因此处理仪表盘截图、图表和 UI 状态是合理的用法。
第 6 步:函数调用
函数调用正是 Large 4 那些 agent 基准成绩(AutomationBench 59.9%)发挥作用的地方。你描述工具,模型决定何时调用,你的代码负责执行。
tools = [
{
"type": "function",
"function": {
"name": "get_order_status",
"description": "Look up the status of an order by its ID.",
"parameters": {
"type": "object",
"properties": {
"order_id": {"type": "string", "description": "The order ID, e.g. ORD-1042"}
},
"required": ["order_id"],
},
},
}
]
messages = [{"role": "user", "content": "Where is order ORD-1042?"}]
response = client.chat.complete(
model="mistral-large-4",
messages=messages,
tools=tools,
tool_choice="auto",
)
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)
你自己执行这个函数,然后带着匹配的 tool_call_id 把结果回传:
import json
result = {"order_id": "ORD-1042", "status": "shipped", "eta": "2026-10-09"}
messages.append(response.choices[0].message)
messages.append({
"role": "tool",
"name": "get_order_status",
"content": json.dumps(result),
"tool_call_id": tool_call.id,
})
final = client.chat.complete(model="mistral-large-4", messages=messages, tools=tools)
print(final.choices[0].message.content)
工具 schema 就是普通的 JSON Schema。如果你的 API 已经有 OpenAPI 规范,可以直接把每个操作的请求 schema 搬进 parameters。先在 Apifox 中设计规范,能让工具定义和真实 API 保持同步。
第 7 步:获取 JSON 返回
需要机器可读的输出时,设置 response_format:
curl https://api.mistral.ai/v1/chat/completions \
-H "Authorization: Bearer $MISTRAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mistral-large-4",
"messages": [
{"role": "user", "content": "Extract method, path and status code from: GET /v1/users/42 returned 404. Reply in JSON."}
],
"response_format": {"type": "json_object"}
}'
除了 response_format,也要在 prompt 里提到 JSON。对于严格的形状,Mistral 还支持带完整 schema 的 {"type": "json_schema", "json_schema": {...}}。在 Apifox 中,为响应添加一条 JSON Schema 断言,这样形状漂移会直接报错,而不是破坏下游服务。
费用
| 用量 | 预览价 | 标价 |
|---|---|---|
| 输入,每 1M token | $0.68 | $1.36 |
| 缓存输入,每 1M token | $0.07 | $0.14 |
| 输出,每 1M token | $2.09 | $4.18 |
一个算例:某 agent 每天调用 10,000 次,每次 3,000 输入 token(大部分是缓存后的系统 prompt 和工具定义)和 500 输出 token。
- 输入:30M token。如果每 3,000 中有 2,500 是缓存命中,就是 25M 缓存按 $0.07、5M 新输入按 $0.68,约 $5.15/天。
- 输出:5M token 按 $2.09,约 $10.45/天。
- 合计:按预览价约 $15.60/天,按标价约 $31。
同样的负载放在 GPT-6 Astra 上($10 / $50 每百万,未计缓存折扣)每天要花几百美元。Mistral 没有说明预览价何时结束,因此做预算时请按标价计算。
常见错误
| 错误 | 可能原因 | 解决办法 |
|---|---|---|
401 Unauthorized |
key 缺失或错误 | 检查 echo $MISTRAL_API_KEY 以及 Bearer 前缀 |
404 / invalid model |
模型 ID 拼写错误 | 严格使用 mistral-large-4 |
422 Unprocessable Entity |
body 格式有误,通常是 tools schema 有问题 |
校验每个工具 parameters 中的 JSON Schema |
429 Too Many Requests |
触达工作区档位的速率上限 | 退避后重试,或在 Studio 中提升上限 |
| 答案打印成一个列表 | reasoning_effort: "high" 会返回多个分块 |
取出 text 分块(见第 4 步) |
常见问题
Mistral Large 4 兼容 OpenAI 吗? 请求结构非常接近:model、messages、tools、tool_choice 和 response_format 的用法都符合预期。稳妥起见请使用 Mistral 官方 SDK 或纯 HTTP。推理输出用的是 Mistral 自己的分块格式。
什么时候可以在本地运行? Mistral 称权重将在 2026 年 10 月底前放出。以 1.05T 总参数来看,它需要多 GPU 服务器硬件。在那之前,小模型可以参照我们的《本地运行 Mistral 3》指南准备工具链。
预览版稳定到可以上生产了吗? 还不行。该模型标注为公开预览,在权重发布前仍可能变化。请固定你的测试,Mistral 更新模型时重跑,并保留一个备用模型配置。
可以在现有 Mistral 代码里使用 Large 4 吗? 可以。相同的 base URL、相同的鉴权、相同的 SDK,只需把 model 字符串改成 mistral-large-4。如果你是从 Medium 3.5 迁移,可参阅我们的《Mistral Medium 3.5 API 指南》了解哪些部分可以直接沿用。
小结
五分钟就能跑通一次调用。接下来的一小时更值得花在把真实 prompt 同时打到 Large 4 和当前模型上做并排对比。把两个请求都保存到 Apifox 中,为状态码和响应结构添加断言,一天之内你就能判断 Le Chonk 是否值得进入你的技术栈——趁预览价还打五折。
HiFox:将 Agent 变成真正的队友
另外,我们也在思考,AI 如何从个人提效走进团队协作。
HiFox 是一个让人和 AI Agent 在同一个工作现场协作的平台:你可以像给同事分派任务一样指派 Agent,在任务看板中跟踪进度、查看结果,让 Agent 成为团队里的队友。
👉 立即体验 HiFox:https://hifox.com
AI Coding 交流群
如果你也在用 AI 写代码,或者正在研究 Cursor、Claude Code 这些工具,
欢迎加入以下交流群。群里平时会聊一些 AI 编程的实际用法、开发工作流,还有各种新工具和新玩法。