models

Meta: Muse Spark 1.3 Contributor

Markdown · JSON

Meta: Muse Spark 1.3 Contributor

Muse Spark 1.3 Contributor — версия с рассуждением в агентном и программном семействе Meta для создания прототипов. Разработчик указывает приём текста, изображений, видео и PDF, текстовый выход и контекст 1 048 576 токенов; уровни рассуждения доступны до xhigh, в отличие от max у Standard 1.3.

О модели

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

Muse Spark 1.3 Contributor — отдельно именованная версия семейства Muse Spark от Meta для создания прототипов и экспериментов. Семейство предназначено для агентных задач и работы с кодом: многошаговых циклов использования инструментов, программных ассистентов и рассуждения по значительному объёму исходных материалов. При выборе версии сохраняйте название Contributor, а не считайте её записью Standard 1.3 с переносом всех настроек без изменений.

Входные данные и контекст

В официальной таблице моделей перечислены текст, изображения, видео и PDF как входные данные и текст как выход, с контекстным окном 1 048 576 токенов. Задача может сочетать письменное требование, скриншот, подходящий ролик или страницы документа и запрашивать письменное объяснение, структурированные выводы или предлагаемый код. Текстовый результат модели может стать материалом в окружающем приложении; для отрисовки страницы или выполнения кода нужна среда этого приложения.

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

Разработчик отмечает, что понимание аудио в версии 1.3 поддерживается не полностью и может давать менее качественные ответы. Рассматривайте это как ограничение конкретной версии, не перенося в это описание аудиовозможности Muse Spark 1.2 или отдельно именованной модели транскрибации.

Уровни рассуждения и объём ответа

Muse Spark создаёт внутреннее рассуждение перед видимым ответом. Здесь применимы документированные уровни усилия minimal, low, medium, high и xhigh. Уровень max относится именно к Standard Muse Spark 1.3 и недоступен моделям Contributor. Отключение рассуждения через none не поддерживается; если настройка не указана, модель всё равно рассуждает на самостоятельно определённом уровне.

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

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

Инструменты и структурированные выводы

Документация Muse Spark разработчика описывает вызов инструментов, определённых разработчиком приложения, и структурированный вывод. Приложение предоставляет определения инструментов, модель решает, какая операция нужна, и готовит её аргументы, а приложение выполняет каждый вызов и возвращает соответствующий результат. Следующий ответ может использовать эти результаты для выбора дальнейшего действия. Предлагаемый вызов отличается от завершённой операции.

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

Для структурированного извлечения задайте названия полей, обязательную информацию и представление отсутствующих значений. Практическая запись может содержать идентификатор источника, наблюдаемый факт, интерпретацию и вопрос, который ещё требует уточнения. Отделяйте запись от необязательного текста, если приложение должно надёжно обрабатывать поля. Интерфейс схем разработчика отклоняет рекурсивные схемы и ограничивает вложенность десятью уровнями. Его строгий режим требует обычного объекта в корне, обязательности каждого перечисленного свойства и запрета дополнительных свойств. Соответствие структуре не доказывает фактическую правильность.

Полезная задача для прототипа

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

Для прототипа, работающего с документами, передайте PDF и вопрос, затем запросите сводку со ссылками на источники или таблицу сравнения. Для видео обозначьте событие или визуальную взаимосвязь для изучения и запросите последовательное описание с подтверждающими наблюдениями. Определите длину и разделы итогового ответа, чтобы большой контекст модели служил текущему вопросу.

Границы версии и продолжения диалога

Contributor остаётся самостоятельной именованной версией 1.3 с документированными контекстом и типами ввода. Руководство Meta по рассуждению различает обычную историю диалога и сохранение приватного рассуждения между ходами: интерфейс чата разработчика не возвращает эту приватную цепочку внешним клиентам. Сохраняйте видимые сообщения, источники и результаты инструментов, необходимые для следующего запроса, вместо предположения, что каждый интерфейс переносит внутреннее рассуждение дальше.

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

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

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

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

Prototype and test a text-only helper

Design a small Python prototype for an appointment reminder. Input records contain id and minutes_until_start. Return IDs where 0 <= minutes_until_start <= 30, preserving input order. Supply the function and cases at -1, 0, 30 and 31 minutes. Include a short note on assumptions; no calendar connection or reminder sending is available.

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

A self-contained function, boundary-case assertions and explicit assumptions about input fields.

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

Exactly the 0- and 30-minute records qualify, and the function does not send messages or assume calendar access.
Ailoot Ultra · Чат OpenAI POST /v1/chat/completions meta/muse-spark-1.3-contributor

meta/muse-spark-1.3-contributor

Meta /meta/muse-spark-1.3-contributor

Начало

Muse Spark 1.3 Contributor — версия с рассуждением в агентном и программном семействе Meta для создания прототипов. Разработчик указывает приём текста, изображений, видео и PDF, текстовый выход и контекст 1 048 576 токенов; уровни рассуждения доступны до xhigh, в отличие от max у Standard 1.3.

Допустимые входные данные
Текст
Результаты
Текст

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

Ailoot Ultra · Чат OpenAI POST /v1/chat/completions
Входные данные
text
Результат
text
Выходной формат
json или SSE
ПолеТипТребованиеЗначения и ограниченияПо умолчанию
ПолеmodelТипstringТребованиеОбязательноЗначения и ограничения
meta/muse-spark-1.3-contributor
По умолчанию—
Поле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)
Интенсивность рассуждений · минимальная (minimal)
Стандартный тариф При минимальной интенсивности рассуждений (minimal)
Интенсивность рассуждений · xhigh
Стандартный тариф При интенсивности рассуждений xhigh

Ставки Ailoot

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

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

