ММООЗЗГГ.ru

API нейросетей

OpenAI-совместимый API: как перейти на другую модель за час

Михаил Мозг5 минут чтения

Нужен API под большие объемы, и важно, кто видит запросы?

Обсудить API для ваших объемов

OpenAI-совместимый API принимает запросы в том же формате, что OpenAI: те же методы, те же поля, та же библиотека. Чтобы перейти на другую модель, в коде меняют три значения: базовый адрес (base_url), ключ и название модели. На 16.10.2026 так работают DeepSeek, Qwen в Alibaba Cloud и открытые модели на сервере vLLM.

Коротко: что значит совместимость

Библиотека openai отправляет запрос на адрес из параметра base_url. Ей все равно, кто отвечает: OpenAI, облако другого провайдера или ваш сервер, если ответ приходит в том же формате.

Формат включает адрес метода, сообщения с ролями system, user и assistant, параметры генерации и вид ответа. Пока провайдер повторяет эту структуру, библиотека openai, фреймворки и готовые интеграции работают с ним без доработки.

DeepSeek прямо пишет в документации: API совместим с форматами OpenAI и Anthropic, достаточно поменять адрес и ключ в привычной библиотеке (на 16.10.2026). Alibaba Cloud для Qwen описывает то же: меняются ключ, адрес и название модели.

Для компании в России это способ не зависеть от одного провайдера. России нет в списке стран OpenAI API, а доступ вне списка может закончиться блокировкой аккаунта. Код, написанный под OpenAI, переносится на открытую модель без переписывания.

Кто совместим: облака и свой сервер

На 16.10.2026 по документации провайдеров картина такая:

DeepSeek принимает и формат Anthropic по отдельному адресу, поэтому код, написанный под Claude, тоже переносится заменой адреса и ключа.

У Qwen адрес содержит идентификатор рабочего пространства (WorkspaceId), а ключ действует только в регионе, где создан. Регион выбирают один раз, по тому, где компании можно обрабатывать свои данные.

Облако проще запустить, свой сервер дает контроль над данными: запросы не уходят к провайдеру, а модель с открытыми весами работает в вашем контуре. Чем отличаются Ollama, LM Studio и vLLM и что выбрать под нагрузку, разобрано отдельно.

  • DeepSeek: адрес https://api.deepseek.com для формата OpenAI и https://api.deepseek.com/anthropic для формата Anthropic; модели deepseek-flash и deepseek-v4-pro.
  • Qwen в Alibaba Cloud Model Studio: совместимый режим по адресу вида https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1 для Сингапура; есть адреса для Пекина, Вирджинии и Токио.
  • vLLM на своем сервере: поднимает интерфейсы, совместимые с OpenAI, включая Chat, Completions, Responses и распознавание речи.

Что поменять в коде

Возьмем код на библиотеке openai для Python. Меняются три строки: адрес, переменная с ключом и модель. Ключ лежит в переменной окружения, в коде его нет.

Для Qwen в base_url ставят адрес своего региона, ключ берут из переменной DASHSCOPE_API_KEY. Для своего сервера на vLLM в base_url ставят адрес этого сервера, а модель называют так, как она запущена.

Потоковая выдача ответа работает так же: в примерах DeepSeek флаг stream передается в тот же метод chat.completions.create, что и у OpenAI.

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

Остальной код не меняется: те же сообщения (messages), тот же разбор ответа. Пошаговое подключение к CRM, 1С и ботам описано в инструкции по подключению API.

import os
from openai import OpenAI

# Было: OpenAI(api_key=os.environ["OPENAI_API_KEY"])
client = OpenAI(
    base_url="https://api.deepseek.com",
    api_key=os.environ["DEEPSEEK_API_KEY"],
)

reply = client.chat.completions.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "Кратко перескажи договор поставки"}],
)
print(reply.choices[0].message.content)

Что не совпадает

Совместимость касается формата, а не поведения. Расхождения видны сразу после смены адреса, примеры из документации на 16.10.2026:

