ДокументацияГенерация текста
Генерация текста
POST /v1/chat/completions — основной метод для текстовых запросов к моделям. Формат совместим с OpenAI Chat Completions API.
Адрес
POST https://api.zenvy.su/v1/chat/completionsЗаголовки
| Заголовок | Значение |
|---|---|
Authorization | Bearer sk-zenvy-... |
Content-Type | application/json |
Тело запроса
{
"model": "claude-sonnet-4.6",
"messages": [
{
"role": "user",
"content": "Привет!"
}
],
"stream": false,
"max_tokens": 1000,
"temperature": 0.7
}Поля запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
model | string | да | ID модели в Zenvy — см. Модели и баланс |
messages | array | да | Сообщения в формате OpenAI |
stream | boolean | нет | true — потоковый ответ через SSE |
max_tokens | number | нет | Максимум токенов в ответе |
temperature | number | нет | Температура генерации (0–2) |
top_p | number | нет | Nucleus sampling |
stop | string или string[] | нет | Стоп-последовательности |
tools | array | нет | Описание инструментов для вызова |
tool_choice | string или object | нет | Какой инструмент вызывать |
parallel_tool_calls | boolean | нет | Разрешить параллельные вызовы tools |
response_format | object | нет | JSON mode / structured output |
modalities | string[] | нет | Выходные модальности, например ["text", "image"] или ["text", "audio"] — для моделей с генерацией картинок/озвучки |
audio | object | нет | Параметры озвучки для audio-моделей (voice, format) |
reasoning | object | нет | Настройки режима размышления (прокидывается upstream, если модель поддерживает) |
seed | number | нет | Seed для воспроизводимости (если поддерживается моделью) |
frequency_penalty | number | нет | Штраф за повторы |
presence_penalty | number | нет | Штраф за уже встречавшиеся темы |
Zenvy прокидывает поля tool calling в upstream-провайдер. Это важно для coding-агентов (OpenCode, Codex CLI и др.), где модель должна возвращать tool_calls.
Для моделей с генерацией изображений или озвучки передайте modalities и при необходимости audio. См. Генерация изображений и Озвучка текста.
Какие модели что принимают и генерируют — в разделе Модели и баланс: поля architecture.input_modalities и architecture.output_modalities. Удобный каталог с фильтрами — на странице моделей.
Пример запроса
curl https://api.zenvy.su/v1/chat/completions \
-H "Authorization: Bearer sk-zenvy-..." \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4.6",
"messages": [
{ "role": "user", "content": "Напиши короткое описание Zenvy" }
],
"stream": false
}'Пример ответа
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1779613892,
"model": "claude-sonnet-4.6",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Zenvy — единый API для работы с AI-моделями."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 19,
"completion_tokens": 69,
"total_tokens": 88
}
}OpenAI SDK
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.ZENVY_API_KEY,
baseURL: "https://api.zenvy.su/v1"
});
const completion = await client.chat.completions.create({
model: "claude-sonnet-4.6",
messages: [{ role: "user", content: "Привет!" }]
});
console.log(completion.choices[0]?.message?.content);Подробнее о стриминге: Стриминг. О расчёте стоимости: Токены и биллинг.