Source: https://ailoot.ai/models/ru/openai-gpt-6-luna-pro/
Canonical: https://ailoot.ai/models/ru/openai-gpt-6-luna-pro/
Language: ru

# OpenAI: GPT-6 Luna Pro

[Markdown](https://ailoot.ai/models/ru/openai-gpt-6-luna-pro/index.md) · [JSON](https://ailoot.ai/models/ru/openai-gpt-6-luna-pro/facts.json)

## [OpenAI: GPT-6 Luna Pro](https://ailoot.ai/models/ru/openai-gpt-6-luna-pro/)

GPT-6 Luna с рассуждениями в режиме Pro для конкретных задач, требующих дополнительного анализа перед итоговым ответом. Базовая модель принимает текст и изображения, что полезно для обработки документов по правилам, вопросов по изображениям и кратких письменных результатов.

- [**Ailoot Ultra · Чат OpenAI** `POST /v1/chat/completions` `openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/openai-gpt-6-luna-pro/#method-0)
- [**Ailoot Ultra · Сообщения Anthropic** `POST /v1/messages` `openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/openai-gpt-6-luna-pro/#method-1)
- [**Ailoot Ultra · OpenAI Responses** `POST /v1/responses` `openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/openai-gpt-6-luna-pro/#method-2)

О модели

Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.

GPT-6 Luna Pro — обозначение модели GPT-6 Luna от OpenAI с рассуждениями в режиме Pro. Luna предназначена для конкретных задач и больших объёмов работы; она принимает текст и изображения и выводит текст. Pro предусматривает дополнительную работу модели при подготовке итогового ответа. Это режим выполнения, применяемый к выбранной базовой модели, отдельный от настройки глубины рассуждений, которая задаёт объём анализа внутри этого режима.

Практический сценарий — обработка чётко заданного запроса с несколькими правилами или исключениями. Передайте запрос, категории, к которым он может относиться, и сведения, определяющие следующее действие. Запросите категорию, соответствующие факты и краткий проект ответа. Пример задачи — классифицировать запрос документа, выявить недостающее поле и подготовить сообщение с просьбой его указать. Задача остаётся конкретной, даже когда её условия требуют внимательного рассмотрения.

Для вопроса по изображению передайте чёткий снимок экрана или другой наглядный материал и укажите деталь для проверки. Можно запросить объяснение видимого состояния интерфейса вместе с короткой инструкцией для читателя. Для письменного материала задайте поля или утверждения, которые должны сохраниться при преобразовании, допустимые категории и ожидаемый формат ответа. Небольшой набор характерных примеров может прояснить границу между похожими категориями, не заставляя модель самостоятельно выводить ваши правила.

Для GPT-6 Luna OpenAI указывает контекстное окно в 1 050 000 токенов, максимальный вход в 922 000 токенов и максимальный вывод в 128 000 токенов. Документированная дата окончания знаний — 18 мая 2026 года. Базовая модель поддерживает уровни рассуждений none, low, medium, high, xhigh и max; по умолчанию используется medium. Рассуждения занимают место в токенах вместе с итоговым ответом, поэтому задание и переданный материал должны оставлять пространство для анализа и запрошенного результата.

Производитель документирует Pro в Responses API для сложных запросов, допускающих дополнительную задержку и работу модели. Встроенные инструменты GPT-6 Luna и рассуждения с вызовами функций используют Responses; в интерфейсе Chat Completions производителя вызовы функций поддерживаются только при уровне рассуждений none. Для базовой модели указаны потоковая передача, Structured Outputs, веб-поиск и поиск по файлам, вызовы функций и кэширование промптов. Её набор инструментов также включает генерацию изображений, выполнение кода интерпретатором, операции командной оболочки и внесения изменений, навыки, работу с компьютером, подключения MCP и поиск инструментов. Ваше приложение определяет и выполняет предоставляемые операции.

Задайте точные требования к выводу итоговой задачи: решение, подтверждающие его поля и сведения, которых ещё не хватает. Например, запросите одну категорию, краткое обоснование по переданному правилу и следующий вопрос читателю. Проверяйте результат по этим правилам, не добавляя неограниченное обсуждение. Такой процесс использует роль Luna в конкретных задачах и оставляет дополнительную работу Pro для запроса, зависимости или исключения которого требуют более полного изучения.

Практическая задача

### Практическая задача

Технический пример на английском

```
Find missing request details

Process this equipment request using the supplied rules. Every request needs item, quantity and delivery site. Urgent requests also need a reason. Message: "Urgent: please send 4 replacement keyboards." Return the supplied fields, missing required fields and a brief reply asking only for the missing details. Do not invent a site or urgency reason.
```

#### Ожидаемый результат

```
A compact field table, missing-field list and targeted clarification message.
```

#### Проверка результата

```
Check that quantity four and keyboards are retained, while delivery site and urgent reason stay missing.
```

**Ailoot Ultra · Чат OpenAI** `POST /v1/chat/completions` `openai/gpt-6-luna-pro`

[`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=chat)

OpenAI /`openai/gpt-6-luna-pro`

### Начало

GPT-6 Luna с рассуждениями в режиме Pro для конкретных задач, требующих дополнительного анализа перед итоговым ответом. Базовая модель принимает текст и изображения, что полезно для обработки документов по правилам, вопросов по изображениям и кратких письменных результатов.

Допустимые входные данные

Текст

Результаты

Текст

### Доступно в Ailoot · входные данные и методы

**Ailoot Ultra · Чат OpenAI** `POST /v1/chat/completions`

Входные данные

`text`

Результат

`text`

Выходной формат

json или SSE

| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
| --- | --- | --- | --- | --- |
| Поле`model` | Тип`string` | ТребованиеОбязательно | Значения и ограничения openai/gpt-6-luna-pro | По умолчанию— |
| Поле`messages` | Тип`message[]` | ТребованиеОбязательно | Значения и ограничения Минимум элементов: 1 | По умолчанию— |
| Поле`messages[].role` | Тип`string` | ТребованиеОбязательно | Значения и ограничения Примеры: system, user, assistant, tool, function Условия: Эти роли явно представлены типами совместимости исходного кода; точный набор ролей зависит от модели. Зависит от модели | По умолчанию— |
| Поле`messages[].content` | Тип`string\|content_part[]\|null` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`messages[].tool_calls` | Тип`tool_call[]` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`messages[].tool_call_id` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Применяется, когда: role=tool; используйте фактически возвращённый ID | По умолчанию— |
| Поле`messages[].name` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`messages[].reasoning_content` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Применяется, когда: Передавайте обратно фактически возвращённые рассуждения, если эта модель их использует | По умолчанию— |
| Поле`messages[].reasoning_details` | Тип`object\|array` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`max_tokens` | Тип`integer` | ТребованиеНеобязательно | Значения и ограничения Минимум: 1 Зависит от модели | По умолчанию— |
| Поле`max_completion_tokens` | Тип`integer` | ТребованиеНеобязательно | Значения и ограничения Минимум: 1 Зависит от модели | По умолчанию— |
| Поле`stream` | Тип`boolean` | ТребованиеНеобязательно | Значения и ограничения | По умолчаниюfalse |
| Поле`stream_options.include_usage` | Тип`boolean` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`temperature` | Тип`number` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`top_p` | Тип`number` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`stop` | Тип`string\|string[]` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`tools` | Тип`function_tool[]` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`tools[].type` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения function Зависит от модели | По умолчанию— |
| Поле`tools[].function.name` | Тип`string` | ТребованиеОбязательно | Значения и ограничения Применяется, когда: передан инструмент-функция | По умолчанию— |
| Поле`tools[].function.description` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`tools[].function.parameters` | Тип`JSON_schema` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`tool_choice` | Тип`string\|object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`parallel_tool_calls` | Тип`boolean` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`response_format` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`reasoning_effort` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`reasoning` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`service_tier` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`instructions` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Поле совместимости | По умолчанию— |
| Поле`functions` | Тип`function[]` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`function_call` | Тип`string\|object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`prompt_cache_options` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`modalities` | Тип`string[]` | ТребованиеНеобязательно | Значения и ограничения text | По умолчанию— |
| Поле`provider` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения Условия: provider.options отклоняется на этом текстовом маршруте Ultra | По умолчанию— |
| Поле`cache_control.ttl` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Условия: 1h отклоняется в фактических местах настройки кэша запросов | По умолчанию— |

Сочетания входных материалов

**Текст** · Текст UTF8

`messages[].content`

Параметры и жизненный цикл метода

| Параметр | Контракт |
| --- | --- |
| Параметр`content_type` | Контрактapplication/json |
| Параметр`required` | Контрактmodel, messages |
| Параметр`material_types` | Контрактtext |
| Параметр`messages` | Контрактмассив сообщений со структурой role/content |
| Параметр`file_material` | Контрактфактический документ UTF-8 вставляется как буквальный текст; ID файла не выводится из него |
| Параметр`optional_controls` | Контрактstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Параметр`control_scope` | Контрактзависит от модели; пользовательские инструменты-функции отличаются от инструментов, выполняемых на стороне сервиса |
| Параметр`output_modalities` | Контрактtext |
| Параметр`hosted_operations` | Контрактfalse |
| Параметр`multimodal_input_binding` | Контрактnull |

Жизненный цикл: `synchronous_or_streamed`

Отправляйте точный ID модели вместе с messages.

Длина контекста не является пределом выхода.

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

### Тарифы

Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.

Быстрый режим

Стандартный тариф При выборе быстрого режима

Режим flex

Стандартный тариф При выборе режима flex

Максимальная интенсивность рассуждений

Стандартный тариф При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)

Интенсивность рассуждений · высокая (high)

Стандартный тариф При высокой интенсивности рассуждений (high)

Интенсивность рассуждений · низкая (low)

Стандартный тариф При низкой интенсивности рассуждений (low)

Интенсивность рассуждений · max

Стандартный тариф При интенсивности рассуждений max

Интенсивность рассуждений · средняя (medium)

Стандартный тариф При средней интенсивности рассуждений (medium)

Интенсивность рассуждений · none

Стандартный тариф При интенсивности рассуждений none

Интенсивность рассуждений · xhigh

Стандартный тариф При интенсивности рассуждений xhigh

#### Ставки Ailoot

#### Цены по конфигурациям

Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.

| Конфигурация | Шкала ставок | Токенов контекста больше | Токенов контекста не более, включительно | Плата |
| --- | --- | --- | --- | --- |
| КонфигурацияБазовые ставки за токены | Шкала ставокБазовая ставка | Токенов контекста больше— | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены **$0.0002** / 1K токенов Выход · Выходные токены **$0.001** / 1K токенов Вход · Чтение кэша **$0.00002** / 1K токенов Вход · Запись в кэш **$0.00025** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |
| КонфигурацияУровень 1 по длине запроса | Шкала ставок— | Токенов контекста больше0 | Токенов контекста не более, включительно272 000 | Плата Вход · Входные токены **$0.0002** / 1K токенов Выход · Выходные токены **$0.001** / 1K токенов Вход · Чтение кэша **$0.00002** / 1K токенов Вход · Запись в кэш **$0.00025** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |
| КонфигурацияУровень 2 по длине запроса | Шкала ставок— | Токенов контекста больше272 000 | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены **$0.0004** / 1K токенов Выход · Выходные токены **$0.0015** / 1K токенов Вход · Чтение кэша **$0.00004** / 1K токенов Вход · Запись в кэш **$0.0005** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. [Как работают резервирование и расчёт →](https://ailoot.ai/docs/ru/billing/reserve/)

### Примеры запросов

#### Ailoot Ultra · Чат OpenAI

curlPython SDKПоток Python

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/gpt-6-luna-pro", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='openai/gpt-6-luna-pro',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='openai/gpt-6-luna-pro',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Получить и сохранить результаты

#### Ailoot Ultra · Чат OpenAI

json или SSE

##### Сохраняйте все готовые результаты

Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.

Сохраняйте каждый вариант ответа с его содержимым, вызовами инструментов и рассуждениями. В SSE собирайте изменения по индексам варианта и инструмента, сохраняйте итоговую причину завершения и данные использования.

##### Если нужно проверить исходный ответ

Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен.

Поля ответа

| Поле | Тип |
| --- | --- |
| Поле`choices[].index` | Типinteger |
| Поле`choices[].message.content` | Типstring\|null |
| Поле`choices[].message.tool_calls` | Типtool\_call\[\] |
| Поле`choices[].message.reasoning_content` | Типstring |
| Поле`choices[].message.reasoning_details` | Типobject\|array |
| Поле`choices[].finish_reason` | Типstring\|null |
| Поле`usage` | Типobject |

Ошибки и дальнейшие шаги

| Ответ | Условие | Следующий шаг |
| --- | --- | --- |
| Ответ400 · `invalid_request_error` | УсловиеНеверные обязательные поля, представление материалов или значение параметра | Следующий шагИсправьте указанные поля перед новым запросом на создание. |

### Псевдонимы

#### Псевдонимы моделей

**Ailoot Ultra** [`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=chat)

#### Псевдонимы путей метода

Используйте пути методов, указанные выше.

#### Связанные ID для вызова

[`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=chat)

**Ailoot Ultra · Сообщения Anthropic** `POST /v1/messages` `openai/gpt-6-luna-pro`

[`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=messages)

OpenAI /`openai/gpt-6-luna-pro`

### Начало

GPT-6 Luna с рассуждениями в режиме Pro для конкретных задач, требующих дополнительного анализа перед итоговым ответом. Базовая модель принимает текст и изображения, что полезно для обработки документов по правилам, вопросов по изображениям и кратких письменных результатов.

Допустимые входные данные

Текст

Результаты

Текст

### Доступно в Ailoot · входные данные и методы

**Ailoot Ultra · Сообщения Anthropic** `POST /v1/messages`

Входные данные

`text`

Результат

`text`

Выходной формат

json или SSE

| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
| --- | --- | --- | --- | --- |
| Поле`model` | Тип`string` | ТребованиеОбязательно | Значения и ограничения openai/gpt-6-luna-pro | По умолчанию— |
| Поле`messages` | Тип`message[]` | ТребованиеОбязательно | Значения и ограничения Минимум элементов: 1 | По умолчанию— |
| Поле`messages[].role` | Тип`string` | ТребованиеОбязательно | Значения и ограничения user, assistant | По умолчанию— |
| Поле`messages[].content` | Тип`string\|content_block[]` | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
| Поле`system` | Тип`string\|content_block[]` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`max_tokens` | Тип`integer` | ТребованиеОбязательно | Значения и ограничения Минимум: 1 Объект ограничения: точный верхний предел выбранной модели/карточки | По умолчанию— |
| Поле`stream` | Тип`boolean` | ТребованиеНеобязательно | Значения и ограничения | По умолчаниюfalse |
| Поле`temperature` | Тип`number` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`top_p` | Тип`number` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`stop_sequences` | Тип`string[]` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`tools` | Тип`tool[]` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`tools[].name` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Применяется, когда: передан инструмент | По умолчанию— |
| Поле`tools[].description` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`tools[].input_schema` | Тип`JSON_schema` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`tool_choice` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`thinking.type` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`thinking.budget_tokens` | Тип`integer` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`output_config.effort` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`metadata` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`cache_control` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |

Сочетания входных материалов

**Текст** · Текст UTF8

`messages[].content или блок type=text`

**Текст + изображение**

`{type:image,source:{type:base64,media_type,data}} или источник type=url`

Параметры и жизненный цикл метода

| Параметр | Контракт |
| --- | --- |
| Параметр`material_types` | Контрактtext |
| Параметр`required` | Контрактmodel, messages, max\_tokens |
| Параметр`optional_controls` | Контрактnull |
| Параметр`content_type` | Контрактapplication/json |
| Параметр`text_file_material` | КонтрактПрочитайте фактический документ UTF-8 и поместите его текст в указанную строку входа или содержимого сообщения. |

Жизненный цикл: `exact retained published method`

Передайте точный ID модели и обязательные поля.

Сохраняйте каждый возвращённый элемент и его исходные идентификаторы.

### Тарифы

Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.

Быстрый режим

Стандартный тариф При выборе быстрого режима

Режим flex

Стандартный тариф При выборе режима flex

Максимальная интенсивность рассуждений

Стандартный тариф При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)

Интенсивность рассуждений · высокая (high)

Стандартный тариф При высокой интенсивности рассуждений (high)

Интенсивность рассуждений · низкая (low)

Стандартный тариф При низкой интенсивности рассуждений (low)

Интенсивность рассуждений · max

Стандартный тариф При интенсивности рассуждений max

Интенсивность рассуждений · средняя (medium)

Стандартный тариф При средней интенсивности рассуждений (medium)

Интенсивность рассуждений · none

Стандартный тариф При интенсивности рассуждений none

Интенсивность рассуждений · xhigh

Стандартный тариф При интенсивности рассуждений xhigh

#### Ставки Ailoot

#### Цены по конфигурациям

Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.

| Конфигурация | Шкала ставок | Токенов контекста больше | Токенов контекста не более, включительно | Плата |
| --- | --- | --- | --- | --- |
| КонфигурацияБазовые ставки за токены | Шкала ставокБазовая ставка | Токенов контекста больше— | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены **$0.0002** / 1K токенов Выход · Выходные токены **$0.001** / 1K токенов Вход · Чтение кэша **$0.00002** / 1K токенов Вход · Запись в кэш **$0.00025** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |
| КонфигурацияУровень 1 по длине запроса | Шкала ставок— | Токенов контекста больше0 | Токенов контекста не более, включительно272 000 | Плата Вход · Входные токены **$0.0002** / 1K токенов Выход · Выходные токены **$0.001** / 1K токенов Вход · Чтение кэша **$0.00002** / 1K токенов Вход · Запись в кэш **$0.00025** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |
| КонфигурацияУровень 2 по длине запроса | Шкала ставок— | Токенов контекста больше272 000 | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены **$0.0004** / 1K токенов Выход · Выходные токены **$0.0015** / 1K токенов Вход · Чтение кэша **$0.00004** / 1K токенов Вход · Запись в кэш **$0.0005** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. [Как работают резервирование и расчёт →](https://ailoot.ai/docs/ru/billing/reserve/)

### Примеры запросов

#### Ailoot Ultra · Сообщения Anthropic

Полное минимальное тело запроса в формате JSONcurl · используйте свой документ UTF-8Python · сохраните полный результат

```json
{
  "model": "openai/gpt-6-luna-pro",
  "max_tokens": 4096,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ]
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-luna-pro', 'max_tokens': 4096, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-luna-pro', 'max_tokens': 4096, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Получить и сохранить результаты

#### Ailoot Ultra · Сообщения Anthropic

json или SSE

##### Сохраняйте все готовые результаты

Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.

Сохраняйте все блоки содержимого, подписи рассуждений и фактические ID обращений к инструментам. Собирайте все изменения блоков SSE; первый текстовый блок не является полным выходом.

##### Если нужно проверить исходный ответ

Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен.

Поля ответа

| Поле | Тип |
| --- | --- |
| Поле`id` | Типstring |
| Поле`model` | Типstring |
| Поле`content[]` | Типtext\|thinking\|tool\_use\|other content block |
| Поле`stop_reason` | Типstring\|null |
| Поле`usage` | Типobject |

Ошибки и дальнейшие шаги

| Ответ | Условие | Следующий шаг |
| --- | --- | --- |
| Ответ400 · `invalid_request_error` | УсловиеНеверные обязательные поля, представление материалов или значение параметра | Следующий шагИсправьте указанные поля перед новым запросом на создание. |

### Псевдонимы

#### Псевдонимы моделей

**Ailoot Ultra** [`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=messages)

#### Псевдонимы путей метода

Используйте пути методов, указанные выше.

#### Связанные ID для вызова

[`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=messages)

**Ailoot Ultra · OpenAI Responses** `POST /v1/responses` `openai/gpt-6-luna-pro`

[`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=responses)

OpenAI /`openai/gpt-6-luna-pro`

### Начало

GPT-6 Luna с рассуждениями в режиме Pro для конкретных задач, требующих дополнительного анализа перед итоговым ответом. Базовая модель принимает текст и изображения, что полезно для обработки документов по правилам, вопросов по изображениям и кратких письменных результатов.

Допустимые входные данные

Текст

Результаты

Текст

### Доступно в Ailoot · входные данные и методы

**Ailoot Ultra · OpenAI Responses** `POST /v1/responses`

Входные данные

`text`

Результат

`text`

Выходной формат

json или SSE

| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
| --- | --- | --- | --- | --- |
| Поле`model` | Тип`string` | ТребованиеОбязательно | Значения и ограничения openai/gpt-6-luna-pro | По умолчанию— |
| Поле`input` | Тип`string\|input_item[]` | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
| Поле`instructions` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`input[].type` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения message, reasoning, function\_call, function\_call\_output | По умолчанию— |
| Поле`input[].content` | Тип`string\|content_part[]` | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
| Поле`input[].call_id` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Применяется, когда: function\_call\_output; сохраняйте фактически возвращённый call\_id | По умолчанию— |
| Поле`input[].output` | Тип`string\|content_part[]` | ТребованиеНеобязательно | Значения и ограничения Применяется, когда: function\_call\_output | По умолчанию— |
| Поле`max_output_tokens` | Тип`integer` | ТребованиеНеобязательно | Значения и ограничения Минимум: 1 Зависит от модели | По умолчанию— |
| Поле`stream` | Тип`boolean` | ТребованиеНеобязательно | Значения и ограничения | По умолчаниюfalse |
| Поле`temperature` | Тип`number` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`top_p` | Тип`number` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`tools` | Тип`tool[]` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`tool_choice` | Тип`string\|object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`parallel_tool_calls` | Тип`boolean` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`reasoning.effort` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`reasoning.summary` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`text.format` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`text.verbosity` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`include` | Тип`string[]` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`store` | Тип`boolean` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`previous_response_id` | Тип`string` | ТребованиеНе поддерживается | Значения и ограничения Требование к ID: Только фактический ID ответа из поддерживаемого продолжения Условия: Передавайте фактическую историю диалога с каждым запросом. | По умолчанию— |
| Поле`service_tier` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`prompt_cache_key` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |
| Поле`prompt_cache_options` | Тип`object` | ТребованиеНеобязательно | Значения и ограничения Зависит от модели | По умолчанию— |

Сочетания входных материалов

**Текст** · Текст UTF8

`входной текст или часть input_text`

**Текст + изображение**

`{type:input_image,image_url}`

Параметры и жизненный цикл метода

| Параметр | Контракт |
| --- | --- |
| Параметр`material_types` | Контрактtext |
| Параметр`required` | Контрактmodel, input |
| Параметр`optional_controls` | Контрактnull |
| Параметр`content_type` | Контрактapplication/json |
| Параметр`text_file_material` | КонтрактПрочитайте фактический документ UTF-8 и поместите его текст в указанную строку входа или содержимого сообщения. |

Жизненный цикл: `exact retained published method`

Передайте точный ID модели и обязательные поля.

Сохраняйте каждый возвращённый элемент и его исходные идентификаторы.

### Тарифы

Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.

Быстрый режим

Стандартный тариф При выборе быстрого режима

Режим flex

Стандартный тариф При выборе режима flex

Максимальная интенсивность рассуждений

Стандартный тариф При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)

Интенсивность рассуждений · высокая (high)

Стандартный тариф При высокой интенсивности рассуждений (high)

Интенсивность рассуждений · низкая (low)

Стандартный тариф При низкой интенсивности рассуждений (low)

Интенсивность рассуждений · max

Стандартный тариф При интенсивности рассуждений max

Интенсивность рассуждений · средняя (medium)

Стандартный тариф При средней интенсивности рассуждений (medium)

Интенсивность рассуждений · none

Стандартный тариф При интенсивности рассуждений none

Интенсивность рассуждений · xhigh

Стандартный тариф При интенсивности рассуждений xhigh

#### Ставки Ailoot

#### Цены по конфигурациям

Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.

| Конфигурация | Шкала ставок | Токенов контекста больше | Токенов контекста не более, включительно | Плата |
| --- | --- | --- | --- | --- |
| КонфигурацияБазовые ставки за токены | Шкала ставокБазовая ставка | Токенов контекста больше— | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены **$0.0002** / 1K токенов Выход · Выходные токены **$0.001** / 1K токенов Вход · Чтение кэша **$0.00002** / 1K токенов Вход · Запись в кэш **$0.00025** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |
| КонфигурацияУровень 1 по длине запроса | Шкала ставок— | Токенов контекста больше0 | Токенов контекста не более, включительно272 000 | Плата Вход · Входные токены **$0.0002** / 1K токенов Выход · Выходные токены **$0.001** / 1K токенов Вход · Чтение кэша **$0.00002** / 1K токенов Вход · Запись в кэш **$0.00025** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |
| КонфигурацияУровень 2 по длине запроса | Шкала ставок— | Токенов контекста больше272 000 | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены **$0.0004** / 1K токенов Выход · Выходные токены **$0.0015** / 1K токенов Вход · Чтение кэша **$0.00004** / 1K токенов Вход · Запись в кэш **$0.0005** / 1K токенов Вход · Запись в кэш, 1 час **—** / 1K токенов |

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. [Как работают резервирование и расчёт →](https://ailoot.ai/docs/ru/billing/reserve/)

### Примеры запросов

#### Ailoot Ultra · OpenAI Responses

Полное минимальное тело запроса в формате JSONcurl · используйте свой документ UTF-8Python · сохраните полный результат

```json
{
  "model": "openai/gpt-6-luna-pro",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-luna-pro', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-luna-pro', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Получить и сохранить результаты

#### Ailoot Ultra · OpenAI Responses

json или SSE

##### Сохраняйте все готовые результаты

Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.

Сохраняйте каждый выходной элемент и часть содержимого, фактический call\_id функции, зашифрованные рассуждения и данные использования. В потоке сохраняйте полную идентичность событий и элементов.

##### Если нужно проверить исходный ответ

Сохраняйте ID запросов и ответов, а также заголовки. Общий URL получения текстового задания не предоставлен.

Поля ответа

| Поле | Тип |
| --- | --- |
| Поле`id` | Типstring |
| Поле`status` | Типstring |
| Поле`output[]` | Типmessage\|reasoning\|function\_call\|other item |
| Поле`output[].content[]` | Типcontent part |
| Поле`usage` | Типobject |

Ошибки и дальнейшие шаги

| Ответ | Условие | Следующий шаг |
| --- | --- | --- |
| Ответ400 · `invalid_request_error` | УсловиеНеверные обязательные поля, представление материалов или значение параметра | Следующий шагИсправьте указанные поля перед новым запросом на создание. |

### Псевдонимы

#### Псевдонимы моделей

**Ailoot Ultra** [`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=responses)

#### Псевдонимы путей метода

Используйте пути методов, указанные выше.

#### Связанные ID для вызова

[`openai/gpt-6-luna-pro`](https://ailoot.ai/models/ru/#m=openai%2Fgpt-6-luna-pro&route=Ultra&caller=openai%2Fgpt-6-luna-pro&fmt=responses)

FAQ · OpenAI: GPT-6 Luna Pro

Какие входные данные и результаты доступны?

`POST /v1/chat/completions` · `openai/gpt-6-luna-pro`: `text` → `text` `POST /v1/messages` · `openai/gpt-6-luna-pro`: `text` → `text` `POST /v1/responses` · `openai/gpt-6-luna-pro`: `text` → `text`

Какие поля использует запрос?

`POST /v1/chat/completions` · `openai/gpt-6-luna-pro`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `openai/gpt-6-luna-pro`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `openai/gpt-6-luna-pro`: `model`, `input`, `instructions`, `stream`

Какие ограничения действуют?

`POST /v1/chat/completions` · `openai/gpt-6-luna-pro`: `messages.min_items`: `1` `POST /v1/messages` · `openai/gpt-6-luna-pro`: `messages.min_items`: `1`; `max_tokens.minimum`: `1`

Подключите Ailoot к Claude Code, OpenCode, Hermes или своему приложению.

## Компания и портфель её проектов

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

## Покупайте токены со скидкой.

Скидка по подписке для регулярной работы. Промокоды — до 50% на покупку токенов.

Подписка

Выберите тариф со скидкой для своих регулярных запросов.

Промокод до 50%

Введите код при покупке. Цена пересчитается с учётом действующей акции.

Расходы в истории

Модель, токены и сумма сохраняются для каждого запроса.

[Выбрать подписку](https://ailoot.ai/docs/ru/billing/subscriptions/) · [Посмотреть цены моделей](https://ailoot.ai/models/ru/)

## Подключайте API к продукту, который вы продаёте.

SaaS, приложения и боты — по оферте и лицензионному договору Ailoot. Для перепродажи запросите реселлерскую лицензию.

Коммерческое приложение

Встраивайте генерацию текста, картинок, видео и звука в платные функции своего сервиса.

Лицензия для реселлера

Пришлите описание проекта и схему доступа. Запросите письменные условия использования и перепродажи.

Документы на сайте

Оферта, лицензионный договор и политика обработки данных доступны до подключения.

[Запросить реселлерскую лицензию](mailto:support@ailoot.ai) · [Оферта и лицензионный договор](https://ailoot.ai/legal/offer?lang=ru)

## Ailoot · Компания и портфель её проектов





Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.





Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.





Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
