Aliyun Bailian API: Qwen, Wan и DashScope через дешёвый dual-region routing
Если вам нужен API Aliyun Bailian, OpenAI-совместимый base_url для DashScope или цены на Qwen / text-embedding-v4, TheRouter подключает один API key к Alibaba Cloud Model Studio в Пекине (dashscope.aliyuncs.com) и Сингапуре (dashscope-intl.aliyuncs.com), прячет оба региона за https://api.therouter.ai/v1 и автоматически выбирает более дешёвый регион для каждой модели.
Почему два региона, а не агрегатор
Одна и та же модель Qwen стоит по-разному в китайской и международной консолях Alibaba, и для каждой модели выигрывает свой регион. Агрегатор отнимает этот арбитраж, добавляет наценку и скрывает реальные rate-limit-ответы. TheRouter держит один сервис provider-aliyun-bailian, развернутый дважды (Пекин + Сингапур), у каждого свой DashScope API-ключ. Маршрутизатор сравнивает цену за MTok по всем активным маршрутам на каждый запрос. Сегодня Китай дешевле по всей линейке Qwen, поэтому он стоит первым; если по какой-то модели цена однажды изменится в обратную сторону, Сингапур подхватит это автоматически, без изменений в конфиге.
Расширения Qwen вне стандарта OpenAI — enable_thinking, reasoning_content — мы пробрасываем как есть, без переписывания и потерянных полей.
Покрытие моделей
| Семейство | Модели | Сценарий |
|---|---|---|
| Qwen3 commercial | qwen3-max · qwen-max · qwen-plus · qwen-flash | От флагмана до ультрабюджетного chat |
| Длинный контекст (только CN) | qwen-long | Анализ документов на 10M токенов |
| Код | qwen3-coder-plus | Repo-aware code, function calling |
| Vision | qwen3-vl-plus | Текст + изображение, 256K контекст |
| Reasoning (thinking) | qwen-plus-thinking | Полный thinking trace сохраняется |
| Embeddings | text-embedding-v3 · text-embedding-v4 | Многоязычные, 8K контекст |
| Wan 2.2 (image) | wan2.2-t2i-flash · wan2.2-t2i-plus | Text → image, async через /v1/jobs |
Полный список из 13 моделей с ценами — на странице провайдера Aliyun Bailian. Wan text-to-video (wan2.2-t2v) сознательно не маршрутизируется на старте — DashScope биллит его посекундно, а наш шлюз поддерживает только тариф «за запрос». Вернётся, когда появится биллинг с учётом длительности.
Цены
Все цены — за миллион токенов (если не указано иное) и автоматически уходят в более дешёвый регион для конкретной модели. При прямом вызове Aliyun Bailian обычные OpenAI-compatible endpoints —dashscope.aliyuncs.com/compatible-mode/v1для Пекина иdashscope-intl.aliyuncs.com/compatible-mode/v1для Сингапура; через TheRouter оба региона доступны какhttps://api.therouter.ai/v1.
qwen/qwen-flash— input $0.07 / output $0.50 (самый дешёвый рабочий chat сегодня)qwen/qwen-plus— input $0.50 / output $1.50 (mid-tier, thinking, 1M контекст)qwen/qwen3-max— input $1.50 / output $7.50 (текущий флагман)qwen/qwen-plus-thinking— input $0.26 / output $2.69 (reasoning, thinking trace)qwen/qwen3-vl-plus— input $0.30 / output $2.00 (vision)qwen/text-embedding-v4— input $0.12wan/wan2.2-t2i-flash— $0.04/image ·wan/wan2.2-t2i-plus— $0.08/image
Указаны цены на момент запуска; актуальные тарифы — на странице модели.
Три вещи о Bailian, которые стоит знать
- Выбор региона — автоматический, по модели. Вы не пишете «CN» или «SG» — вы просто запрашиваете
qwen/qwen-plus, а маршрутизатор берёт регион с меньшей ценой для этой модели на этом запросе. Если на этой неделе дешевле Китай, а на следующей — Сингапур, ваш счёт автоматически подстроится под это изменение. - Thinking mode пробрасывается как есть.
qwen-plusиqwen-plus-thinkingпринимаютenable_thinkingи возвращаютreasoning_contentв ответе — без перевода, без срезаний. Те, кто работал с нативным API Qwen, перейдут без правок. - Wan image — асинхронный. Wan идёт через
/v1/jobs— отправить задачу, опросить доcompleted, забрать URL картинки. Та же схема, что и у GPT-Image-2, SeedDance, CogVideoX.
Быстрый старт
Обычный chat — поменяйте только model ID:
curl https://api.therouter.ai/v1/chat/completions \
-H "Authorization: Bearer $THE_ROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen-flash",
"messages": [{"role": "user", "content": "Привет"}]
}'Thinking mode с qwen-plus-thinking:
curl https://api.therouter.ai/v1/chat/completions \
-H "Authorization: Bearer $THE_ROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen-plus-thinking",
"messages": [{"role": "user", "content": "Почему небо синее?"}],
"extra_body": {"enable_thinking": true}
}'
# response.choices[0].message.reasoning_content содержит ход рассужденияVision (image + text):
curl https://api.therouter.ai/v1/chat/completions \
-H "Authorization: Bearer $THE_ROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen3-vl-plus",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Опиши это изображение"},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
]}]
}'Многоязычные embeddings:
curl https://api.therouter.ai/v1/embeddings \
-H "Authorization: Bearer $THE_ROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/text-embedding-v4",
"input": ["Быстрая бурая лиса прыгает через ленивого пса"]
}'Wan text-to-image (асинхронно):
# 1. Отправить задачу
curl https://api.therouter.ai/v1/jobs \
-H "Authorization: Bearer $THE_ROUTER_API_KEY" \
-d '{
"operation": "images.generate",
"model": "wan/wan2.2-t2i-flash",
"prompt": "Неоновый Шанхай на закате, фотореализм"
}'
# → {"id": "img_xxx", "status": "in_progress"}
# 2. Опрашивать до завершения
curl https://api.therouter.ai/v1/jobs/img_xxx \
-H "Authorization: Bearer $THE_ROUTER_API_KEY"
# → {"id": "...", "status": "completed", "image_url": "https://..."}