Руководство по интеграции 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.
- Проверьте, что клиент передает ключ в
Authorizationheader в виде Bearer-токена.
Настройка идентификатора модели
Отправьте идентификатор модели uncensored. Это единственная модель, предлагаемая сервисом, поэтому id не меняется между запросами, и вам не нужна логика выбора модели.
Запустите один запрос с коротким промптом. Ответ и блок использования означают, что базовый URL, ключ и идентификатор модели верны.
Реализация потоковых ответов
Установить stream: true получать ответ в виде server-sent событий. Каждое событие содержит небольшой фрагмент текста, а последнее событие содержит данные об использовании.
Показывайте чанки по мере их поступления и храните полный текст в буфере, чтобы сообщение сохранялось по завершении потока. Измерьте время до получения первого токена; этот показатель показывает, насколько отзывчивым кажется чат пользователю.
Включение вызова функций и инструментов
Передайте массив tools в том же формате, который вы уже используете. Модель возвращает вызов инструмента с именем функции и аргументами JSON. Запустите функцию в своем коде, отправьте результат обратно как сообщение инструмента и прочитайте окончательный ответ.
- Определите один инструмент с двумя обязательными аргументами и протестируйте его отдельно.
- Протестируйте случай, когда требуется два вызова инструментов последовательно.
- Проверяйте аргументы перед выполнением любых действий, изменяющих данные.
Управление контекстными окнами и токенами
Окно контекста составляет 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. Это весь процесс.