> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elumenta.ru/llms.txt
> Use this file to discover all available pages before exploring further.

# Создание генерации

> Единый универсальный эндпоинт для всех типов AI-генерации

## Обзор

`POST /api/v2/generate` — это **один эндпоинт** для всей AI-генерации: текст, изображения, видео, аудио, TTS, музыка. Слаг модели определяет что генерируется и какие `params` принимаются.

<ParamField header="Authorization" type="string" required>
  `Authorization: Bearer nb_ВАШ_API_КЛЮЧ`
</ParamField>

<ParamField body="model" type="string" required>
  Слаг модели. См. [Каталог моделей](/ru/resources/models-catalog) для всех доступных слагов.
</ParamField>

<ParamField body="prompt" type="string" required>
  Промпт или входной текст. Для текстовых моделей: сообщение пользователя. Для изображений/видео: описание.
</ParamField>

<ParamField body="params" type="object" default="{}">
  Параметры конкретной модели. Примеры ниже по категориям.
</ParamField>

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

```json theme={null}
{
  "model": "claude-sonnet-4.5",
  "prompt": "Напиши описание товара для беспроводных наушников",
  "params": {
    "system_prompt": "Ты профессиональный копирайтер.",
    "temperature": 0.7,
    "max_tokens": 500
  }
}
```

## Генерация изображения

```json theme={null}
{
  "model": "flux-1.1-pro",
  "prompt": "Портрет CEO в современном офисе, профессиональная фотография",
  "params": {
    "negative_prompt": "размытость, водяной знак, текст",
    "size": "1024x1024",
    "format": "webp",
    "seed": 42
  }
}
```

Общие параметры изображений (`params`):

| Параметр          | Тип     | Описание                                       |
| ----------------- | ------- | ---------------------------------------------- |
| `size`            | string  | Например: `1024x1024`, `1024x1792`, `768x1344` |
| `format`          | string  | `webp` (по умолчанию), `png`, `jpeg`           |
| `quality`         | string  | `standard` или `hd` (DALL-E 3, GPT Image)      |
| `negative_prompt` | string  | Что исключить (Flux, SD модели)                |
| `seed`            | integer | Для воспроизводимых результатов                |
| `aspect_ratio`    | string  | Например: `16:9`, `9:16` (Midjourney)          |

## Генерация видео

```json theme={null}
{
  "model": "kling-v2.1-pro",
  "prompt": "Облёт дрона над футуристическим городом ночью, кинематографично",
  "params": {
    "duration": 5,
    "aspect_ratio": "16:9"
  }
}
```

<Note>
  Видео-генерации возвращают `status: "pending"`. Опрашивайте `GET /api/v2/generate/{id}` для получения результата.
</Note>

## Ответ

<ResponseField name="id" type="integer">
  ID генерации. Используйте для опроса: `GET /api/v2/generate/{id}`
</ResponseField>

<ResponseField name="status" type="string">
  `completed` | `pending` | `failed`
</ResponseField>

<ResponseField name="result_text" type="string | null">
  Текстовый результат (для LLM, STT).
</ResponseField>

<ResponseField name="result_url" type="string | null">
  URL файла (для изображений, видео, аудио, TTS).
</ResponseField>

<ResponseField name="tokens_spent" type="integer">
  Потраченные токены Elumenta. Ноль при ошибке.
</ResponseField>

<ResponseField name="processing_ms" type="integer">
  Время обработки в миллисекундах.
</ResponseField>

## Пример ответа — текст

```json theme={null}
{
  "id": 18473,
  "status": "completed",
  "model_slug": "claude-sonnet-4.5",
  "result_text": "Представляем наши Premium беспроводные наушники...",
  "result_url": null,
  "error": null,
  "tokens_spent": 3,
  "processing_ms": 2104,
  "result_metadata": null
}
```

## Пример ответа — изображение

```json theme={null}
{
  "id": 18491,
  "status": "completed",
  "model_slug": "flux-1.1-pro",
  "result_text": null,
  "result_url": "https://storage.elumenta.ru/generations/18491.webp",
  "tokens_spent": 8,
  "processing_ms": 6840,
  "result_metadata": { "width": 1024, "height": 1024 }
}
```

## Пример ответа — ожидание (видео)

```json theme={null}
{
  "id": 18502,
  "status": "pending",
  "model_slug": "kling-v2.1-pro",
  "result_url": null,
  "tokens_spent": 0,
  "processing_ms": null
}
```
