Qwen: Qwen3.7 Flash
Qwen3.7 Flash — семейство визуально-языковых моделей Qwen для текста, изображений и видео с текстовым выводом. Разработчик выделяет улучшенное распознавание объектов, пространственное понимание, мультимодальную агентную работу и программирование по визуальным материалам, с включённым по умолчанию размышлением и необязательным режимом прямого ответа.
- Ailoot Ultra · Чат OpenAI
POST /v1/chat/completionsqwen/qwen3.7-flash - Ailoot Ultra · Сообщения Anthropic
POST /v1/messagesqwen/qwen3.7-flash
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Выпуск Qwen3.7 Flash
Qwen3.7 Flash — семейство нативных визуально-языковых моделей для понимания текста, изображений и видео с текстовыми ответами. Выпуск разработчика описывает усиленное мультимодальное восприятие и агентное исполнение по сравнению с Qwen3.6 Flash. Практический охват задач включает распознавание объектов, понимание визуальной сцены, рассуждение о пространственных отношениях и подготовку кода или объяснений по визуальному материалу.
Официальный выпуск называет и qwen3.7-flash, и датированный qwen3.7-flash-2026-07-15. При записи результата сохраняйте точное название модели: недатированное имя Flash не обозначает фиксированную версию производителя. Использованное здесь описание выпуска не устанавливает количество параметров открытой версии или числовое представление.
Распознавание объектов, восприятие реального мира и пространство
Дайте изображение сцены с конкретным вопросом: какой объект важен, какое отношение нужно изучить и какие видимые детали должны поддерживать ответ. Для схемы сохраняйте подписи и предоставляйте определения, необходимые для их интерпретации. Полезный вывод отделяет наблюдения от выведенных отношений, упрощая сравнение объяснения с источником.
Для нескольких изображений пометьте каждый вход и запросите сравнение, организованное по этим меткам. Для видео определите нужное событие и сохраняйте последовательность или сведения о времени. Сверяйте точные количества, пространственные измерения и наблюдения на уровне кадров с предоставленным материалом.
Мультимодальные агенты
Выпуск выделяет сценарии Search Agent и агента с интерпретатором кода, с более стабильным многошаговым исполнением. В таком процессе приложение предоставляет разрешённые инструменты, выполняет их действия и возвращает наблюдения. Модель может использовать результаты для обновления плана. Опишите цель и условие завершения и попросите итоговый артефакт плюс любые нерешённые вопросы по подтверждающим данным. Производитель перечисляет вызов функций, структурированный вывод, продолжение по префиксу и кэширование контекста. Веб-поиск поддерживается в Пекине и Сингапуре и не поддерживается в остальных перечисленных региональных областях. Пакетная обработка запросов поддерживается для пекинского псевдонима и не поддерживается в других местах; дообучение не поддерживается.
Агентную специализацию модели нельзя путать со встроенным доступом к актуальным источникам или среде исполнения в каждом интерфейсе. Когда задаче нужен поиск или запуск кода, отличайте результат, возвращённый фактическим инструментом, от предложенного действия в тексте модели. Это описание не устанавливает, какие инструменты предоставляет другое приложение.
Программирование по визуальным материалам
Qwen описывает улучшенное программирование с учётом визуального материала. Полезный запрос может объединять снимок экрана или макет с функциональными требованиями и просить редактируемый код. Укажите в переданной задаче фреймворк или форму вывода, состояния взаимодействия и ограничения. Запрашивайте сгенерированный артефакт отдельно от объяснения, чтобы процесс разработки мог проверить или отрисовать его.
Для существующего интерфейса определяйте задуманное изменение и нужный исходный контекст вместо просьбы о несвязанном редизайне. Модель может связать визуальное требование с предложением кода; это предложение не свидетельствует, что интерфейс отрисован или работает правильно. Эти примеры задач применяют заявленный разработчиком охват программирования по визуальным материалам, не добавляя гарантии исполнения.
Размышление и прямые ответы
Руководство разработчика по поддерживаемым моделям перечисляет Qwen3.7 Flash как семейство с гибридным размышлением, включённым по умолчанию. Документированный гибридный процесс может отключать размышление для прямого ответа. Отделяйте вывод рассуждений от окончательного ответа, когда интерфейс предоставляет оба. Нельзя переносить настройки отдельно названной модели Qwen-Omni или открытой плотной модели только из-за общего названия Qwen.
Используйте более глубокий анализ для визуального вопроса, связывающего несколько наблюдений; запрашивайте прямой результат для простого описания. Задавайте проверяемую итоговую структуру, например таблицу наблюдений, краткое заключение или файлы кода, вместо опоры на длину ответа как признак качества.
Ограничения и подготовка входа
Специальная страница Qwen3.7-Flash от Alibaba даёт контекст в 1,000,000 токенов, максимальный вход 991,808 токенов для прямых ответов или 983,616 для размышления и максимальный вывод 131,072 в любом режиме. Отдельно указывается максимальная длина цепочки рассуждений 262,144 токена. Сохраняйте читаемость нужных визуальных деталей, убирайте несвязанный материал и оставляйте место для требуемого результата. Сверяйте подписи объектов, пространственные выводы, извлечённый текст и предложения кода с переданными свидетельствами. Полезное описание — конкретный заявленный разработчиком охват восприятия, агентной работы и программирования по визуальным материалам, с сохранением гибридного режима ответа.
Практическая задача
Практическая задача
Технический пример на английском
Check a spatial claim from a text grid
Use this written grid description: the red box is at row 2, column 1; the blue box is at row 2, column 3; the green box is at row 1, column 3. Rows increase downward and columns increase rightward. Describe their relative positions and assess the claim that green is directly above red.Ожидаемый результат
A relative-position description and a supported assessment of the claim, citing grid coordinates.Проверка результата
Check that directly above requires the same column and that the stated row direction is respected.Ailoot Ultra · Чат OpenAI POST /v1/chat/completions qwen/qwen3.7-flash
qwen/qwen3.7-flashНачало
Qwen3.7 Flash — семейство визуально-языковых моделей Qwen для текста, изображений и видео с текстовым выводом. Разработчик выделяет улучшенное распознавание объектов, пространственное понимание, мультимодальную агентную работу и программирование по визуальным материалам, с включённым по умолчанию размышлением и необязательным режимом прямого ответа.
- Допустимые входные данные
- Текст
- Результаты
- Текст
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Чат OpenAI POST /v1/chat/completions
- Входные данные
text- Результат
text- Выходной формат
- json или SSE
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения qwen/qwen3.7-flash | По умолчанию— |
Поле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)
Ставки Ailoot
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Токенов контекста больше | Токенов контекста не более, включительно | Плата |
|---|---|---|---|---|
| КонфигурацияБазовые ставки за токены | Шкала ставокБазовая ставка | Токенов контекста больше— | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены $0.00006 / 1K токенов Выход · Выходные токены $0.00026 / 1K токенов Вход · Чтение кэша $0.000012 / 1K токенов Вход · Запись в кэш $0.000076 / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
| КонфигурацияУровень 1 по длине запроса | Шкала ставок— | Токенов контекста больше0 | Токенов контекста не более, включительно32 000 | Плата Вход · Входные токены $0.00006 / 1K токенов Выход · Выходные токены $0.00026 / 1K токенов Вход · Чтение кэша $0.000012 / 1K токенов Вход · Запись в кэш $0.000076 / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
| КонфигурацияУровень 2 по длине запроса | Шкала ставок— | Токенов контекста больше32 000 | Токенов контекста не более, включительно256 000 | Плата Вход · Входные токены $0.0002 / 1K токенов Выход · Выходные токены $0.0008 / 1K токенов Вход · Чтение кэша $0.00004 / 1K токенов Вход · Запись в кэш $0.00025 / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
| КонфигурацияУровень 3 по длине запроса | Шкала ставок— | Токенов контекста больше256 000 | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены $0.0004 / 1K токенов Выход · Выходные токены $0.0016 / 1K токенов Вход · Чтение кэша $0.00008 / 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": "qwen/qwen3.7-flash", "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='qwen/qwen3.7-flash',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='qwen/qwen3.7-flash',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 qwen/qwen3.7-flash
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
Ailoot Ultra · Сообщения Anthropic POST /v1/messages qwen/qwen3.7-flash
qwen/qwen3.7-flashНачало
Qwen3.7 Flash — семейство визуально-языковых моделей Qwen для текста, изображений и видео с текстовым выводом. Разработчик выделяет улучшенное распознавание объектов, пространственное понимание, мультимодальную агентную работу и программирование по визуальным материалам, с включённым по умолчанию размышлением и необязательным режимом прямого ответа.
- Допустимые входные данные
- Текст
- Результаты
- json · sse
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Сообщения Anthropic POST /v1/messages
- Входные данные
text- Результат
json,sse- Выходной формат
- JSON или SSE
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения qwen/qwen3.7-flash | По умолчанию— |
Полеmessages | Типmessage[] | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
Полеmessages[].role | Типstring | ТребованиеОбязательно | Значения и ограничения user, assistant | По умолчанию— |
Полеmessages[].content | Типstring | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
Полеmax_tokens | Типinteger | ТребованиеОбязательно | Значения и ограничения | По умолчанию— |
Полеstream | Типboolean | ТребованиеНеобязательно | Значения и ограничения | По умолчаниюfalse |
Сочетания входных материалов
Текст · Текст UTF-8
строка messages[].content
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, messages, max_tokens |
Параметрoptional_controls | Контрактstream |
Параметрmaterial_types | Контрактtext |
Параметрtext_file_material | КонтрактПрочитайте фактический документ UTF-8 и поместите его текст в указанную строку входа или содержимого сообщения. |
Жизненный цикл: synchronous_or_streamed
Тарифы
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Стандартный тариф При выборе быстрого режима
- Режим flex
- Стандартный тариф При выборе режима flex
- Максимальная интенсивность рассуждений
- Стандартный тариф При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Ставки Ailoot
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Токенов контекста больше | Токенов контекста не более, включительно | Плата |
|---|---|---|---|---|
| КонфигурацияБазовые ставки за токены | Шкала ставокБазовая ставка | Токенов контекста больше— | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены $0.00006 / 1K токенов Выход · Выходные токены $0.00026 / 1K токенов Вход · Чтение кэша $0.000012 / 1K токенов Вход · Запись в кэш $0.000076 / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
| КонфигурацияУровень 1 по длине запроса | Шкала ставок— | Токенов контекста больше0 | Токенов контекста не более, включительно32 000 | Плата Вход · Входные токены $0.00006 / 1K токенов Выход · Выходные токены $0.00026 / 1K токенов Вход · Чтение кэша $0.000012 / 1K токенов Вход · Запись в кэш $0.000076 / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
| КонфигурацияУровень 2 по длине запроса | Шкала ставок— | Токенов контекста больше32 000 | Токенов контекста не более, включительно256 000 | Плата Вход · Входные токены $0.0002 / 1K токенов Выход · Выходные токены $0.0008 / 1K токенов Вход · Чтение кэша $0.00004 / 1K токенов Вход · Запись в кэш $0.00025 / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
| КонфигурацияУровень 3 по длине запроса | Шкала ставок— | Токенов контекста больше256 000 | Токенов контекста не более, включительноБез верхней границы | Плата Вход · Входные токены $0.0004 / 1K токенов Выход · Выходные токены $0.0016 / 1K токенов Вход · Чтение кэша $0.00008 / 1K токенов Вход · Запись в кэш $0.0005 / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Сообщения Anthropic
{
"model": "qwen/qwen3.7-flash",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}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': 'qwen/qwen3.7-flash', 'max_tokens': 128, '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': 'qwen/qwen3.7-flash', 'max_tokens': 128, '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 qwen/qwen3.7-flash
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
FAQ · Qwen: Qwen3.7 Flash
- Какие входные данные и результаты доступны?
POST /v1/chat/completions·qwen/qwen3.7-flash:text→textPOST /v1/messages·qwen/qwen3.7-flash:text→json,sse- Какие поля использует запрос?
POST /v1/chat/completions·qwen/qwen3.7-flash:model,messages,stream,modalities,providerPOST /v1/messages·qwen/qwen3.7-flash:model,messages,max_tokens,stream- Какие ограничения действуют?
POST /v1/chat/completions·qwen/qwen3.7-flash:messages.min_items:1