> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apiyi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Генерация текста Qwen3.8-Max

> Флагманский Qwen3.8-Max от Alibaba Qwen: sparse MoE с 2.4T параметров, контекст 1M, вывод 131K, нативный ввод изображений и видео. Размещен на APIYI по $1.65/$4.95 за 1M tokens — на 17.5% ниже официальной цены. Включает матрицу возможностей и подводные камни, выявленные в 586 живых тестовых вызовах.

Qwen3.8-Max (`qwen3.8-max`) — новый флагман Alibaba Qwen, выпущенный 3 августа 2026 года. Это sparse MoE model с 2,4 трлн общих параметров, **контекстным окном 1M**, максимальным output 131K и нативной поддержкой ввода текста, изображений и видео. APIYI добавил его в день релиза и выполнил по нему **586 живых тестовых вызовов** — матрица возможностей, поведение параметров и заметки по тарификации на этой странице основаны именно на этих тестах, а не на пересказе официальной документации.

<Info>
  **Qwen3.8-Max доступен на APIYI**: имя модели `qwen3.8-max`. **Thinking включен по умолчанию** (на уровне `xhigh`, а thinking tokens тарифицируются как output), поэтому для повседневного чата явно задавайте `reasoning_effort="none"` — в тестах это снизило output примерно со 158 tokens до 5. Для предыдущего поколения см. [Серия Qwen3.6 (legacy)](/ru/api-capabilities/qwen-3-6/overview).
</Info>

## Почему эта модель

<CardGroup cols={2}>
  <Card title="17.5％ ниже официальной" icon="tag">
    \$1.65 за input, \$4.95 за output на 1M tokens против \$2/\$6 у Alibaba Cloud. [Акции на пополнение](/ru/faq/recharge-promotions) суммируются дополнительно.
  </Card>

  <Card title="Контекст 1M, подтверждено" icon="scroll">
    На корпусах 8K / 32K / 128K с маркерами, размещенными в середине документа и в конце, оба эндпоинта точно воспроизвели **все 6/6**. Вызов на 128K занимает около 80 секунд.
  </Card>

  <Card title="Три модальности, одна модель" icon="eye">
    Работа с input текстом, изображениями и видео — все подтверждено как работающее; не нужно переключаться между «long-context model» и «vision model».
  </Card>

  <Card title="Значительно более сильная агентная работа" icon="wrench">
    FrontierSWE вырос с 40.7 у предыдущего поколения до **73.5**, DeepSWE — с 21.6 до 56.6. Цепочка вызова tools завершена, подтверждены round-trip в два раунда.
  </Card>
</CardGroup>

## Поддержка эндпоинтов

| Эндпоинт               | Статус                                       | Примечания                                                                                                        |
| ---------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `/v1/chat/completions` | ✅ Полностью работает                         | **Рекомендуется.** Подтверждены вызов tools, структурированный вывод, мультимодальность и потоковая передача      |
| `/v1/messages`         | ⚠️ Можно использовать для интеграции с кодом | Удаляйте блоки `thinking` перед повторным воспроизведением истории — см. «Использование эндпоинта Anthropic» ниже |
| `/v1/responses`        | ❌ Пока не поддерживается                     | Все 30 тестовых вызовов завершились неудачей; сообщено со стороны upstream                                        |

## Тарификация

За 1 млн tokens, прейскурантная цена до скидок:

| Позиция               | APIYI         | Alibaba Cloud | Разница       |
| --------------------- | ------------- | ------------- | ------------- |
| Ввод                  | **\$1.65**    | \$2.00        | на 17.5％ ниже |
| Вывод (вкл. thinking) | **\$4.95**    | \$6.00        | на 17.5％ ниже |
| Чтение из кэша        | **\$0.20625** | \$0.25        | на 17.5％ ниже |
| Запись в кэш          | **\$2.0625**  | —             | —             |

[Акции на пополнение](/ru/faq/recharge-promotions) суммируются и позволяют снизить фактическую стоимость.

## Specifications

| Item                            | Value                                                                         |
| ------------------------------- | ----------------------------------------------------------------------------- |
| Название модели                 | `qwen3.8-max`                                                                 |
| Архитектура                     | Sparse MoE, 2.4 триллиона параметров всего                                    |
| Контекстное окно                | 1M tokens (991K input без рассуждения, 983K с рассуждением)                   |
| Максимальный вывод              | 131,072 tokens (запросы вне диапазона возвращают явную границу `[1, 131072]`) |
| Максимальный бюджет рассуждения | 262K tokens                                                                   |
| Режим рассуждения               | Включен по умолчанию, уровень `xhigh`                                         |
| Модальности ввода               | Текст, изображение, видео                                                     |
| Скорость вывода                 | \~19–22 tokens/s (измерено)                                                   |
| Время до первого token          | \~1.85 s при потоковой передаче (измерено, P50)                               |

