Документация NeuroAPI
Введение

Миграция с OpenAI API

Как перевести проект с OpenAI на NeuroAPI: замена base_url и ключа, подбор Model ID в каталоге, проверка streaming, tools и полей usage.

NeuroAPI предоставляет OpenAI-совместимый API: для большинства проектов миграция сводится к замене адреса, ключа и идентификаторов моделей, а не к переписыванию кода. Клиенты, которые работают с OpenAI SDK, обычно продолжают работать без изменений структуры запросов и ответов.

Эта страница — практический чек-лист перехода. Она не обещает полную совместимость всех функций: набор поддерживаемых возможностей зависит от выбранной модели, а совместимость всегда определяется парой «модель + формат».

Важно: ключ NeuroAPI — самостоятельный ключ сервиса NeuroAPI, а не официальный ключ OpenAI. Он используется в OpenAI-совместимых SDK, но выдаётся и оплачивается в NeuroAPI.

Что меняется и что остаётся

Меняется:

  • Base URL: https://api.openai.com/v1 → https://neuroapi.host/v1.
  • API-ключ: вместо ключа OpenAI нужен ключ NeuroAPI из личного кабинета.
  • Идентификаторы моделей: используется точное model_name из каталога NeuroAPI, а не имя модели OpenAI.

Остаётся:

  • OpenAI-совместимый контракт Chat Completions и Responses.
  • Привычные SDK: официальная библиотека OpenAI для Python и Node.js, а также совместимые сторонние клиенты.
  • Структура запроса и ответа для поддерживаемых моделью функций: сообщения, tools, streaming-события.

Если используется не официальный SDK, а другая библиотека с поддержкой OpenAI-совместимого протокола, порядок тот же: найдите настройки Base URL и API-ключа и подставьте значения NeuroAPI. Конфигурацию удобно держать в переменных окружения, чтобы dev, staging и production отличались только значениями, а не кодом.

Шаг 1. Замените Base URL

Обновите инициализацию клиента. Достаточно одного поля — путь к методу SDK добавляет сам.

import os
from openai import OpenAI

# Было: ключ OpenAI и адрес по умолчанию https://api.openai.com/v1
# client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

# Стало: ключ NeuroAPI и Base URL NeuroAPI
client = OpenAI(
    base_url="https://neuroapi.host/v1",
    api_key=os.environ["NEUROAPI_API_KEY"],
)

completion = client.chat.completions.create(
    model="<MODEL_ID_ИЗ_КАТАЛОГА>",
    messages=[{"role": "user", "content": "Проверка подключения"}],
)
print(completion.choices[0].message.content)
import OpenAI from 'openai';

const openai = new OpenAI({
  baseURL: 'https://neuroapi.host/v1',
  apiKey: process.env.NEUROAPI_API_KEY,
});

const completion = await openai.chat.completions.create({
  model: '<MODEL_ID_ИЗ_КАТАЛОГА>',
  messages: [{ role: 'user', content: 'Проверка подключения' }],
});
console.log(completion.choices[0].message.content);

Для быстрой проверки без SDK используйте cURL:

curl https://neuroapi.host/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $NEUROAPI_API_KEY" \
  -d '{
    "model": "<MODEL_ID_ИЗ_КАТАЛОГА>",
    "messages": [{"role": "user", "content": "Проверка подключения"}]
  }'

Не добавляйте /chat/completions к Base URL в настройках SDK: адрес должен заканчиваться на /v1 либо на /v1/ ровно в том виде, который просит клиент. Подробнее о путях — в справочнике Base URL и эндпоинты.

Шаг 2. Выпустите ключ NeuroAPI

Создайте ключ в разделе «Токены» личного кабинета и выберите тариф: Пилот, Смарт или Оптимальный. Тариф — свойство ключа, поэтому для разных окружений и интеграций удобно держать отдельные ключи. Пошаговый флоу — в гайде по API-ключу.

Затем замените ключ в окружении проекта:

export NEUROAPI_API_KEY="<NEUROAPI_API_KEY>"
export OPENAI_BASE_URL="https://neuroapi.host/v1"

Не переиспользуйте старый ключ OpenAI: он относится к другому сервису и не даёт доступа к NeuroAPI. Не коммитьте новый ключ в репозиторий и не оставляйте его в клиентском коде.

Шаг 3. Сопоставьте Model ID с каталогом

Каталог NeuroAPI использует точные идентификаторы model_name. Имена моделей OpenAI могут совпадать с названиями в каталоге, а могут и не совпадать — угадывать идентификатор нельзя. Порядок действий:

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

Список моделей, доступных конкретному ключу, возвращает GET /v1/models:

