Перейти к основному содержанию

Введение

ER:LC Россия AI API поддерживает описанные в этом разделе методы Chat Completions, получения моделей и синтеза речи. Для чата используйте chat.completions.create в OpenAI SDK с base_url / baseURL равным https://api.erlcrussia.com/v1. Дополнительные параметры ER:LC Россия описаны на страницах методов; поддержка остальных API OpenAI не подразумевается.

OpenAI SDK

Запросы чата используют формат Chat Completions; потоковые ответы передаются как chat.completion.chunk. Поддерживаемые поля перечислены в описании метода.

Рассуждения

Поддержка пошагового анализа и глубоких рассуждений для моделей с трансляцией мыслей в reasoning_content.

Контекст диалога

session_id — расширение ER:LC Россия для продолжения диалога.

Изображения и файлы

Прикрепление игровых скриншотов, логов и документов в стандартном формате image_url и file.

Аутентификация

Для выполнения запросов передавайте ваш токен доступа в заголовке Authorization:
Также принимаются заголовки erlcrussia-api-ai-key и erlcrussia-api-key. Передавайте ключ только в заголовке запроса.

Ошибки

Ошибки приходят в формате OpenAI, поэтому SDK показывает настоящее сообщение. В code — строковый код OpenAI (invalid_api_key, model_not_found, insufficient_quota, rate_limit_exceeded) или null. Числовой код ER:LC Россия из таблицы кодов ошибок приходит в erlc_code.

Совместимость с OpenAI

  • /v1/chat/completions, /v1/models, /v1/audio/speech и /v1/audio/transcriptions работают через OpenAI SDK.
  • /v1/realtime работает по протоколу OpenAI Realtime: текст и голос на входе, голос на выходе, ход отмечается вручную. См. голосовой режим.
  • Поля temperature, top_p, max_tokens, max_completion_tokens, stop, n и response_format принимаются, но не применяются.
  • usage есть в обычном ответе. В потоке он приходит, только если передать stream_options: {"include_usage": true}: отдельным чанком с пустым choices перед data: [DONE]. Дополнительно в usage есть cost_credits — списанные AI-кредиты.
  • Ошибки используют типы OpenAI: invalid_request_error, requests, insufficient_quota, server_error. Когда заканчиваются AI-кредиты, приходит 429 с типом insufficient_quota, как в OpenAI.
  • У каждого ответа свой id вида chatcmpl-…, как в OpenAI. Идентификатор диалога передаётся отдельно в session_id.
  • Запрос без messages или с пустым массивом получает 400 с param: "messages" и кодом missing_required_parameter или empty_array.
  • В каждом ответе есть заголовки x-request-id, openai-processing-ms, x-ratelimit-limit-requests, x-ratelimit-remaining-requests и x-ratelimit-reset-requests.
  • Если генерация оборвалась, в потоке приходит событие {"error": {...}} в формате OpenAI, а за ним data: [DONE].

Доступные модели

Для Хуберта фирменный суржик выключен по умолчанию: он отвечает на языке последнего сообщения пользователя. Передайте "surzhyk": true в теле запроса к /v1/chat/completions, чтобы включить фирменный стиль.

Роли сообщений

В массиве messages поддерживаются стандартные роли диалога:
  • system — дополнительная инструкция или контекст вашего проекта (например, роль Discord-бота или задачи сервиса), накладываемая поверх базовых правил модели;
  • user — сообщение от пользователя;
  • assistant — предшествующий ответ модели для сохранения контекста беседы.

Параметры размышления

Управление цепочкой рассуждений зависит от выбранной модели:
  • Для Эмми (emmy-1): режим без размышлений не поддерживается — модель всегда анализирует задачу перед ответом. Глубина анализа настраивается параметром effort (string) или заголовком X-Reasoning-Effort:
    • low — краткая проверка фактов и правил;
    • medium (по умолчанию) — сбалансированный детальный анализ;
    • high — исчерпывающий пошаговый разбор;
    • extra / max — предельный уровень аналитики с перепроверкой гипотез.
  • Для Нии (niya-1): по умолчанию размышления выключены для максимальной скорости. Включаются параметром thinking: true (или variant: "on" / заголовком X-Reasoning: on).
  • Для Хуберта (hubert-1): цепочка размышлений не используется.

Примеры интеграции


Потоковый режим

При передаче "stream": true сервер возвращает поток событий text/event-stream. Каждое событие содержит стандартную структуру chat.completion.chunk:
В prompt_tokens входит системный контекст сервиса и переданная история, а не только текст пользователя. Даже короткий запрос может содержать около 7000 входных токенов и стоить примерно 1 кредит; это наблюдаемый пример, а не фиксированная цена или минимум. Фактическое списание зависит от модели, кэша и ответа: проверяйте usage.cost_credits. web_search:true разрешает поиск, но не гарантирует его вызов; каждый выполненный поиск оплачивается отдельно. Полный секрет возвращается только при создании или ротации. Списки AI-ключей, переименование и удаление возвращают маску. В GET /keys полностью виден только вызывающий ключ; остальные, включая собственные соседние ключи, замаскированы. teamId — идентификатор привязанной команды или null. Создание AI-ключа и обмен коинов требуют сессию владельца. Обычный HTTP-ключ, даже с полным доступом, не разрешает эти операции. Доверенные сервисы используют административные методы с мастер-ключом.