Официальные бенчмарки: GPQA Diamond 92.6, PaperBench 93.0, OmniDocBench 1.5 92.1, Terminal-Bench 2.1 86.6, OSWorld-Verified 86.1, IFBench 82.8, FrontierSWE 73.5, SWE-bench Pro 67.7.

## Управление рассуждением (самый важный раздел)

Qwen3.8-Max **по умолчанию выполняет рассуждение** на уровне `xhigh`. Токены рассуждения тарифицируются как output и часто составляют более 90％ от него.

### Семь значений, четыре реальных уровня

Параметр принимает 7 значений, но на практике соответствует только **4 реальным уровням**:

| Переданное значение      | Фактический уровень                      | Измеренное рассуждение |
| ------------------------ | ---------------------------------------- | ---------------------- |
| `none`                   | Рассуждение выключено                    | 0 tokens               |
| `minimal` / `low`        | Низкий                                   | \~100 tokens           |
| `medium`                 | Средний                                  | \~150 tokens           |
| `high` / `xhigh` / `max` | Уровень по умолчанию (все три одинаковы) | \~150–175 tokens       |

Передача `max` не заставляет рассуждать сильнее, чем `xhigh`. Любое другое значение возвращает 400 с перечнем допустимых значений.

### Как выключить рассуждение

```python theme={null}
response = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[{"role": "user", "content": "Hello"}],
    reasoning_effort="none",
    max_tokens=500,
)
```

`enable_thinking: false` в `extra_body` и `chat_template_kwargs: {"enable_thinking": false}` эквивалентны и тоже работают.

<Warning>
  **`max_tokens` не ограничивает токены рассуждения.** Мы задали `max_tokens=1` и все равно были тарифицированы за **1,054** output tokens, из них 1,045 — за рассуждение.

  `max_tokens` только обрезает видимый ответ. **Используйте `reasoning_effort`, чтобы управлять стоимостью — не полагайтесь на `max_tokens`.**
</Warning>

### `thinking_budget` не влияет

Передача 128 / 512 / 4096 ведет себя точно так же, как уровень `low`; само число игнорируется. **Используйте `reasoning_effort` вместо этого.**

## Примеры кода

### Python (совместимо с OpenAI SDK)

```python theme={null}
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-apiyi-key",
    base_url="https://api.apiyi.com/v1"
)

# Everyday chat: thinking off, fast and cheap
resp = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[{"role": "user", "content": "Explain load balancing in one sentence."}],
    reasoning_effort="none",
    max_tokens=500,
)
print(resp.choices[0].message.content)

# Hard reasoning: keep the default thinking tier
resp = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[{"role": "user", "content": "Prove that among any 5 integers, some 3 sum to a multiple of 3."}],
    max_tokens=4000,
)
print(resp.choices[0].message.reasoning_content)  # thinking trace
print(resp.choices[0].message.content)            # final answer
```

### Ввод изображения

```python theme={null}
import base64

with open("chart.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

resp = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[{"role": "user", "content": [
        {"type": "text", "text": "What number is written in this image?"},
        {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},
    ]}],
    max_tokens=500,
)
```

Удаленные URL-адреса изображений также работают на этом эндпоинте — просто задайте `url` как адрес `https://...`.

### Ввод видео

```python theme={null}
resp = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[{"role": "user", "content": [
        {"type": "text", "text": "What happens in this video?"},
        {"type": "video_url", "video_url": {"url": f"data:video/mp4;base64,{b64_video}"}},
    ]}],
    max_tokens=1000,
)
```

<Tip>
  В тестировании понимание видео занимало **144–285 секунд** на каждый вызов. Установите тайм-аут клиента выше 300 секунд и предпочитайте потоковую передачу или асинхронную очередь задач.
</Tip>

Также есть форма с последовательностью кадров, `{"type": "video", "video": [frame1, frame2, ...]}`, которая требует **4–8000 кадров** — если кадров меньше 4, возвращается 400.

### cURL

```bash theme={null}
curl https://api.apiyi.com/v1/chat/completions \
  -H "Authorization: Bearer sk-your-apiyi-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.8-max",
    "messages": [{"role": "user", "content": "Hello"}],
    "reasoning_effort": "none"
  }'
```

## Вызов инструментов

