Семейства Mistral — генеральная линейка Mistral, кодовые Codestral и другие — обычно требуют отдельного ключа api.mistral.ai. Через DaoXE они стоят за тем же ключом, что GPT, Claude и DeepSeek: один ключ на сотни моделей примерно от 25 провайдеров. Вызывайте /v1/chat/completions с ID семейства Mistral из GET /v1/models — какие именно Mistral ID есть у вашего аккаунта, решает живой список, а не этот текст. Маршрутизация по цене: гайд по дешёвым API.
Как вызвать Mistral через DaoXE#
Путь chat: /v1/chat/completions с Authorization: Bearer. Reasoning — параметр запроса, а не отдельная модель: отправьте extra_body={"reasoning_effort": "high"}, и ответ придёт типизированными чанками вместо обычной строки. Нативно max_tokens делит контекстное окно с промптом — закладывайте объём и на мышление, и на ответ.
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."}]
}'# 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); старые нативные reasoning-ID Magistral устарели. При high message.content становится списком: сначала чанки {"type": "thinking"}, затем ответ {"type": "text"}; при none это обычная строка. Стриминг следует тому же сплиту — delta.content меняет форму посреди потока. Отсюда два правила: парсить content как обе формы и возвращать чанки мышления в истории многошагового диалога — Mistral предупреждает, что их вырезание ухудшает следующий ответ. Проходит ли параметр через конкретный путь релея и сохраняется ли форма списка — ровно то, что надо проверять: один тестовый вызов, прежде чем привязывать клиент.
Нюансы именно для Mistral#
- message.content меняет форму. С высоким
reasoning_effortcontent— список типизированных чанков (сначала мышление, затем текст); без него — обычная строка. Клиент, ждущийstr, сломается, как только включено мышление, — разбирайте обе формы. - Токены мышления внутри max_tokens. Mistral документирует: промпт плюс
max_tokensдолжны влезать в контекстное окно модели — под reasoning-запрос нужен запас на мышление, а не только на ответ, иначе ответ придётся обрезанным. - Нестандартные поля — через extra_body.
reasoning_effort,safe_prompt(вставляет safety-промпт перед диалогом; по умолчанию false),random_seed(имя Mistral для того, что у OpenAI зовётсяseed) иguardrailsвыходят за спецификацию OpenAI — отправляйте через extra-body вашего SDK и проверяйте, что релей передаёт их, а не молча выбрасывает неизвестные поля. - Алиасы двигаются; Magistral устарел. Нативные ID — это
-latest-алиасы плюс датированные снапшоты, и Mistral публикует даты deprecation и retirement с указанием моделей-преемников — выделенные reasoning-модели Magistral уже устарели, reasoning переехал в основное семейство черезreasoning_effort. Копируйте ID изGET /v1/models, а не из старых постов.
Сколько это стоит#
Один баланс, один курс пополнения
Пополнение идёт по фиксированному курсу 1 ¥ = $1 квоты любым способом оплаты, а каждая модель тарифицируется по своей цене в USD — актуальные цены по моделям смотрите на daoxe.com/pricing. Курс одинаковый для всех способов оплаты: Alipay, WeChat Pay, USDT, банковская карта (Visa · Mastercard), Apple Pay и Google Pay — один баланс на все модели каталога, без выбора тарифа и без месячного минимума. Цены зависят от аккаунта и меняются, поэтому проверьте небольшим пополнением, а не доверяйте цифре из гайда.
Убедитесь, что отдают настоящую модель#
Сначала проверьте эндпоинт, а не клиент — если это не работает, настройки не помогут:
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 с официальным API Mistral, чтобы убедиться в совпадении уровня:
Проверяйте нас, а не верьте на слово
Направьте открытый бенчмарк на DaoXE и на официальный API и сравните при temperature 0. Затем изучите, как поймать подмену модели, чтобы дешёвый эндпоинт не подменил вам модель на меньшую.
Частые вопросы#
Как включить или выключить reasoning у Mistral?
Отправьте reasoning_effort в теле запроса: none — ответ обычной строкой, high — чанк мышления, затем ответ. Поле нестандартное — при необходимости используйте extra-body вашего SDK.
Почему content то строка, то список?
Это reasoning-форма Mistral: типизированные чанки thinking/text при заданном effort, обычная строка без него. Парсите обе формы и возвращайте чанки мышления в истории.
Работает ли FIM-эндпоинт Codestral?
У нативного Mistral есть POST /v1/fim/completions с prompt/suffix для Codestral — специальная поверхность, а не стандартный OpenAI-путь. Проходит ли она через конкретный релей, проверяется одним тестовым вызовом — до того, как вписывать её в IDE-плагин.
Сколько стоит Mistral здесь?
По модели и аккаунту — см. актуальные цены. Пополнение — фиксированные 1 ¥ = $1 квоты любым способом оплаты.
Попробуйте DaoXE — и проверьте его сами
Один ключ для GPT, Claude, Gemini, DeepSeek и других. Направьте открытый бенчмарк на нас и сравните — не верьте на слово.