OpenAI: GPT-6 Luna Pro
GPT-6 Luna с рассуждениями в режиме Pro для конкретных задач, требующих дополнительного анализа перед итоговым ответом. Базовая модель принимает текст и изображения, что полезно для обработки документов по правилам, вопросов по изображениям и кратких письменных результатов.
- Ailoot Ultra · Чат OpenAI
POST /v1/chat/completionsopenai/gpt-6-luna-pro - Ailoot Ultra · Сообщения Anthropic
POST /v1/messagesopenai/gpt-6-luna-pro - Ailoot Ultra · OpenAI Responses
POST /v1/responsesopenai/gpt-6-luna-pro
О модели
Описание раскрывает возможности модели. Доступные в 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Начало
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 резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Чат OpenAI
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
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"))
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
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
Ailoot Ultra · Сообщения Anthropic POST /v1/messages openai/gpt-6-luna-pro
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 резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Сообщения Anthropic
{
"model": "openai/gpt-6-luna-pro",
"max_tokens": 4096,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
]
}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
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
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
Ailoot Ultra · OpenAI Responses POST /v1/responses openai/gpt-6-luna-pro
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 резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · OpenAI Responses
{
"model": "openai/gpt-6-luna-pro",
"input": [
{
"content": "Hello, how are you?",
"role": "user",
"type": "message"
}
]
}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
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
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
FAQ · OpenAI: GPT-6 Luna Pro
- Какие входные данные и результаты доступны?
POST /v1/chat/completions·openai/gpt-6-luna-pro:text→textPOST /v1/messages·openai/gpt-6-luna-pro:text→textPOST /v1/responses·openai/gpt-6-luna-pro:text→text- Какие поля использует запрос?
POST /v1/chat/completions·openai/gpt-6-luna-pro:model,messages,stream,modalities,providerPOST /v1/messages·openai/gpt-6-luna-pro:model,messages,system,max_tokens,stream,metadataPOST /v1/responses·openai/gpt-6-luna-pro:model,input,instructions,stream- Какие ограничения действуют?
POST /v1/chat/completions·openai/gpt-6-luna-pro:messages.min_items:1POST /v1/messages·openai/gpt-6-luna-pro:messages.min_items:1;max_tokens.minimum:1