Лимиты частоты запросов и тексты ошибок у каждого провайдера тоже свои, хотя коды ответов похожи: неверный ключ у Alibaba Cloud возвращает стандартный 401 invalid_api_key. Обработчик ошибок стоит проверить на новой модели отдельно.

Поэтому переход начинают с теста на копии, а не с замены адреса в рабочей системе.

  • Названия моделей: у каждого провайдера свои, названия моделей OpenAI в DeepSeek и Qwen не работают.
  • Параметры: в Alibaba Cloud параметр n работает только у qwen-plus, а tools нельзя совмещать с потоковой выдачей (stream).
  • Свои функции: Qwen принимает дополнительные параметры через extra_body, например enable_search для поиска.
  • Регионы: ключ Alibaba Cloud привязан к региону, где создан; с адресом другого региона запрос вернет ошибку 401 invalid_api_key.
  • Методы: набор методов у провайдеров разный, DeepSeek в примерах использует /chat/completions.
  • Ответы: формат тот же, содержание другое. Промпты, подобранные под одну модель, на другой дают иной результат.

Как проверить качество на своих данных

Проверка занимает несколько шагов и делается до переключения рабочей системы:

Решение принимайте по цифрам. Если новая модель совпадает с эталоном на большинстве запросов и укладывается в бюджет, переключайте одну систему, а не все сразу, и через неделю сравните журналы ошибок. Стоимость токенов у провайдеров разная, сверить ее можно в сравнении цен API.

Персональные данные в тестовом наборе обезличьте до отправки в облако. На своем сервере данные не покидают ваш контур.

Если тест удобнее провести на выделенной инфраструктуре, мы подбираем открытую модель под задачу: DeepSeek, Qwen или другую с открытыми весами, в формате OpenAI. Меняете адрес и ключ, код остается.

  • Соберите 50-100 реальных запросов из журнала: типичные, сложные и те, где текущая модель ошибалась.
  • Сохраните эталонные ответы: ответы текущей модели или правильные ответы сотрудника.
  • Прогоните тот же набор через новую модель, поменяв только base_url, ключ и модель.
  • Сравните по четырем меркам: точность, формат ответа (JSON, нужные поля), время ответа и стоимость за 1 000 запросов.
  • Отдельно проверьте вызов инструментов (tools) и структурированный вывод, если код ими пользуется.

Вопросы и ответы

Можно ли перейти с OpenAI на другую модель без переписывания кода?

Да, если новый провайдер совместим с OpenAI. DeepSeek, Qwen в Alibaba Cloud и vLLM на своем сервере принимают тот же формат, в коде меняются base_url, ключ и название модели. Качество ответов перед переходом проверяют на своих запросах.

Что такое base_url?

Это параметр библиотеки openai с адресом, куда уходят запросы. По умолчанию он указывает на серверы OpenAI, а для DeepSeek на 16.10.2026 это https://api.deepseek.com. Подставив адрес своего сервера vLLM, вы отправите те же запросы в свою модель.

Источники и даты

Безопасный API для больших объемов

Модели
DeepSeek, Qwen, другие модели с открытыми весами по задаче
Формат
Совместим с OpenAI: меняете адрес и ключ, код остается
Контроль
Вы получаете доступ к инфраструктуре и видите журналы и процессы обработки запросов
Обучение
Ваши запросы не используются для обучения моделей
Объемы
Под большие объемы, лимиты и мощности по договору
Где серверы
В России: в вашем контуре или в центре обработки данных, который вы выбираете; площадку фиксируем в договоре
Договор и оплата
Договор с ООО «ММООЗЗГГ», оплата в рублях по счету
SLA
Доступность и время реакции под вашу нагрузку фиксируем в договоре
Журналы
Срок хранения журналов и круг тех, кто их видит, задаете вы и фиксируете в договоре
Цена
Считаем под вашу модель и объем, цену фиксируем в договоре до старта

OpenAI, Claude и Gemini: доступ к OpenAI, Claude и Gemini не перепродаем; помогаем подключить официальный аккаунт компании там, где провайдер работает, или подбираем открытую модель по тесту на ваших запросах.

Написать в Telegram