Тема
Язык
·6 мин. чтения

Muse Spark 1.3 API: как использовать reasoning-модель Meta без пустых ответов

Muse Spark 1.3 от Meta выполняет глубокое рассуждение перед ответом. Идентификатор модели, актуальная цена, контекст на 1M токенов, почему параметру max_tokens нужно задавать щедрое значение, результаты измерений reasoning_effort, код на Python и ответы на часто задаваемые вопросы.

Muse Spark 1.3 API: как использовать reasoning-модель Meta без пустых ответов

Muse Spark 1.3 — универсальная reasoning-модель от Meta с поддержкой вызова инструментов, JSON-режима и контекстом на 1M токенов. GetVibe API предоставляет к ней доступ через стандартный OpenAI-совместимый endpoint, поэтому вы можете вызывать её уже имеющимся кодом. Перед началом нужно знать одну вещь: Muse Spark много думает перед ответом, и если оставить небольшое значение max_tokens, вы получите пустой ответ. В этом руководстве показаны идентификатор модели, цена, результаты наших измерений и настройка, которая гарантирует корректную работу с первого раза.

Единственная важная настройка: max_tokens

Как и другие reasoning-модели, Muse Spark сначала генерирует скрытые reasoning-токены, а затем видимый ответ. Эти токены учитываются в max_tokens и тарифицируются как output. Muse Spark отличается объёмом рассуждений: согласно данным нашего каталога, на короткий вопрос требуется примерно от 650 до 5,400 reasoning-токенов.

Мы сами наблюдали такую же закономерность. Мы задали однострочный арифметический вопрос (сколько длится поездка на поезде с 14:35 до 18:10) и получили правильный ответ в одном предложении, но посмотрите на распределение токенов:

  • Видимый ответ: около 20 токенов («Поездка длится 3 часа 35 минут.»)
  • Рассуждение: 514 токенов
  • Всего тарифицировано output-токенов: 534

Если бы значение max_tokens составляло 256, модель исчерпала бы бюджет в процессе рассуждения и вернула пустое сообщение с finish_reason: "length". Решение простое: дайте ей достаточно места. Для коротких вопросов используйте как минимум 4,000; для задач с кодом или несколькими шагами разумным будет значение от 8,000 до 16,000. Вы платите только за фактически сгенерированные токены, а не за установленный лимит, поэтому высокий предел ничего не стоит дополнительно на простых запросах.

Характеристики и цена

  • Идентификатор модели: muse-spark-1.3
  • Разработчик: Meta
  • Цена: от $0.8875 вход · $3.0175 выход за 1 млн токенов.
  • Кэшированный input: одна десятая обычной ставки за input для повторяющихся префиксов промпта.
  • Контекстное окно: 1,048,576 токенов.
  • Уровень рассуждений: minimal, low, medium, high, xhigh, max. Рассуждения тарифицируются как output.
  • Вызов инструментов и JSON-режим: поддерживаются.
  • Input: только текст (без изображений).

Указано «от», потому что GetVibe сначала направляет каждый запрос по самому дешёвому работоспособному каналу, а если он занят, использует резервный. Поэтому запрос иногда может стоить дороже минимальной цены. На странице модели Muse Spark 1.3 показан актуальный диапазон, а в панели управления отображается фактическая стоимость каждого запроса; см. баланс и использование.

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

Как подключиться

Получите API-ключ в аккаунте GetVibe, укажите https://getvibeapi.com/v1 в качестве endpoint для любого OpenAI-клиента и используйте идентификатор модели muse-spark-1.3.

Python с OpenAI SDK

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://getvibeapi.com/v1",
    api_key=os.environ["GETVIBE_API_KEY"],
)

resp = client.chat.completions.create(
    model="muse-spark-1.3",
    messages=[{"role": "user", "content": "A train leaves at 14:35 and arrives at 18:10. How long is the trip? Answer in one sentence."}],
    max_tokens=8000,  # generous: reasoning tokens count toward this limit
)
print(resp.choices[0].finish_reason)
print(resp.usage.completion_tokens, resp.usage.completion_tokens_details.reasoning_tokens)
print(resp.choices[0].message.content)

Наш запуск 22 октября 2026 года вывел это примерно за четыре секунды:

stop
534 514
The trip lasts 3 hours and 35 minutes.

В рабочей среде всегда проверяйте finish_reason. Значение stop означает, что модель завершила работу; length — что она достигла установленного вами лимита, поэтому ответ может отсутствовать или быть обрезан.

curl

curl https://getvibeapi.com/v1/chat/completions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "muse-spark-1.3",
    "messages": [{"role": "user", "content": "Summarize the trade-offs of SQLite vs PostgreSQL for a small SaaS in five bullets."}],
    "max_tokens": 8000
  }'

В нашем запуске ответ пришёл с finish_reason: "stop" и содержал пять чётких пунктов (эксплуатация, параллелизм, возможности, надёжность, стоимость и перспективность), а также такие показатели использования: 27 prompt-токенов, 998 completion-токенов, из которых 704 были reasoning-токенами. Иными словами, около 70% тарифицируемого output составляло невидимое рассуждение.

