ru ▾

Руководство по интеграции API Mistral

Перенос интеграции в стиле Mistral на новый базовый URL требует меньше усилий, чем ожидают большинство команд. Это руководство охватывает изменение базового URL, идентификатор модели, потоковую передачу, инструменты, лимиты токенов, повторные попытки и ошибки, с которыми вы, скорее всего, столкнетесь, с кодом, который можно запустить как есть.

Последнее обновление

Краткое содержание

  • Изменение заключается в одном базовом URL и одном ключе; формат запроса и ответа остается прежним.
  • Используйте идентификатор модели uncensored и проверьте его с помощью одного тестового запроса, прежде чем менять что-либо еще.
  • Потоковая передача и вызов функций работают через тот же конечную точку завершения чата, поэтому существующие парсеры продолжают работать.
  • Затраты составляют $0.15 за 1M входных токенов и $0.50 за 1M выходных токенов, списываются с предоплаченного кредита.

Понимание изменения базового URL

Ваш код отправляет запросы на базовый URL и прикрепляет ключ. Чтобы перейти на другой OpenAI-совместимый эндпоинт, вы меняете только эти два значения, ничего больше. Путь /v1/chat/completions остается прежним, поэтому структура тела запроса и тела ответа сохраняется.

Держите старый базовый URL в значении конфигурации, а не в коде. Таким образом, вы сможете вернуться к нему в один шаг, если в продакшене возникнет проблема.

Совместимость с SDK: Клиенты OpenAI против Mistral

Большинство клиентских библиотек принимают пользовательский base URL. Официальный OpenAI SDK, LangChain и LlamaIndex все это поддерживают, а также работает обычный HTTP-клиент. Установите base URL в https://mistralapibaseurl.com/v1 и передайте новый ключ.

  • Проверьте версию SDK, так как очень старые выпуски игнорируют настройку базового URL.
  • Проверьте, что клиент передает ключ в Authorization header в виде Bearer-токена.

Настройка идентификатора модели

Отправьте идентификатор модели uncensored. Это единственная модель, предлагаемая сервисом, поэтому id не меняется между запросами, и вам не нужна логика выбора модели.

Запустите один запрос с коротким промптом. Ответ и блок использования означают, что базовый URL, ключ и идентификатор модели верны.

Реализация потоковых ответов

Установить stream: true получать ответ в виде server-sent событий. Каждое событие содержит небольшой фрагмент текста, а последнее событие содержит данные об использовании.

Показывайте чанки по мере их поступления и храните полный текст в буфере, чтобы сообщение сохранялось по завершении потока. Измерьте время до получения первого токена; этот показатель показывает, насколько отзывчивым кажется чат пользователю.

Включение вызова функций и инструментов

Передайте массив tools в том же формате, который вы уже используете. Модель возвращает вызов инструмента с именем функции и аргументами JSON. Запустите функцию в своем коде, отправьте результат обратно как сообщение инструмента и прочитайте окончательный ответ.

  1. Определите один инструмент с двумя обязательными аргументами и протестируйте его отдельно.
  2. Протестируйте случай, когда требуется два вызова инструментов последовательно.
  3. Проверяйте аргументы перед выполнением любых действий, изменяющих данные.

Управление контекстными окнами и токенами

Окно контекста составляет 100 000 токенов. Длинные диалоги заполняют его, поэтому удаляйте старые сообщения или суммируйте их до достижения лимита. Каждый запрос может вернуть до 16 000 выходных токенов, а по умолчанию — 2 048, поэтому установите max_tokens для ожидаемых вами ответов.

Подсчитывайте токены из поля usage каждого ответа. Оценки по количеству слов часто сильно ошибаются для кода и текстов на других языках.

Обработка ограничений частоты запросов и повторных попыток

Каждый ключ позволяет выполнять 300 запросов в минуту и 8 одновременных запросов. При превышении лимита вы получаете ответ 429. Повторяйте запросы только при ошибках 429 и 5xx с экспоненциальной задержкой и ограничением общего времени ожидания.

Никогда не повторяйте запрос с кодом 400 или 401, так как тот же запрос будет терпеть неудачу тем же образом. Сначала исправьте запрос или ключ.

Отладка распространенных ошибок API

СтатусОбычная причинаЧто делать
400Некорректный JSON или неизвестное полеПроверьте тело запроса на соответствие формату, который вы отправляете
401Отсутствующий или неверный ключCopy the key again and check the Authorization header
402Баланс исчерпанПополните баланс; минимальная сумма пополнения — $20.
429Лимит запросов исчерпанОтступите и повторите попытку позже

Логгируйте код состояния и идентификатор запроса для каждой ошибки, чтобы быстро отследить проблему.

Миграция с API конкурентов

Планируйте переход в три этапа: тестовая среда, небольшая доля живого трафика и затем полный переход. Сохраняйте оба базовых URL в конфигурации на среднем этапе и сравнивайте ответы и задержку на одних и тех же промптах.

Сравнивайте стоимость по вашему реальному использованию, а не по прайс-листам. Умножьте количество входных и выходных токенов из поля usage на $0.15 и $0.50 за 1M токенов и сравните с вашим текущим счетом.

Частые вопросы

Мне нужно менять формат запроса?

Нет. Эндпоинт следует формату chat completions, поэтому те же структуры сообщений и инструментов работают. Меняются только базовый URL и ключ.

Какой ID модели мне использовать?

Используйте uncensored. Это единственная модель в сервисе, поэтому id остается неизменным в каждом запросе.

Как получить ключ для тестирования?

Зарегистрируйтесь через Google или укажите email и пароль. Ключ появляется на экране, и аккаунт начинается с пробного кредита $0.50, действительного в течение 7 дней. Карта не нужна.

Как оплатить использование?

Пополните баланс в USDT на TRC20 или USDC на Base, начиная с $20. Бонусный кредит применяется от $50, и кредит не сгорает.

Получите ваш ключ

Зарегистрируйтесь, получите ключ и обновите базовый URL. Это весь процесс.

Начать сейчас