Документация NeuroAPI
Генерация

Генерация текста

Chat Completions, Responses и Beta-форматы текста

Для одной и той же модели можно использовать разные форматы запроса. Не смешивайте поля форматов: выберите один контракт и разбирайте ответ в его собственной структуре.

Информация: Список моделей и их контекстные ограничения доступен через GET /v1/models и в каталоге цен.

Как NeuroAPI сохраняет Chat/Responses формат для Alibaba Cloud →

OpenAI Chat Completions

Стабильный

Рекомендуется для существующих OpenAI-совместимых приложений, истории сообщений, streaming и клиентских function tools.

POST /v1/chat/completions

cURL

curl https://neuroapi.host/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5-mini",
    "messages": [
      {"role": "user", "content": "Объясни квантовую запутанность простыми словами"}
    ]
  }'

Python · OpenAI SDK

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://neuroapi.host/v1",
)

result = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[
        {"role": "user", "content": "Объясни квантовую запутанность простыми словами"}
    ],
)
print(result.choices[0].message.content)

Node.js · TypeScript

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.NEUROAPI_KEY,
  baseURL: "https://neuroapi.host/v1",
});

const result = await client.chat.completions.create({
  model: "gpt-5-mini",
  messages: [{ role: "user", content: "Объясни квантовую запутанность простыми словами" }],
});

console.log(result.choices[0]?.message.content);

Ключевые параметры

ПараметрЗначениеПримечание
modelID модели из GET /v1/modelsОбязательный
messagesмассив {role, content}system/user/assistant/tool
max_completion_tokensцелое, 1…1073741823Предпочтительное поле для gpt-5/o-моделей; включает reasoning-токены
max_tokensцелоеУстаревшее имя; для gpt-5/o-моделей NeuroAPI автоматически приводит его к max_completion_tokens
temperatureтолько 1 (или отсутствует)Для gpt-5/o-моделей иные значения отклоняются моделью; NeuroAPI удаляет их
top_pтолько 1 (или отсутствует)То же для gpt-5/o-моделей
nтолько 1Для gpt-5/o-моделей зафиксирован; NeuroAPI приводит n>1 к 1
stopмассив строкНе поддерживается gpt-5/o-моделями; NeuroAPI удаляет его
streamtrue/falseSSE-поток при true; финальный chunk с usage — через stream_options.include_usage
toolsмассив function toolsJSON-Schema в parameters; tool_choice: auto/none/required/имя функции
response_formatjson_object или json_schema (strict)strict: true — гарантия схемы
reasoning_effortminimal/low/medium/highТолько gpt-5/o-модели

Информация: перечисленные ограничения (temperature/top_p/n = 1, отсутствие stop, поле max_completion_tokens) — это требования самих reasoning-моделей OpenAI. NeuroAPI нормализует такие запросы автоматически, см. Нормализация параметров.

OpenAI Responses

Стабильный

Подходит для новых интеграций, мультимодального input и современных клиентских tools. Поддерживаются обычный и потоковый ответы, подсчёт input tokens, получение и удаление сохранённого response, а также список его input items.

ДействиеПуть
СоздатьPOST /v1/responses
Оценить inputPOST /v1/responses/input_tokens
ПолучитьGET /v1/responses/{id}
Input itemsGET /v1/responses/{id}/input_items
УдалитьDELETE /v1/responses/{id}

Python · OpenAI SDK

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://neuroapi.host/v1",
)

response = client.responses.create(
    model="gpt-5-mini",
    input="Составь краткий план запуска мобильного приложения",
)
print(response.output_text)

Node.js · TypeScript

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.NEUROAPI_KEY,
  baseURL: "https://neuroapi.host/v1",
});

const response = await client.responses.create({
  model: "gpt-5-mini",
  input: "Составь краткий план запуска мобильного приложения",
});

console.log(response.output_text);

cURL

curl https://neuroapi.host/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5-mini",
    "input": "Составь краткий план запуска мобильного приложения"
  }'

Важно: Не все hosted tools и provider-owned ресурсы OpenAI поддерживаются. Используйте только возможности, указанные в карточке модели или явно описанные в документации NeuroAPI.

Ключевые параметры

ПараметрЗначениеПримечание
modelID модели из GET /v1/modelsОбязательный (или previous_response_id)
inputстрока или массив itemsinput_text, input_image, input_audio — мультимодальный вход
instructionsстрокаСистемный промпт (аналог system)
max_output_tokensцелое, минимум 16Включает reasoning-токены; NeuroAPI автоматически поднимает значения ниже 16
reasoningeffort: minimal/low/medium/highТолько gpt-5/o-модели
temperature / top_pне поддерживаются base gpt-5NeuroAPI удаляет их; gpt-5.1+/5.2 допускают при reasoning.effort: "none"
storetrue/falsetrue — сохранение ответа: GET/DELETE /v1/responses/{id}
previous_response_idID ответаЦепочка диалога (stateful)
toolsмассив function toolsfunction: name + parameters
tool_choiceauto/none/required/имя функции
text.formatjson_schema (strict)Structured Outputs; strict: true — гарантия схемы
streamtrue/falseSSE-события response.*, финал — response.completed

Anthropic Messages

Бета

Используйте, если приложение уже работает с Messages API. Обязательны anthropic-version, model, max_tokens и messages. Для авторизации подходят x-api-key или Bearer.

cURL