Как уменьшить объём рассуждений с помощью reasoning_effort

Muse Spark принимает стандартный параметр reasoning_effort с шестью уровнями — от minimal до max. Более низкий уровень сокращает число reasoning-токенов, благодаря чему ответы становятся быстрее и дешевле. Мы отправили один и тот же вопрос о поездке на двух уровнях:

  • reasoning_effort="low": 315 reasoning-токенов, всего 335 output-токенов, правильный ответ.
  • reasoning_effort="high": 439 reasoning-токенов, всего 459 output-токенов, такой же правильный ответ.

Даже при значении low модель использовала около 300 токенов на рассуждение для тривиального вопроса, поэтому снижение уровня не означает, что можно безопасно уменьшить max_tokens до нескольких сотен. Длина рассуждений также меняется от запуска к запуску: в нашем запуске с уровнем по умолчанию её значение было больше, чем при high. Используйте низкий уровень для обычного трафика, а high и выше оставляйте для задач, которым это действительно необходимо. Подробнее см. в статье о reasoning effort.

Инструменты, JSON и длинный контекст

Вызов инструментов использует стандартный массив tools и tool_calls в ответе, поэтому существующие agent-фреймворки работают без изменений; см. вызов инструментов. Для машиночитаемого вывода поддерживается JSON-режим; в нашем руководстве по JSON-режиму объясняются различия между моделями.

Окно на 1M токенов позволяет передавать большие документы или длинные истории агента в одном запросе. Если один и тот же большой префикс отправляется повторно в каждом запросе, он тарифицируется по ставке для кэша — одной десятой обычной стоимости input. О том, как сохранить префикс удобным для кэширования, см. в статье о кэшировании промптов.

Когда выбирать Muse Spark 1.3

  • Подходит: для вопросов, где важнее тщательный проверенный ответ, чем скорость; для агентов, вызывающих инструменты; для чтения больших контекстов по умеренной цене.
  • Менее подходит: для очень коротких высокочастотных запросов, где важен каждый output-токен, и для любых задач, требующих input-изображений. В таких случаях дешёвым вариантом будет быстрая нерезонансная модель; см. самые дешёвые LLM API для больших объёмов.

Потоковая передача ответов, чтобы пользователи не смотрели на пустой экран

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

stream = client.chat.completions.create(
    model="muse-spark-1.3",
    messages=[{"role": "user", "content": "Plan a three-step database migration with rollback."}],
    max_tokens=16000,
    stream=True,
    stream_options={"include_usage": True},
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\n", chunk.usage)

Оставляйте include_usage включённым: тогда последний chunk содержит количество токенов, включая reasoning-токены, за которые вы платите.

Распространённые ошибки

  • Повторное использование лимитов от нерезонансной модели. Значение max_tokens 256 или 512, работавшее с chat-моделью, здесь приведёт к пустым ответам.
  • Оценка стоимости по видимому тексту. В двух наших тестовых запросах reasoning составлял от 70 до 96% output-токенов. Логируйте usage, а не количество символов.
  • Отправка изображений. Модель работает только с текстом; удаляйте части с изображениями или направляйте такие запросы в vision-модель.
  • Одинаковая обработка всех запросов. Используйте уровень low или minimal для простых справочных запросов, а более высокие уровни оставляйте для планирования и анализа.

FAQ

Почему Muse Spark 1.3 возвращает пустой ответ?

Почти всегда причина в том, что значение max_tokens слишком мало. Модель расходует бюджет на скрытое рассуждение и останавливается с finish_reason: "length", не успев написать ответ. Увеличьте лимит до 4,000 или более для коротких задач и до 8,000–16,000 для сложных.

Каков идентификатор модели?

muse-spark-1.3, отправляемый на https://getvibeapi.com/v1/chat/completions.

Сколько это стоит?

От $0.8875 вход · $3.0175 выход за 1 млн токенов. Reasoning-токены тарифицируются как output, поэтому смотрите на usage.completion_tokens, а не на длину видимого ответа.

Принимает ли Muse Spark 1.3 изображения?

Нет, input поддерживает только текст. Для снимков экрана и диаграмм используйте vision-модель, например Gemini 4 Argon.

Могу ли я увидеть рассуждения?

Сами рассуждения не возвращаются; вы получаете их количество в токенах в usage.completion_tokens_details.reasoning_tokens, чего достаточно для контроля стоимости.

Muse Spark 1.3 APImuse-spark-1.3Meta Muse SparkMuse Spark max_tokensMuse Spark пустой ответGetVibe API

Попробуйте GetVibe API бесплатно

GPT, Claude, Gemini и другие модели через единый API, совместимый с OpenAI. Оплата в USD картой или криптовалютой.

Похожие статьи

Muse Spark 1.3 API: как использовать reasoning-модель Meta без пустых ответов | GetVibe API