for model in client.models.list().data:
    print(model.id)

Если вы используете алиасы, сверьте их в карточке модели: каталог публикует актуальные идентификаторы вместе с ценами и характеристиками. На 18.10.2026 в публичном каталоге было 98 моделей, но состав и цены меняются вместе с публикацией каталога — перед миграцией проверьте актуальные данные на дату перехода.

Если в проекте используется модель, которой нет в каталоге, замена «похожим» именем не сработает: её нужно либо исключить из миграции, либо выбрать функциональный аналог и отдельно проверить поведение.

Отдельно проверьте, откуда приложение берёт ключ: серверная часть, CI-переменные, секреты деплоя и локальные .env-файлы — это разные места, и после замены ключа часть из них может остаться со старым значением. Ключ NeuroAPI не должен попадать в клиентский код, мобильное приложение или публичный репозиторий: для браузерных сценариев используйте серверный прокси.

Шаг 4. Проверьте функции, которые использует проект

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

  • Streaming — порядок и состав событий, обработка завершения и обрывов. Гайд: Streaming.
  • Tools и function calling — какие инструменты заявлены в карточке модели и как обрабатывается tool_choice. Не все модели поддерживают вызов инструментов.
  • Structured output — поддержка структурированного вывода зависит от модели и формата; проверьте на своём наборе схем.
  • Responses API — если проект уже использует /v1/responses, сохраните тот же формат и сверьте поля ответа. Гайд: Текст.
  • Изображения — маршруты POST /v1/images/generations и POST /v1/images/edits; синхронный и асинхронный режимы описаны в документации по изображениям.
  • Поля usage — в ответе приходят поля использования; фактическое списание считается по успешному запросу и единице тарификации модели. Сверьте, что ваш биллинг-учёт читает usage из ответа, а не из зашитых ставок.
  • Коды ошибок — статусы и машинные коды могут отличаться от OpenAI; разбор — в справочнике ошибок.

Если проект использует несколько форматов (например, Chat Completions для текста и нативные вызовы для Claude или Gemini), проверяйте каждый формат отдельно: Anthropic Messages и Gemini GenerateContent в NeuroAPI помечены как Beta. См. форматы API.

Чек-лист миграции

  1. Тестовое окружение. Заведите отдельный ключ и задайте base_url для dev/staging, оставив конфигурацию OpenAI в покое до конца проверки.
  2. Критичные сценарии. Прогоните регрессию: чат, streaming, tools, structured output, изображения, обработка ошибок.
  3. Модели и стоимость. Сопоставьте каждую используемую модель с каталогом и сравните фактический расход на одинаковом наборе запросов. Цены и пиковые окна смотрите в карточке модели, а не в средних оценках.
  4. Production и старый ключ. Переключите прод на NeuroAPI после успешного прогона, а старый доступ отключите, когда убедитесь, что трафик полностью переехал.

Не удаляйте старую конфигурацию OpenAI сразу после переключения: она пригодится, если понадобится сравнить поведение на одинаковом запросе или откатить отдельный сервис. После переключения сверьте, что фактические списания соответствуют ожиданиям: единица тарификации указана в карточке модели, а пиковые окна и токеновые пороги могут менять итог. Если в проекте есть собственный калькулятор стоимости, замените зашитые ставки на чтение каталога, иначе оценка разойдётся с реальным счётом.

Переменные окружения

Соберите конфигурацию в одном месте, чтобы dev, staging и production отличались только значениями:

# .env.example — без реальных секретов
OPENAI_API_KEY=<NEUROAPI_API_KEY>
OPENAI_BASE_URL=https://neuroapi.host/v1

Python и Node.js SDK читают эти переменные; если приложение использует собственные имена (NEUROAPI_API_KEY, собственный конфиг), обновите их аналогично. Если версия SDK ведёт себя неожиданно, передайте base_url / baseURL явно при инициализации клиента.

Типичные ошибки при миграции

СтатусВероятная причинаЧто проверить
401Ключ не передан, отозван или скопирован с ошибкойЗаголовок Authorization: Bearer …, актуальность ключа в кабинете
404Неверный Base URL, пропущен /v1 или Model ID отсутствует в каталогеАдрес https://neuroapi.host/v1, точное model_name, тариф ключа
429Сработали лимиты ключа или аккаунтаЛимиты в кабинете, правила повторов в документации
400Параметр или функция не поддерживается выбранной модельюКарточка модели, форматы API

Полный список статусов и машинных кодов — в справочнике ошибок. Если клиент продолжает обращаться по старому адресу, поможет восстановление подключения.

Куда дальше

On this page