Вступ
ER:LC Russia AI API підтримує описані в цьому розділі методи Chat Completions, отримання моделей і синтезу мовлення. Для чату використовуйтеchat.completions.create в OpenAI SDK з base_url / baseURL, що дорівнює https://api.erlcrussia.com/v1. Розширення ER:LC Russia описано на сторінках методів; підтримка решти API OpenAI не передбачається.
OpenAI SDK
Запити чату використовують формат Chat Completions; потокові відповіді передаються як
chat.completion.chunk. Підтримувані поля наведено в описі методу.Міркування
Підтримка покрокового аналізу та глибоких міркувань для моделей із трансляцією думок у
reasoning_content.Контекст діалогу
session_id — розширення ER:LC Russia для продовження діалогу.Зображення та файли
Прикріплення ігрових скріншотів, логів та документів у стандартному форматі
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].
Доступні моделі
| Модель | Персонаж Опис | Режим Роздумів | |---|---|---|---| |niya-1 | Нія | Основна модель для швидких відповідей, консультацій щодо правил та модерації | Опціонально (за замовчуванням вимкнено, включається через thinking: true) |
| emmy-1 | Еммі | Просунута модель для глибокого аналізу логів, складних конфліктів та коду Завжди включений (налаштовується рівень роздумів через effort) |
| hubert-1 | Хуберт | Кастомний персонаж спільноти, що відповідає характерному ігровому стилі | Вимкнено |
Для Хуберта фірмовий суржик вимкнено за замовчуванням: він відповідає мовою останнього повідомлення користувача. Передайте "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): ланцюжок роздумів не використовується.
Приклади інтеграції
- Python
- TypeScript
- JavaScript
- cURL
- OpenCode
- Kilo Code
Потоковий режим
Під час передачі"stream": true сервер повертає потік подій text/event-stream. Кожна подія містить стандартну структуру chat.completion.chunk: