# Gemini 4 Argon — /chat/completions

Gemini 4 Argon Beta поддерживает текстовый диалог, потоковый вывод и уровни рассуждения Low / Medium / High; по умолчанию Low. Используйте SDK OpenAI. Токены рассуждения оплачиваются как вывод.

**Эндпоинт:** `POST https://nezhagate.com/v1/chat/completions`

## Быстрый старт

Два шага: отправить запрос, а затем получить ответ в потоковом режиме. Замените YOUR_API_KEY своим ключом, и команды ниже заработают как есть. Эндпоинт совместим с OpenAI Chat Completions, поэтому в готовом коде для OpenAI достаточно поменять `base_url` и `model`.

**Шаг 1 · Отправка запроса**

```
curl https://nezhagate.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gemini-4-argon", "messages": [{"role": "user", "content": "Объясни одним предложением, что такое фотосинтез"}]}'
```

Ответ (HTTP 200)

```
{
  "id": "chatcmpl-7f3c9a1e2b4d6f8a",
  "object": "chat.completion",
  "created": 1791281400,
  "model": "gemini-4-argon",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Фотосинтез — это процесс, в котором растения с помощью солнечного света превращают углекислый газ и воду в сахар и выделяют кислород.",
        "reasoning_content": "..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 18,
    "completion_tokens": 186,
    "total_tokens": 204,
    "prompt_tokens_details": {"cached_tokens": 0},
    "completion_tokens_details": {"reasoning_tokens": 144}
  }
}
```

`message.content` — это ответ, `message.reasoning_content` — размышления. В `usage` — токены, по которым оплачивается этот запрос: токены размышлений входят в `completion_tokens` и оплачиваются по цене выхода.

**Шаг 2 · Потоковый вывод (рекомендуется)**

```
curl -N https://nezhagate.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gemini-4-argon", "stream": true, "messages": [{"role": "user", "content": "Объясни одним предложением, что такое фотосинтез"}]}'
```

Поток — это стандартный SSE: каждый фрагмент несёт текст в `choices[0].delta.content`, последний фрагмент содержит `usage`, а завершается поток строкой `data: [DONE]`. Для длинных ответов и моделей с размышлениями используйте потоковый вывод: непотоковый запрос обрывается примерно через 10 минут.

**Python (OpenAI SDK)**

```
from openai import OpenAI

client = OpenAI(base_url="https://nezhagate.com/v1", api_key="YOUR_API_KEY")

# 1. Один запрос — один ответ
resp = client.chat.completions.create(
    model="gemini-4-argon",
    messages=[{"role": "user", "content": "Объясни одним предложением, что такое фотосинтез"}],
)
print(resp.choices[0].message.content)

# 2. Потоковый вывод
stream = client.chat.completions.create(
    model="gemini-4-argon",
    messages=[{"role": "user", "content": "Объясни одним предложением, что такое фотосинтез"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
```

## Аутентификация
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## Основные характеристики

| Контекст, общий для ввода и вывода | Около 1 млн токенов |
| --- | --- |
| Входные данные | Текст |
| Размышления | Выберите `low / medium / high`; по умолчанию `low`. Тарифы за токен одинаковы на всех уровнях. |
| Вызов инструментов | Не гарантируется: параметр `tools` может быть проигнорирован, и модель ответит сразу |
| Веб-поиск | Поддерживается (`web_search: true`; сам поиск бесплатный) |
| Эндпоинты | /v1/chat/completions |
| Потоковый вывод | Поддерживается (`stream: true`, SSE) |
| Оплата | За токены: у входа, выхода (включая размышления) и попаданий в кэш — свои цены; неудачные запросы бесплатны |

## Параметры запроса

JSON-тело запроса `POST /v1/chat/completions` — такое же, как в OpenAI Chat Completions. Основные параметры и то, как каждый из них работает у этой модели:

| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| model | string | Да | ID модели: `gemini-4-argon`. |
| messages | array | Да | Диалог: у каждого сообщения есть `role` (`system`, `user`, `assistant` или `tool`) и `content`. Чтобы продолжить диалог, передавайте всю историю сообщений по порядку. |
| stream | boolean | Нет | `true` — ответ приходит потоком SSE, а `usage` — в последнем фрагменте. По умолчанию `false`. |
| max_tokens | integer | Нет | Запрошенная длина вывода, включая рассуждение. Эта Beta не гарантирует строгий предел. Для контроля затрат задавайте длину в запросе и делите работу. |
| temperature / top_p | number | Нет | Параметры сэмплирования можно передать; их влияние в этой Beta отдельно не проверено. |
| reasoning_effort | string | Нет | Выберите `low / medium / high`; по умолчанию `low`. Тарифы за токен одинаковы на всех уровнях. |
| web_search | boolean | Нет | `true` — сначала выполняется веб-поиск, и его результаты передаются модели как справочные материалы; подробнее — ниже. |

Начните с параметров на этой странице. Вызов инструментов, мультимодальный ввод и режим JSON пока не обещаются.

## Цена

Оплата за токены по актуальным ценам ниже (за миллион токенов). Оплачиваются только успешные запросы и только по фактическому расходу: неудачные, прерванные по таймауту и отклонённые запросы бесплатны. 1 кредит = $0.005.

| Тип | USD за 1 млн токенов | Кредитов за 1 млн токенов |
| --- | --- | --- |
| Вход | $0.50 | 100 |
| Выход (включая размышления) | $3.00 | 600 |
| Попадание в кэш | $0.05 | 10 |

Например, запрос с 2000 входных токенов и 1000 выходных (включая размышления) стоит около $0.004.

## Размышления

Задайте `reasoning_effort` как `low`, `medium` или `high`; если параметр опущен, используется `low`.

