Mistral API 的 OpenAI 兼容接入 —— 以及它的 reasoning_effort

Mistral 的模型通常要走 api.mistral.ai 和它自己的 key。通过 DaoXE,它们和 GPT、Claude、DeepSeek 共用同一个 OpenAI 兼容 base URL —— 一个 key 覆盖数百个模型、约 25 家厂商。

更新于 2026-09-15

Mistral 的家族 —— 通用 Mistral 系列、代码向的 Codestral 等 —— 原生要单独的 api.mistral.ai key。通过 DaoXE,它们和 GPT、Claude、DeepSeek 共用同一个 key:一个 key 覆盖数百个模型、约 25 家厂商。用 GET /v1/models 里的 Mistral 系 ID 调 /v1/chat/completions —— 你的账号到底载有哪些 Mistral ID,以实时列表为准,别当默认。成本分流见最便宜 API 教程。

通过 DaoXE 调用 Mistral#

Chat 路径:/v1/chat/completions,用 Authorization: Bearer。推理是请求参数,不是另选模型:发 extra_body={"reasoning_effort": "high"},回答会以类型化分块而非普通字符串的形式返回。原生侧 max_tokens 与 prompt 共享上下文窗口 —— 预算要同时覆盖思考和回答。

bash
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/chat/completions \
  -H "Authorization: Bearer ${DAOXE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_EXACT_MODEL_ID",
    "max_tokens": 64,
    "messages": [{"role": "user", "content": "Say hello in one sentence."}]
  }'
python
# Mistral reasoning is a REQUEST PARAM (reasoning_effort), not a model switch.
# With effort set, message.content becomes a LIST of typed chunks
# ({"type": "thinking"}... then {"type": "text"}) instead of a plain string -
# parse both shapes, and replay the thinking chunks in multi-turn history.
from openai import OpenAI

client = OpenAI(base_url="https://daoxe.com/v1", api_key="YOUR_DAOXE_KEY")
r = client.chat.completions.create(
    model="YOUR_EXACT_MODEL_ID",   # a mistral-family id from GET /v1/models
    messages=[{"role": "user", "content": "2+2? Think briefly, then answer."}],
    max_tokens=2048,               # prompt + max_tokens must fit the context window
    extra_body={"reasoning_effort": "high"},   # non-standard: send via extra_body
)
msg = r.choices[0].message
content = msg.content
if isinstance(content, list):      # thinking chunks + text chunks
    for part in content:
        if getattr(part, "type", None) == "text":
            print(part.text)       # final answer
else:
    print(content)                 # plain string when effort is "none"

Mistral 如何暴露思考内容#

Mistral 现行机制是 reasoning_effort 参数(none、minimal、low、medium、high、xhigh);旧的原生 Magistral 推理 ID 已弃用。设 high 时 message.content 变成列表:先是 {"type": "thinking"} 分块,然后是 {"type": "text"} 回答;设 none 时是普通字符串。流式同理 —— delta.content 会在流中途改变形态。由此两条规则:content 按两种形态解析;多轮历史要回传思考分块 —— Mistral 明确警告剔除它们会降低下一轮回答质量。参数是否穿过某条中转路径、列表形态是否保留,正是要验证的事 —— 绑定客户端前先发一次测试调用。

Mistral 特有的注意点#

  • message.content 会变形。 reasoning_effort 开高时,content 是类型化分块列表(先思考后文本);不开则是普通字符串。默认按 str 解析的客户端一开思考就会挂 —— 两种形态都要处理。
  • 思考 token 计在 max_tokens 里。 Mistral 文档写明:prompt 加 max_tokens 不能超过模型上下文窗口 —— 推理请求要给思考留余量,不只是给回答,否则回复会偏短。
  • 非标准字段走 extra_body。 reasoning_effort、safe_prompt(在对话前注入安全提示;默认 false)、random_seed(Mistral 对 OpenAI seed 的叫法)和 guardrails 都超出 OpenAI 规范 —— 用你 SDK 的 extra-body 通道发送,并测试中转是转发这些字段还是静默丢弃未知字段。
  • 别名会动;Magistral 已弃用。 原生 ID 是 -latest 别名加日期快照,Mistral 会公布 deprecation 与 retirement 日期及指定继任者 —— 专门的 Magistral 推理模型已弃用,推理并入主家族、由 reasoning_effort 控制。从 GET /v1/models 复制 ID,别照搬旧帖。

这要花多少钱#

一个余额,一个充值汇率

充值统一按 1 元人民币 = $1 额度,所有支付方式一致;模型再各按自己的美元标价计费 —— 实时单价见定价页。支付宝、微信、USDT、银行卡(Visa · Mastercard)、Apple Pay 与 Google Pay 都是同一个汇率 —— 目录里所有模型共用一个余额,不用选套餐,也没有月度低消。单价与账户绑定且会变动,所以请用一小笔充值去确认,而不是相信教程里的某个数字。

验证你拿到的是真模型#

先证明端点可用,再怀疑客户端 —— 这一步失败,改任何设置都没用:

bash
export DAOXE_API_KEY="your_api_key"

# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/models \
  -H "Authorization: Bearer ${DAOXE_API_KEY}"

先确认连通,再在 temperature 0 下把固定 prompt 与官方 Mistral API 对比,确认模型档位:

别信我们 —— 自己验证

把 开源 benchmark 对准 DaoXE 和官方 API,在 temperature 0 下对比。再学会如何鉴别掉包,让便宜端点无法悄悄把你换成更小的模型。

常见问题#

怎么开关 Mistral 的推理?

在请求体里发 reasoning_effort:none 得到普通字符串回答,high 得到思考分块加回答。它是非标准字段,必要时用你 SDK 的 extra-body 选项。

为什么 content 有时是字符串、有时是列表?

这是 Mistral 的推理形态:开了 effort 是类型化 thinking/text 分块,不开是普通字符串。两种都解析,历史里回传思考分块。

Codestral 的 FIM 端点能用吗?

Mistral 原生有 POST /v1/fim/completions(prompt/suffix,Codestral 用)—— 这是专有面,不是标准 OpenAI 路径。某条中转是否承载它,把 IDE 补全插件接上去之前先用一次调用验证。

这里 Mistral 多少钱?

按模型、按账号 —— 见实时定价。充值统一 1 元 = $1 额度,所有支付方式一致。

试用 DaoXE —— 并亲自 benchmark 它

一个 key 调 GPT、Claude、Gemini、DeepSeek 等。用开源 benchmark 对准我们做对比 —— 别只听我们说。