Вызов инструментов на эндпоинте Chat Completions полностью работает: один инструмент, параллельные инструменты, двухраундовый round-trip, выбор 1 из 20 инструментов, дельты при потоковой передаче и `parallel_tool_calls: false` — все подтверждено.

<Warning>
  **Принудительные вызовы инструментов требуют отключенного thinking.** Когда `tool_choice` имеет значение `"required"` или указывает на конкретную функцию, вам также нужно задать `reasoning_effort="none"` — иначе вы получите 400 (`tool_choice does not support being set to required or object in thinking mode`) или вызов будет пропущен без ошибки.

  `tool_choice`, установленный на `"auto"` / `"none"`, не затрагивается. То же относится к `n > 1`.
</Warning>

```python theme={null}
resp = client.chat.completions.create(
    model="qwen3.8-max",
    messages=[{"role": "user", "content": "What's the weather in Beijing?"}],
    tools=tools,
    tool_choice={"type": "function", "function": {"name": "get_weather"}},
    reasoning_effort="none",   # required
)
```

## Структурированный вывод

`response_format` с `json_schema`, строго соблюдаемым в тестировании: вложенные объекты, enums, arrays и `additionalProperties: false` все сработали, без дополнительных полей и без Markdown-fences.

<Tip>
  **Отключите рассуждение для структурированного вывода.** Та же схема, измерено бок о бок:

  | Конфигурация                              | Output tokens | Из них рассуждение | Задержка |
  | ----------------------------------------- | ------------- | ------------------ | -------- |
  | `json_schema` + рассуждение по умолчанию  | 4,066         | 3,971              | 100 s    |
  | `json_schema` + `reasoning_effort="none"` | 154           | 0                  | 4.7 s    |

  Соответствие было идентичным; стоимость и задержка отличаются на порядок.
</Tip>

## Кэширование контекста

* **Порог попадания около 1,024 tokens**: префикс из 818 tokens не попал в кэш; 1,070 tokens и выше попадали
* **Реальные многотуровые беседы действительно дают попадания**: при добавлении сообщений по раундам попадание было в каждом раунде
* **Длинные документы выигрывают больше всего**: 98.6％ закэшированного ввода при 128K, 99.3％ при 32K

<Warning>
  Попадания в кэш были **нестабильны** при тестировании — один и тот же префикс в одних раундах попадал в кэш, а в других нет, и TTL нельзя надежно вывести из ответа API. Рассматривайте кэширование как бонус, когда оно срабатывает; **не стройте на нем прогнозы затрат.**
</Warning>

## Использование эндпоинта Anthropic

`/v1/messages` подходит для интеграции с кодом, но вы **должны удалить блоки `thinking` перед повторным воспроизведением истории**, иначе получите 400 (`if content is list. item must be dict and key[type] should in dict`).

```python theme={null}
def strip_thinking(blocks):
    return [b for b in blocks if b.get("type") != "thinking"]

messages.append({"role": "assistant", "content": strip_thinking(resp["content"])})
```

С этим фильтром мы проверили память между ходами на 3 сообщения, двухраундовый обмен с tool и сохранение результатов tool в последующих ходах.

<Warning>
  **Готовые клиенты, такие как Claude Code, пока не подходят для использования** — по умолчанию они дословно воспроизводят контент-блоки из истории, и их поведение нельзя изменить, поэтому на втором ходе возвращается 400. Используйте `/v1/chat/completions` вместо этого.
</Warning>

Другие отличия этого эндпоинта: `response_format` игнорируется без предупреждения (для структурированного вывода принудительно вызывайте tool), `tool_choice` принимает только формат OpenAI, изображения должны быть в base64 (внешние URL возвращают 400), а `reasoning_effort` не имеет эффекта (используйте `thinking: {"type": "disabled"}`, чтобы отключить thinking).

## Совместимость параметров

| Параметр                                           | Статус | Примечания                                                                                             |
| -------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------ |
| `temperature`                                      | ✅      | Допустимый диапазон `[0.0, 2.0)`; при передаче 2 возвращается 400                                      |
| `top_p`                                            | ✅      | Допустимый диапазон `(0.0, 1.0]`                                                                       |
| `top_k` / `presence_penalty` / `frequency_penalty` | ✅      |                                                                                                        |
| `stop` / `stop_sequences`                          | ✅      | Работает на обоих эндпоинтах                                                                           |
| `logprobs` / `top_logprobs`                        | ✅      |                                                                                                        |
| `stream` + `stream_options`                        | ✅      | Потоковая передача всегда возвращает usage; длинные потоки завершаются корректно без зависания в конце |
| `partial: true`                                    | ✅      | Продолжение по префиксу; во время продолжения рассуждение не выполняется                               |
| `n > 1`                                            | ⚠️     | Требует `reasoning_effort="none"`                                                                      |
| `seed`                                             | ❌      | При одном и том же seed получался разный вывод — детерминизм не гарантируется                          |
| `prefix: true`                                     | ❌      | Не влияет; используйте `partial: true`                                                                 |
| `thinking_budget`                                  | ❌      | Числовое значение игнорируется                                                                         |
| Встроенный веб-поиск                               | ❌      | И `enable_search`, и `tools: [{"type": "web_search"}]` незаметно отбрасываются                         |

