Семейство Qwen
Текстовые модели Tongyi Qianwen от Alibaba Cloud: серии Qwen3.8, Qwen3.7, Qwen3.6, а также Qwen Flash и Qwen Plus. Они вызываются через OpenAI-совместимый API; серия Qwen3.x также поддерживает нативный API Anthropic. Модели генерации изображений описаны в разделе Qwen-Image.
Типичные задачи
Модели
Полный список моделей и актуальные цены см. на странице моделей ; их также можно получить через Models API. Префикс qwen/ в ID модели можно опустить.
qwen/qwen3.8-maxПоддерживает ввод изображенийqwen/qwen3.8-flashПоддерживает ввод изображенийqwen/qwen3.7-plusПоддерживает ввод изображенийqwen/qwen-flashПо умолчанию без thinking; только текстМодели Qwen предоставляет Alibaba Cloud Model Studio (Bailian) через двух провайдеров — китайскую площадку (aliyun) и международную (alicloud); по умолчанию провайдер выбирается автоматически. Как указать провайдера, см. в разделе Маршрутизация провайдеров.
Примеры вызова
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
resp = client.chat.completions.create(
model="qwen/qwen3.8-flash",
messages=[{"role": "user", "content": "Объясни одним предложением, что такое идемпотентность."}],
extra_body={"enable_thinking": False},
)
print(resp.choices[0].message.content)Режим thinking
Замеры на одной и той же математической задаче: Qwen3.8 Flash по умолчанию тратит на thinking около 5800 токенов и около 1,5 минуты, Qwen3.6 Flash — больше 30 тысяч токенов и больше 4 минут; с отключённым thinking обе модели отвечают за несколько секунд.
Ограничение длины thinking
Если thinking нужен, но вы хотите контролировать время и стоимость, передайте thinking_budget (лимит токенов thinking):
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
resp = client.chat.completions.create(
model="qwen/qwen3.8-flash",
messages=[{"role": "user", "content": "Найди все натуральные n меньше 50, при которых n² + n + 41 не является простым числом."}],
extra_body={"enable_thinking": True, "thinking_budget": 1000},
)
msg = resp.choices[0].message
details = getattr(msg, "reasoning_details", None) or []
print("[Thinking]", "".join(d.get("text", "") for d in details)[:200], "…")
print("[Ответ]", msg.content)
print("Токены thinking:", resp.usage.completion_tokens_details.reasoning_tokens)- По нашим замерам,
thinking_budgetсоблюдается строго: при значении 200 число токенов thinking ровно 200. enable_thinkingиthinking_budgetне входят в стандартные параметры OpenAI SDK, поэтому передавайте их вextra_body; при прямой отправке HTTP-запроса размещайте их на верхнем уровне тела запроса.- Токены thinking оплачиваются по цене вывода, их число указано в
usage.completion_tokens_details.reasoning_tokens.
Чтение содержимого thinking
- В потоковом ответе содержимое thinking находится в
delta.reasoning_content, как и в официальном API Alibaba Cloud Model Studio. - В непотоковом ответе содержимое thinking находится в
message.reasoning_details; склейте поляtextвсех элементов по порядку (см. пример выше).
Ввод изображений
Модели с поддержкой ввода изображений используют стандартный блок содержимого image_url:
import base64
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"])
img_b64 = base64.b64encode(open("photo.png", "rb").read()).decode()
resp = client.chat.completions.create(
model="qwen/qwen3.8-flash",
messages=[{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_b64}"}},
{"type": "text", "text": "Опиши это изображение."},
]}],
extra_body={"enable_thinking": False},
)
print(resp.choices[0].message.content)Qwen3.7 Max, Qwen Plus и Qwen Flash работают только с текстом — используйте одну из моделей с поддержкой ввода изображений из таблицы выше.
Использование в Claude Code
Серия Qwen3.x и Qwen Flash поддерживают нативный API Anthropic по адресу https://api.ofox.io/anthropic:
https://api.ofox.io/anthropicqwen/qwen3.8-max- При вызове через Anthropic API содержимое thinking возвращается блоками
thinking. - Серия Qwen3.8 расходует на thinking много токенов, поэтому задавайте достаточно большой
max_tokens. По нашим замерам, приmax_tokens4000 ответ может содержать только блокthinkingбез самого ответа. - Qwen Plus не поддерживает Anthropic API: вызов возвращает
protocol_not_supported.
Полный порядок настройки Claude Code см. в разделе Настройка Claude Code.
JSON-вывод и вызов инструментов
response_format поддерживает {"type": "json_object"} и {"type": "json_schema", ...}; для вызова инструментов используется стандартный параметр tools. При использовании json_object явно укажите в промпте «верни в формате JSON» и перечислите нужные поля. Подробнее см. в разделах Структурированный вывод и Вызов функций.
Кэширование промптов
Qwen автоматически кэширует повторяющиеся префиксы запросов, менять запросы не нужно. Объём попадания показывает usage.prompt_tokens_details.cached_tokens; попавшая в кэш часть оплачивается по цене чтения из кэша. Кэширование работает по принципу best effort: даже запросы с одинаковым префиксом могут не попасть в кэш.
Типичные ошибки
Прочие общие ошибки: Обработка ошибок.
Официальная документация
- Alibaba Cloud Model Studio · Список моделей
- Alibaba Cloud Model Studio · Глубокое мышление (deep thinking)
- Alibaba Cloud Model Studio · Совместимость с OpenAI
Официальная документация описывает поведение при прямом обращении к Alibaba Cloud Model Studio. При вызове через OfoxAI ID моделей и адреса API указывайте так, как описано на этой странице.
Часто задаваемые вопросы
Как записывать ID моделей Qwen?
Стандартная запись — qwen/qwen3.8-flash; префикс qwen/ можно опустить.
Как отключить thinking у Qwen?
Передайте "enable_thinking": false; в OpenAI SDK — внутри extra_body. Серии Qwen3.8, 3.7 и 3.6 по умолчанию используют thinking, Qwen Flash и Qwen Plus — нет.
Qwen отвечает очень медленно, приходится ждать несколько минут?
Серия Qwen3.x по умолчанию использует thinking, и на сложные вопросы он может расходовать десятки тысяч токенов. Отключите thinking или ограничьте его длину через thinking_budget, например "thinking_budget": 1000.
Как использовать thinking_budget в Qwen?
Передавайте его вместе с "enable_thinking": true; значение — лимит токенов thinking, например 1000. По нашим замерам, лимит соблюдается строго.
Какие модели Qwen умеют работать с изображениями?
Ввод изображений поддерживают Qwen3.8 Max, 3.8 Flash, 3.8 27B, 3.7 Plus и 3.6 Flash. Qwen3.7 Max, Qwen Plus и Qwen Flash работают только с текстом.
Можно ли использовать Qwen в Claude Code?
Да. Укажите ANTHROPIC_BASE_URL https://api.ofox.io/anthropic, а в качестве модели — модель серии Qwen3.x, например qwen/qwen3.8-max. Qwen Plus не поддерживает Anthropic API.
Где находится reasoning_content у Qwen?
В потоковом ответе — в delta.reasoning_content; в непотоковом — в message.reasoning_details, где нужно склеить поля text всех элементов.