# Gemini 3.1 Pro — /chat/completions

Совместимые с OpenAI chat completions на базе Google Gemini 3.1 Pro. Поддерживает потоковый вывод и длинный контекст. Укажите в поле model значение gemini-3.1-pro; по умолчанию используется уровень low, а reasoning_effort=high выбирает высокий уровень. Эта модель также возвращает сводку рассуждений: choices[].message.reasoning_content — если ответ не потоковый, и choices[].delta.reasoning_content — если потоковый. Сам ответ всегда находится в content и никогда не смешивается с рассуждением, поэтому клиентам, которые читают только content, ничего менять не нужно. Тарификация: токены рассуждения оплачиваются по ставке вывода и включаются в usage.completion_tokens; usage.completion_tokens_details.reasoning_tokens показывает, сколько из них ушло на рассуждение. Блокировка контента: Google проверяет промпт ещё до запуска модели; заблокированный промпт не даёт результата и не оплачивается. Шлюз автоматически переформулирует промпт и повторяет попытку один раз, возвращая ошибку только если запрос всё равно отклонён. Если ваш промпт блокируется постоянно, попробуйте объединить системное сообщение с первым сообщением пользователя.

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

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

## Тело запроса
| Параметр | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| `model` | string | Да | Model ID, here gemini-3.1-pro. |
| `messages` | array | Да | Массив сообщений; у каждого есть role (system/user/assistant) и content. content может быть строкой или массивом частей {type:text} и {type:image_url} для распознавания изображений (мультимодальность/зрение). |
| `stream` | boolean | Нет | Возвращать ответ потоково через SSE. По умолчанию false. При потоковой передаче рассуждение приходит по частям в choices[].delta.reasoning_content, ответ остаётся в delta.content, а поток завершается сообщением data: [DONE]. Обратите внимание: для потоковых вызовов провайдер не сообщает отдельный счётчик размышлений, поэтому reasoning_tokens возвращает 0 — при этом сами токены рассуждения по-прежнему включены в completion_tokens, так что стоимость совпадает с непотоковым вариантом. |
| `temperature` | number | Нет | Температура сэмплирования, 0–2. |
| `max_tokens` | integer | Нет | Максимальное количество генерируемых токенов. |
| `web_search` | boolean | Нет | Установите true, чтобы включить веб-поиск: шлюз дополняет промпт актуальными результатами (со ссылками на источники) перед тем, как модель формирует ответ. Также можно включить через элемент tools вида {"type":"web_search"}. |
| `reasoning_effort` | string | Нет | Уровень усилий: low (по умолчанию — быстрее и дешевле) или high (более глубокое рассуждение, тарифицируется по уровню Preview). Также работают суффиксные названия моделей gemini-3.1-pro-low / gemini-3.1-pro-high; устаревший идентификатор gemini-3.1-pro-preview равнозначен уровню high по прежней цене. |

## Пример запроса
```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'
```

## Ответ
```json
{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "model": "gemini-3.1-pro",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": "**My Thought Process** ... (the model summarises its own reasoning)",
        "content": "70"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 48,
    "completion_tokens": 2187,
    "total_tokens": 2235,
    "completion_tokens_details": {"reasoning_tokens": 1371}
  }
}
```

## Ввод изображений (Vision)
Поместите изображение в массив content сообщения, и модель проанализирует его (визуальные вопрос-ответ, распознавание текста / OCR, …). Поле image_url принимает публичную ссылку на изображение или встроенный base64 data URL (data:image/png;base64,...). Доступно для мультимодальных моделей (gpt-5.5, серия gemini, …).

```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "gemini-3.1-pro", "messages": [{"role": "user", "content": [{"type": "text", "text": "What is in this image?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'
```