Skip to content

OpenAI-совместимый API ​

Внешний API платформы: какие адреса есть, как авторизоваться, что поддерживается и чего в нём принципиально нет.

Для чего он нужен ​

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

Смысл этого API в том, чтобы скрыть ключи провайдеров. Приложение получает ключ EVA, а настоящий ключ провайдера остаётся внутри платформы.

Адреса ​

МетодАдресЧто делает
GET/v1/modelsВозвращает список включённых моделей включённых провайдеров
POST/v1/chat/completionsПередаёт запрос выбранному провайдеру и возвращает ответ

Авторизация ​

Заголовок Authorization: Bearer <ключ>. Подходит и ключ API платформы, и обычный токен входа.

Для списка моделей нужно право на чтение моделей или на создание запусков. Для обращения к модели нужно право на создание запусков.

Что поддерживается в запросе ​

Из тела запроса платформа использует только четыре поля:

ПолеПримечание
modelИдентификатор модели или её внешний идентификатор
messagesТолько роли system, user и assistant. Сообщения с ролями инструментов отбрасываются
streamПотоковый режим поддерживается
temperatureПередаётся провайдеру

Всё остальное из тела запроса игнорируется. В запросе обязательно должно быть хотя бы одно непустое сообщение пользователя.

Что возвращается ​

В обычном режиме приходит ответ формата chat.completion с одним вариантом и причиной завершения stop.

В потоковом режиме поток провайдера передаётся построчно, платформа подменяет в нём только идентификатор модели и идентификатор ответа, а в конце гарантированно отправляет завершающую строку.

Чего в этом API нет ​

НетПояснение
Сведений о расходе токеновПоле usage в ответе не заполняется
Вызова инструментовНи tools, ни function_call
Нескольких вариантов ответаЗначение n больше единицы не поддерживается
Полей stop, max_tokens, response_formatИгнорируются
Изображений и звукаНе поддерживаются
Адресов /v1/completions, /v1/embeddings, /v1/responsesНе реализованы

Важное отличие от работы в интерфейсе ​

Обращение через /v1 это прямая передача запроса провайдеру. По этому пути платформа:

  • не создаёт чат;
  • не создаёт запуск;
  • не пишет запись в журнал расхода;
  • не обращается к Runtime, к инструментам MCP и к файлам чата;
  • не маскирует персональные данные.

Персональные данные

Маскирование работает только в чатах платформы. Запросы через /v1 уходят провайдеру в том виде, в котором их отправило внешнее приложение.

Из счётчиков по этому пути ведутся только внутренние: сколько запросов выполняется сейчас, сколько выполнено всего, когда был последний и какая модель использовалась. Их показывает раздел администрирования на странице Рантайм.

Если нужны инструменты ​

Внешнему приложению, которому нужен полноценный агент с инструментами, нужно использовать не /v1, а либо обычный адрес отправки сообщения в чат, либо шлюз /mcp.

Документация платформы EVA