КонфигурацияШкала ставокТокенов контекста большеТокенов контекста не более, включительноПлата
КонфигурацияБазовые ставки за токеныШкала ставокБазовая ставкаТокенов контекста больше—Токенов контекста не более, включительноБез верхней границыПлата
Вход · Входные токены $0.0002 / 1K токенов
Выход · Выходные токены $0.0004 / 1K токенов
Вход · Чтение кэша $0.000004 / 1K токенов
Вход · Запись в кэш — / 1K токенов
Вход · Запись в кэш, 1 час — / 1K токенов
КонфигурацияУровень 1 по длине запросаШкала ставок—Токенов контекста больше0Токенов контекста не более, включительноБез верхней границыПлата
Вход · Входные токены $0.0002 / 1K токенов
Выход · Выходные токены $0.0004 / 1K токенов
Вход · Чтение кэша $0.000004 / 1K токенов
Вход · Запись в кэш — / 1K токенов
Вход · Запись в кэш, 1 час — / 1K токенов

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →

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

Ailoot Ultra · Чат OpenAI

curlPython SDKПоток Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "meta/muse-spark-1.3-contributor", "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='meta/muse-spark-1.3-contributor',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='meta/muse-spark-1.3-contributor',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 meta/muse-spark-1.3-contributor

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

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

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

meta/muse-spark-1.3-contributor

Ailoot Ultra · Сообщения Anthropic POST /v1/messages meta/muse-spark-1.3-contributor

meta/muse-spark-1.3-contributor

Meta /meta/muse-spark-1.3-contributor

Начало

Muse Spark 1.3 Contributor — версия с рассуждением в агентном и программном семействе Meta для создания прототипов. Разработчик указывает приём текста, изображений, видео и PDF, текстовый выход и контекст 1 048 576 токенов; уровни рассуждения доступны до xhigh, в отличие от max у Standard 1.3.

Допустимые входные данные
Текст
Результаты
json · sse

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

Ailoot Ultra · Сообщения Anthropic POST /v1/messages
Входные данные
text
Результат
json, sse
Выходной формат
JSON или SSE
ПолеТипТребованиеЗначения и ограниченияПо умолчанию
ПолеmodelТипstringТребованиеОбязательноЗначения и ограничения
meta/muse-spark-1.3-contributor
По умолчанию—
Поле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)
Интенсивность рассуждений · высокая (high)
Стандартный тариф При высокой интенсивности рассуждений (high)
Интенсивность рассуждений · низкая (low)
Стандартный тариф При низкой интенсивности рассуждений (low)
Интенсивность рассуждений · max
Стандартный тариф При интенсивности рассуждений max
Интенсивность рассуждений · средняя (medium)
Стандартный тариф При средней интенсивности рассуждений (medium)
Интенсивность рассуждений · минимальная (minimal)
Стандартный тариф При минимальной интенсивности рассуждений (minimal)
Интенсивность рассуждений · xhigh
Стандартный тариф При интенсивности рассуждений xhigh

Ставки Ailoot

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

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

КонфигурацияШкала ставокТокенов контекста большеТокенов контекста не более, включительноПлата
КонфигурацияБазовые ставки за токеныШкала ставокБазовая ставкаТокенов контекста больше—Токенов контекста не более, включительноБез верхней границыПлата
Вход · Входные токены $0.0002 / 1K токенов
Выход · Выходные токены $0.0004 / 1K токенов
Вход · Чтение кэша $0.000004 / 1K токенов
Вход · Запись в кэш — / 1K токенов
Вход · Запись в кэш, 1 час — / 1K токенов
КонфигурацияУровень 1 по длине запросаШкала ставок—Токенов контекста больше0Токенов контекста не более, включительноБез верхней границыПлата
Вход · Входные токены $0.0002 / 1K токенов
Выход · Выходные токены $0.0004 / 1K токенов
Вход · Чтение кэша $0.000004 / 1K токенов
Вход · Запись в кэш — / 1K токенов
Вход · Запись в кэш, 1 час — / 1K токенов

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →

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

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

Полное минимальное тело запроса в формате JSONcurl · используйте свой документ UTF-8Python · сохраните полный результат
{
  "model": "meta/muse-spark-1.3-contributor",
  "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': 'meta/muse-spark-1.3-contributor', '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': 'meta/muse-spark-1.3-contributor', '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 meta/muse-spark-1.3-contributor

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

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

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

meta/muse-spark-1.3-contributor

FAQ · Meta: Muse Spark 1.3 Contributor
Какие входные данные и результаты доступны?

POST /v1/chat/completions · meta/muse-spark-1.3-contributor: text → text

POST /v1/messages · meta/muse-spark-1.3-contributor: text → json, sse

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

POST /v1/chat/completions · meta/muse-spark-1.3-contributor: model, messages, stream, modalities, provider

POST /v1/messages · meta/muse-spark-1.3-contributor: model, messages, max_tokens, stream

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

POST /v1/chat/completions · meta/muse-spark-1.3-contributor: messages.min_items: 1

Подробнее

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

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

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

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

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

Подписка
Выберите тариф со скидкой для своих регулярных запросов.
Промокод до 50%
Введите код при покупке. Цена пересчитается с учётом действующей акции.
Расходы в истории
Модель, токены и сумма сохраняются для каждого запроса.

Выбрать подписку · Посмотреть цены моделей

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

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

Коммерческое приложение
Встраивайте генерацию текста, картинок, видео и звука в платные функции своего сервиса.
Лицензия для реселлера
Пришлите описание проекта и схему доступа. Запросите письменные условия использования и перепродажи.
Документы на сайте
Оферта, лицензионный договор и политика обработки данных доступны до подключения.

Запросить реселлерскую лицензию · Оферта и лицензионный договор