## Лучшие практики

<CardGroup cols={2}>
  <Card title="Повседневный чат и высоконагруженные вызовы" icon="zap">
    Явно задайте `reasoning_effort="none"`. Измеренная задержка снизилась примерно с \~5 с до 2 с, а число выходных tokens — примерно до 1/30.
  </Card>

  <Card title="Длинные документы и кодовые базы" icon="scroll">
    В тестировании 128K recall был точным, а показатели попадания в кэш для длинных документов высоки. Поместите большой документ в начало списка сообщений, а вопрос — в конец.
  </Card>

  <Card title="Извлечение данных" icon="braces">
    Ограничьте с помощью `json_schema` и отключите thinking. Соответствие не ухудшается.
  </Card>

  <Card title="Агенты и оркестрация инструментов" icon="wrench">
    Используйте `/v1/chat/completions`. Не забудьте отключить thinking при принудительном вызове инструмента.
  </Card>
</CardGroup>

## Частые вопросы

<AccordionGroup>
  <Accordion title="Почему после установки max_tokens с меня по-прежнему списывается много tokens?">
    `max_tokens` ограничивает только видимый ответ, а не часть рассуждения. Мы измерили 1,054 выходных tokens, начисленных по `max_tokens=1`. Используйте `reasoning_effort="none"`, чтобы контролировать затраты.
  </Accordion>

  <Accordion title="Почему tool_choice с именованной функцией возвращает 400?">
    Принудительный выбор инструмента не поддерживается, когда включено рассуждение. Передайте `reasoning_effort="none"` вместе с ним.
  </Accordion>

  <Accordion title="Почему я не могу обратиться к /v1/responses?">
    Этот эндпоинт пока не подключен к модели — все 30 тестовых вызовов завершились неудачей, а код ошибки чередовался между 404 и 400. Это было передано upstream, и мы объявим об этом в [Оперативные обновления](/en/live), как только он станет доступен. Используйте `/v1/chat/completions` вместо него.
  </Accordion>

  <Accordion title="Могу ли я использовать эту модель в Claude Code?">
    Пока нет. Эндпоинт `/v1/messages` отклоняет сообщения истории, содержащие блоки `thinking`, а Claude Code воспроизводит их дословно. При вызове из своего кода удалите эти блоки, и эндпоинт будет работать нормально.
  </Accordion>

  <Accordion title="Почему reasoning_tokens иногда отсутствует в usage?">
    Модель обслуживается более чем по одному upstream-маршруту, и один из них не сообщает `reasoning_tokens` или `cached_tokens` — это наблюдается примерно в трети chat-запросов. Это было передано upstream для согласования. Имейте это в виду, если вам нужен точный учет затрат на рассуждение.
  </Accordion>

  <Accordion title="Почему видеовызовы такие медленные?">
    Анализ video занимал 144–285 секунд на вызов; это собственное время обработки модели. Установите timeout выше 300 секунд и рассмотрите асинхронную очередь.
  </Accordion>
</AccordionGroup>

## Связанные материалы

* [Песочница Qwen3.8-Max](/ru/api-capabilities/qwen-3-8/chat-completions) — отправляйте запросы напрямую
* [Серия Qwen3.6 (устаревшая)](/ru/api-capabilities/qwen-3-6/overview) — предыдущие пять моделей
* [Заметки о запуске Qwen3.8-Max](/en/news/qwen-3-8-max-launch) — бенчмарки и полный разбор
* [Тарификация моделей](/en/models) — тарифы по каждой модели, тарификация кэша и доступные эндпоинты
* [Акции на пополнение](/ru/faq/recharge-promotions) — суммируемые скидки

<Info>
  Измерения на этой странице получены на основе 586 live-запросов, выполненных 2026-08-03 (12:50–14:35 UTC+8). Выводы, связанные с тарификацией, основаны на полях usage, возвращаемых API, и не были построчно сверены со счетами. Поведение модели и шлюза может меняться по мере настройки каналов — считайте live-запросы источником истины.
</Info>
