Быстрый старт
НейроГейт совместим с OpenAI SDK, а для JavaScript и Python теперь есть и собственные first-party SDK. В большинстве случаев миграция занимает буквально несколько строк.
curl
curl https://api.neuralgate.ru/v1/chat/completions \
-H "Authorization: Bearer ng-proj-..." \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [
{"role": "user", "content": "Привет! Кратко расскажи о НейроГейт."}
]
}'Python
from neuralgate import NeuralGate
client = NeuralGate(api_key="ng-proj-...")
response = client.chat.completions.create({
"model": "openai/gpt-4o-mini",
"messages": [{"role": "user", "content": "Привет!"}]
})
print(response["choices"][0]["message"]["content"])JavaScript
import { NeuralGate } from "@neuralgate/sdk";
const client = new NeuralGate({
apiKey: "ng-proj-..."
});
const response = await client.chat.completions.create({
model: "openai/gpt-4o-mini",
messages: [{ role: "user", content: "Привет!" }]
});
console.log(response.choices[0].message.content);Go
client := neuralgate.NewClient("ng-proj-...")
resp, err := client.Chat.Completions.Create(
context.Background(),
map[string]any{
"model": "openai/gpt-4o-mini",
"messages": []map[string]any{
{"role": "user", "content": "Привет!"},
},
},
)Официальный SDK
У НейроГейт теперь есть собственные first-party SDK для JavaScript, Python и Go. Они сохраняют знакомую структуру API и дают официальную точку входа для интеграций, примеров и будущих расширений платформы.
Установка
npm install @neuralgate/sdk pip install neuralgate-sdk go get github.com/neuralgate/neuralgate/sdk/go
Статус текущих релизов: foundation 0.1.0.
JavaScript / TypeScript
import { NeuralGate } from "@neuralgate/sdk";
const client = new NeuralGate({
apiKey: "ng-proj-..."
});
const response = await client.chat.completions.create({
model: "google/gemini-2.5-flash",
messages: [
{ role: "user", content: "Привет! Кратко расскажи о НейроГейт." }
]
});Python
from neuralgate import NeuralGate
client = NeuralGate(api_key="ng-proj-...")
response = client.chat.completions.create({
"model": "google/gemini-2.5-flash",
"messages": [
{"role": "user", "content": "Привет! Кратко расскажи о НейроГейт."}
],
})Go
client := neuralgate.NewClient("ng-proj-...")
resp, err := client.Chat.Completions.Create(
context.Background(),
map[string]any{
"model": "google/gemini-2.5-flash",
"messages": []map[string]any{
{"role": "user", "content": "Привет!"},
},
},
)Что уже включено
- chat completions
- SSE streaming helper
- models.list / count / endpoints
- TypeScript declarations для JavaScript SDK
- retry / timeout / Abort helpers
- publish-ready foundation для npm и PyPI
Управление запросами
JavaScript SDK поддерживает timeoutMs, maxRetries, retryDelayMs и AbortSignal. Python SDK — timeout, max_retries, retry_delay. Go SDK использует context.Context и client-level retry policy.
Версионирование
SDK следует SemVer: MAJOR для breaking changes, MINOR для новых возможностей, PATCH для исправлений. Текущая стартовая версия: 0.1.0.
Публикация
Для пакета уже подготовлен publish workflow под npm registry, а release notes ведутся через отдельный changelog. Это позволяет развивать SDK как официальный продуктовый артефакт, а не просто набор примеров.
- Если вам нужна максимально простая миграция, можно использовать OpenAI SDK с заменой
base_url. - Если нужен официальный first-party client, рекомендуемый путь —
@neuralgate/sdk,neuralgate-sdkили Go SDK. - Следующий этап: typed resources и более богатые high-level ресурсы поверх foundation SDK.
Аутентификация
Все protected endpoints используют Bearer API key:
Authorization: Bearer ng-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Получить ключ можно после регистрации в панели.
- Формат ключа:
ng-proj-{32 hex}. - Ключи можно ограничивать по RPM, TPM и списку моделей.
Base URL
https://api.neuralgate.ru/v1
Для большинства OpenAI SDK это и есть единственное необходимое изменение в конфигурации клиента.
Интерактивный playground
Можно отправить реальный запрос к НейроГейт API прямо из документации. Ключ используется только для текущего запроса и не сохраняется в БД страницы документации.
dash.neuralgate.ru/docs, чтобы не зависеть от CORS между поддоменами.
Мои API-ключи
Если вы вошли в панель, можно подтянуть список ключей и создать новый ключ прямо здесь.
Для уже существующих старых ключей секрет может быть недоступен: он показывается только один раз при создании. Ключи, созданные через этот playground, сохраняются локально в вашем браузере для удобного повторного выбора.
Статус аккаунта
Вы не вошли в панель управления. Доступен ручной режим по API-ключу.
Ответ
Payload / Raw
Готовые SDK-примеры
curl
Заполните playground, чтобы получить готовый curl.
Python
Заполните playground, чтобы получить готовый Python-пример.
JavaScript
Заполните playground, чтобы получить готовый JavaScript-пример.
Основные endpoints
| Метод | Endpoint | Назначение |
|---|---|---|
POST | /v1/chat/completions | Основной OpenAI-совместимый endpoint для chat, stream, tools, multimodal. |
GET | /v1/models | Каталог доступных моделей с capabilities и metadata. |
GET | /v1/models/count | Быстрое число доступных моделей. |
GET | /v1/models/{author}/{slug}/endpoints | Дополнительные сведения по конкретной модели. |
GET | /v1/neuralgate/health | Статус gateway и upstream-провайдеров. |
/v1/chat/completions
Поддерживаются базовые OpenAI-compatible поля, включая stream, tools, multimodal content, response_format и routing extensions.
{
"model": "google/gemini-2.5-flash",
"messages": [
{"role": "system", "content": "Отвечай кратко и по делу."},
{"role": "user", "content": "Сделай резюме этого текста."}
],
"stream": false,
"temperature": 0.4,
"max_tokens": 800
}Поддерживаемые сценарии
- non-stream и stream
- tools / tool_choice
- response_format / structured output
- image_url и multi-image input
- OpenRouter-compatible route/provider/models fields
Совместимость
- Базовый контракт максимально близок к OpenAI Chat Completions.
- Каталог моделей по форме ближе к OpenRouter.
- Сохраняются расширения НейроГейт, например
x_neuralgateв model metadata.
Streaming
Streaming идёт через SSE и совместим с OpenAI/OpenRouter-паттерном data: {...} + data: [DONE].
curl -N https://api.neuralgate.ru/v1/chat/completions \
-H "Authorization: Bearer ng-proj-..." \
-H "Content-Type: application/json" \
-d '{
"model": "google/gemini-2.5-flash",
"stream": true,
"messages": [
{"role": "user", "content": "Напиши краткий ответ в 3 пунктах"}
]
}'Tools / function calling
{
"model": "openai/gpt-4o-mini",
"messages": [{"role": "user", "content": "Какая погода в Москве?"}],
"tools": [{
"type": "function",
"function": {
"name": "lookup_weather",
"description": "Возвращает погоду по городу",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}
}],
"tool_choice": "auto"
}НейроГейт сохраняет и современный tool_calls, и legacy-совместимый function_call mirror.
Structured output
{
"model": "google/gemini-2.5-flash",
"messages": [{"role": "user", "content": "Верни status и answer"}],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "simple_answer",
"schema": {
"type": "object",
"properties": {
"status": {"type": "string"},
"answer": {"type": "string"}
},
"required": ["status", "answer"]
}
}
}
}Каталог моделей
Используйте /v1/models, чтобы выбрать модель по контексту, vision/reasoning capabilities и pricing metadata.
curl https://api.neuralgate.ru/v1/models \ -H "Authorization: Bearer ng-proj-..."
Что смотреть в ответе
idarchitecture.input_modalitiessupported_parameterspricingx_neuralgate.supports_visionx_neuralgate.supports_reasoning
Рекомендация
Перед multimodal-запросами всегда проверяйте, что модель действительно vision-capable. Для больших документов и OCR используйте либо vision-модель, либо fallback на извлечённый текст.
Фото, файлы и base64
Ниже — официальный mini reference по multimodal-сценариям. Примеры синхронизированы с smoke-кейсами в gateway/tests/api_test.sh.
Фото по URL [NG-MM-01]
"content": [
{"type":"text","text":"Что на фото?"},
{"type":"image_url","image_url":{"url":"https://example.com/photo.jpg","detail":"auto"}}
]Маленькое base64 [NG-MM-02]
"image_url": {
"url": "data:image/png;base64,<SMALL_BASE64>"
}Только для маленьких одноразовых вложений.
Vision streaming [NG-MM-03]
"stream": true
Multi-image input [NG-MM-04]
"content": [
{"type":"text","text":"Сколько изображений?"},
{"type":"image_url","image_url":{"url":"https://example.com/one.jpg"}},
{"type":"image_url","image_url":{"url":"https://example.com/two.jpg"}}
]Non-vision fallback [NG-MM-05]
"content": "OCR/выдержка из документа...\n\nСделай резюме."
Reasoning + vision [NG-MM-06]
"stream": true
Практические рекомендации
- Для фото и больших файлов используйте HTTPS URL.
- Base64 применяйте только для маленьких вложений.
- Для документов чаще выгоднее
URL + extracted text. - Уменьшайте изображения до разумного размера до отправки.
Большие документы
{
"model": "deepseek/deepseek-r1",
"messages": [{
"role": "user",
"content": "Файл: https://storage.example.com/doc.pdf\n\nВыдержка:\n...\n\nСделай краткое резюме."
}]
}Заголовки ответа
X-NeuralGate-Request-Id: ng-req-a1b2c3d4 X-NeuralGate-Provider: openrouter X-NeuralGate-Cost-Rub: 0.0342 X-NeuralGate-Balance-Rub: 487.21
Rate limit headers
X-RateLimit-Limit-Requests: 60 X-RateLimit-Remaining-Requests: 58 X-RateLimit-Limit-Tokens: 100000 X-RateLimit-Remaining-Tokens: 94200 X-RateLimit-Reset: 1712900000
| Тип модели | Примерный max body | Timeout |
|---|---|---|
| Text-only | ~1 MB | 30s non-stream / 120s stream |
| Vision | до 50 MB | 120s |
| Reasoning | ~1 MB | до 180s |
Ошибки
{
"error": {
"message": "Недостаточно средств на балансе",
"type": "insufficient_balance",
"code": "NG-402",
"param": null
}
}| Код | Значение | Что делать |
|---|---|---|
NG-401 | Некорректный или отозванный API key | Проверить ключ и префикс ng-proj-. |
NG-402 | Недостаточно средств | Пополнить баланс или переключить модель. |
NG-403 | Модель/режим недоступны | Проверить тариф, allowlist модели и policy. |
NG-413 | Слишком большой request body | Перейти на URL или сократить payload. |
NG-429 | Rate limit exceeded | Учитывать limit headers и backoff. |
NG-502 | Ошибка upstream-провайдера | Retry/backoff или fallback на другую модель. |
NG-503 | Provider unavailable | Повторить позже или маршрутизировать на резерв. |
Changelog
| Дата | Изменение | Статус |
|---|---|---|
2026-04-16 |
Публичная developer-документация на /docs переведена в официальный формат: быстрый старт, endpoints, streaming, tools, multimodal, ошибки и production guidance. |
active |
2026-04-16 |
Multimodal mini reference синхронизирован с smoke-кейсами NG-MM-01…NG-MM-06. |
active |
2026-04-16 |
OpenRouter/OpenAI-compatible parity для stream/non-stream/tool calling/structured outputs доведена до production-ready уровня с intentional extensions only. | active |
Пока это curated changelog ключевых изменений developer surface. Позже его можно привязать к автоматическому release feed.
Документация продуктов
Публичный developer portal начинается с API, но документация НейроГейт будет развиваться как единая система по продуктам.
| Продукт | Маршрут | Статус |
|---|---|---|
| НейроГейт API | /docs | live |
| НейроГейт Пилот | /docs/pilot | planned |
| НейроГейт Чат | /docs/chat | planned |
Что дальше
- Интерактивный playground для
/v1/chat/completions. - Отдельные страницы по SDK: Python, JavaScript, Go, curl.
- Отдельный changelog API surface с версиями и датами.
- Документация по Пилоту и Чату в том же стиле.
Production best practices
- Используйте URL вместо больших inline base64.
- Проверяйте capabilities модели перед multimodal-запросом.
- Логируйте
X-NeuralGate-Request-Idв своих сервисах. - Для streaming используйте устойчивый SSE reader.
- Сохраняйте backoff для
429/502/503. - Не отправляйте в один запрос нерелевантные большие вложения.
Где ещё смотреть
Внутренние reference-документы команды синхронизированы с этим публичным guide, но не являются основным внешним developer entrypoint.