curl https://neuroapi.host/v1/messages \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Сделай ревью этой архитектурной идеи"}
    ]
  }'

Python · Anthropic SDK

from anthropic import Anthropic

client = Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://neuroapi.host",
)

message = client.messages.create(
    model="claude-sonnet-4",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Сделай ревью этой архитектурной идеи"}],
)
print(message.content[0].text)

Ключевые параметры

ПараметрЗначениеПримечание
modelID моделиОбязательный
max_tokensцелоеОбязательный; верхняя граница ответа
messagesмассив {role, content}user/assistant; мультимодальные content-блоки: text, image, document (PDF), tool_result
systemстрока или массив блоковПоддерживает cache_control
toolsмассив {name, description, input_schema}tool_choice: auto/any/tool: name/none
thinkingenabled + budget_tokens: Nbudget_tokens ≥ 1024 и < max_tokens; ответ содержит thinking-блок
stop_sequencesмассив непустых строкПустые/пробельные значения невалидны
temperaturedeprecated для новых моделей (например, claude-opus-5)Модель отклоняет 400; NeuroAPI удаляет его
top_kdeprecated для новых моделейМодель отклоняет 400; NeuroAPI удаляет его
cache_controlephemeralПромпт-кэш: TTL 5 мин / 1 час; экономия до 90% на повторных вызовах
streamtrue/falseSSE: message_startcontent_block_*message_stop
metadata{user_id}Опционально

Информация: top_k и temperature официально deprecated в Anthropic для новых моделей семейства opus-5/sonnet-5 — они отклоняются даже напрямую. NeuroAPI удаляет их из запросов к таким моделям, чтобы запрос обрабатывался (см. Нормализация параметров).

Gemini GenerateContent

Бета

Сохраняет Gemini-структуру contents, parts, generationConfig и candidates. Доступны generateContent, streamGenerateContent и countTokens.

Важно: нативная gemini-поддержка отключена — запросы обслуживаются конверсией gemini→chat на OpenAI-совместимых каналах (чат-провод сохраняет кириллицу, tools и стриминг). Поддерживаются: contents/parts (text, inline_data, fileData-URL), systemInstruction, tools.functionDeclarations + toolConfig (mode ANY/AUTO/NONE, allowedFunctionNames), generationConfig (temperature/topP/maxOutputTokens/stopSequences/responseMimeType+responseSchema/seed/candidateCount). safetySettings и topK не имеют аналога в чат-проводе и игнорируются. countTokens выполняется локальным токенизатором.

cURL

curl "https://neuroapi.host/v1beta/models/gemini-3.1-flash-lite:generateContent" \
  -H "x-goog-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "Составь три варианта заголовка"}]
    }]
  }'

JavaScript · fetch

const response = await fetch(
  "https://neuroapi.host/v1beta/models/gemini-3.1-flash-lite:generateContent",
  {
    method: "POST",
    headers: {
      "x-goog-api-key": process.env.NEUROAPI_KEY!,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      contents: [{ role: "user", parts: [{ text: "Составь три варианта заголовка" }] }],
    }),
  },
);

if (!response.ok) throw new Error(await response.text());
console.log((await response.json()).candidates?.[0]?.content?.parts?.[0]?.text);

Нормализация параметров на стороне NeuroAPI

Reasoning-модели OpenAI (gpt-5/o-series) и новые модели Anthropic имеют строгие ограничения параметров: часть полей устарела, часть зафиксирована, часть не поддерживается вовсе. Если клиент отправляет такой запрос, NeuroAPI приводит его к валидной форме автоматически — запрос обрабатывается провайдером вместо ошибки 400. Нормализация применяется только к перечисленным ниже случаям и не меняет запросы, которые уже валидны.

ФорматКлиент отправилNeuroAPI делает
Chat (gpt-5/o)max_tokens: 64приводит к max_completion_tokens: 64
Chat (gpt-5/o)stop: [...]удаляет (не поддерживается моделью; ответ не обрезается)
Chat (gpt-5/o)temperature: 0.7, top_p: 0.9удаляет (разрешено только значение 1 — возвращается дефолтный сэмплинг)
Chat (gpt-5/o)n: 4приводит к n: 1 (параметр зафиксирован)
Responses (gpt-5/o)max_output_tokens: 8поднимает до 16 (серверный минимум OpenAI)
Responses (base gpt-5)temperature, top_pудаляет (не поддерживаются; исключение — gpt-5.1+/5.2 с reasoning.effort: "none")
Messages (новые claude)temperature, top_kудаляет (deprecated; модель отклоняет 400)

Что NeuroAPI не исправляет (возвращает понятную ошибку с кодом): невалидный JSON, неизвестную модель, неверный тип параметра, противоречивые поля (например, store в сочетании с несовместимыми hosted tools), превышение лимитов токенов. Полный список кодов — в разделе ошибок.

Информация: нормализация — это осознанный компромисс: например, удалённый stop не обрежет ответ, а удалённая temperature вернёт дефолт модели. Если вам нужен строгий контроль этих параметров — используйте модели, которые их поддерживают (gpt-4o и другие легаси-модели).

Общее правило ошибок

Исправляйте запрос при 400/422, снижайте частоту при 429 и повторяйте временные 5xx/сетевые ошибки с экспоненциальной задержкой. Ошибки NeuroAPI или провайдера не должны списывать стоимость успешной генерации.

Коды ошибок и безопасные повторы →