Видимое рассуждение возвращается в `reasoning_content`. `usage.completion_tokens` включает рассуждение и ответ; не прибавляйте токены рассуждения повторно.

Тарифы одинаковы на всех уровнях. Более глубокое рассуждение может увеличить число выходных токенов.

Токены размышлений входят в `usage.completion_tokens` и оплачиваются по цене выхода (некоторые модели ещё и указывают их отдельно в `completion_tokens_details.reasoning_tokens`).

```
{
  "model": "gemini-4-argon",
  "messages": [{"role": "user", "content": "Объясни одним предложением, что такое фотосинтез"}],
  "reasoning_effort": "medium"
}
```

## Кэширование промптов

Поддерживается автоматический неявный кэш. Повтор длинного ввода может дать попадание; фактические попадания стоят одну десятую обычного ввода. Попадание при каждом повторе не гарантируется, создание явного кэша не предоставляется.

`usage.prompt_tokens` — весь ввод. `usage.prompt_tokens_details.cached_tokens` — кэшированная часть этого ввода. Тариф кэша применяется только к фактическим попаданиям.

## Веб-поиск

Необязательный `web_search` шлюза передаёт модели найденный текст. Это не означает проверенной нативной поддержки поиска или инструментов.

```
curl https://nezhagate.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gemini-4-argon", "web_search": true, "messages": [{"role": "user", "content": "Какие главные технологические новости сегодня"}]}'
```

## Ограничения Beta

- Проверены текстовый диалог, потоковый вывод и три уровня рассуждения. Инструменты, мультимодальный ввод и режим JSON ещё не проверены.

- Официальный контекст — около миллиона токенов, общих для ввода и вывода. Поиск в длинном вводе проверен; полное окно и вывод на миллион токенов не проверялись.

- Делите длинные задачи. `max_tokens` не является проверенным строгим пределом бюджета. Неудачные запросы не оплачиваются; прерванный запрос с выводом рассчитывается по фактическому расходу.

## Ошибки и возвраты

Ошибки возвращаются объектом `error` (`message`, `type`, `code`, `param`); ориентируйтесь на HTTP-статус и `code`, а не на текст `message`. Неудачные запросы не оплачиваются; полный список — в разделе [Коды ошибок](https://nezhagate.com/ru/docs/guide/errors).

| HTTP | code | Причина | Что делать |
| --- | --- | --- | --- |
| 400 | invalid_messages / invalid_role / invalid_max_tokens | В запросе к чату поле `messages` отсутствует, пустое или имеет неверный формат, у `role` недопустимое значение либо `max_tokens` — не положительное целое число. Поле указано в `param`. | Исправьте поле, указанное в `param`. |
| 400 | model_not_found | ID модели написан с ошибкой, `model` не передан или модель нельзя использовать на этом эндпоинте (например, чат-модель на эндпоинте изображений). | Берите ID модели из `GET /v1/models` или из [справочника API](https://nezhagate.com/ru/docs/api). |
| 400 | max_tokens_too_small | Модель с размышлениями потратила весь `max_tokens` на размышления и не написала ответ (непотоковый чат). | Увеличьте `max_tokens` и повторите. |
| 4xx | invalid_request | Поставщик модели отклонил запрос (например, из-за слишком длинного контекста или неподдерживаемого параметра); статус и `message` передаются в том виде, в каком их прислал поставщик, а в `code` — его значение. | Измените запрос согласно `message`. |
| 401 | invalid_api_key | Ключ не существует, удалён или отключён, либо отключён аккаунт. | Проверьте ключ на странице API Keys в консоли. |
| 402 | insufficient_quota | Баланса не хватает, чтобы зарезервировать стоимость этого запроса. Шлюз сначала резервирует максимально возможную стоимость запроса, поэтому ошибка может возникнуть и при всплеске одновременных вызовов. | Если был всплеск запросов, подождите несколько секунд и повторите; в остальных случаях пополните баланс. |
| 403 | permission_denied | Модели нет в списке разрешённых моделей ключа. | Используйте модель из списка разрешённых или измените список в консоли. |
| 429 | rate_limit_exceeded | Превышен лимит запросов в минуту, заданный для этого ключа (считается за последние 60 секунд). Заголовка `Retry-After` нет. | Подождите несколько секунд и повторите или увеличьте лимит ключа в консоли. |
| 429 | rate_limit_exceeded | Все линии этой модели заняты, и запрос не был отправлен. Бывает только на эндпоинтах чата: задачи изображений и видео не отклоняются, а встают в очередь. OpenAI-совместимые эндпоинты добавляют `Retry-After`. | Подождите столько секунд, сколько указано в `Retry-After`, и повторите. |
| 502 | upstream_timeout | Линия не уложилась в таймаут, в том числе слишком долго не отправляла первый токен. | Повторите; для длинных ответов используйте `stream: true`. |
| 502 | upstream_unavailable | Линия дала сбой или временно недоступна. | Повторите чуть позже. |
| 502 | upstream_busy | Поставщик модели ограничивает частоту запросов. Его 429 никогда не передаётся вам как 429 — вместо этого вы получаете этот 502. | Повторите чуть позже. |
| 502 | empty_completion | Поставщик модели вернул пустой ответ. Это не оценка вашего контента. | Повторите. |
| 503 | model_maintenance | Модель на обслуживании и не принимает запросы; пока идёт обслуживание, другая модель вместо неё не ответит. | Повторите, когда обслуживание закончится; ход работ — на [странице статуса](https://nezhagate.com/ru/status). |

Если поток дал сбой уже после начала передачи, код статуса не меняется: ошибка приходит строкой данных с `error`, или поток просто заканчивается (без `data: [DONE]`). Считайте такой поток оборванным.
