SPB Git

spb/zyquo-cloud Public MIT

Native macOS AI chat client for 12 cloud providers — your keys, every cloud model, one beautiful chat.

Swift 97.4% Shell 1.7% Makefile 1%
12.8 KB · 184 lines markdown
Rendered Raw Blame History
1<!--2  qwen.md3  Zyquo Cloud4  Author: Simon-Pierre Boucher5  Mail: contact@spboucher.ai6-->78# Alibaba Qwen (DashScope / Model Studio) — Provider Research910Research date: **2026-07-30**. Live `/models` probe (151 models) from `dashscope-intl.aliyuncs.com/compatible-mode/v1/models` with a real key is the authoritative ID list. Official docs: [Model Studio — Supported Models](https://www.alibabacloud.com/help/en/model-studio/models), [Text generation models](https://www.alibabacloud.com/help/en/model-studio/text-generation-model/), [Deep thinking](https://www.alibabacloud.com/help/en/model-studio/deep-thinking), [Vision models](https://www.alibabacloud.com/help/en/model-studio/vision-model/), [Rate limits](https://www.alibabacloud.com/help/en/model-studio/rate-limit), [Error codes](https://www.alibabacloud.com/help/en/model-studio/error-code).1112---1314## 1. Base URL & Endpoints1516**Zyquo Cloud uses the international (Singapore) OpenAI-compatible endpoint:**1718- Base URL: `https://dashscope-intl.aliyuncs.com/compatible-mode/v1`19- Chat completions: `POST /chat/completions`20- Model listing: `GET /models` (verified live today — 151 models)2122Other endpoints (documented, not used by the app):23- China (Beijing) endpoint: `https://dashscope.aliyuncs.com/compatible-mode/v1` — separate API keys, separate (60–70% cheaper) pricing, separate catalog. **Do not mix keys across regions** (a region-mismatched key returns 401 "Incorrect API key provided").24- Native DashScope API: `https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation` — not needed; the OpenAI-compatible mode covers everything Zyquo Cloud does.25- An Anthropic-compatible mode also exists per the [models page](https://www.alibabacloud.com/help/en/model-studio/models) ("OpenAI-compatible, Anthropic-compatible, and DashScope" modes) — not used.2627## 2. Authentication2829Standard Bearer auth (confirmed by live probe):3031```32Authorization: Bearer sk-...33```3435Keys start with `sk-` and are region-bound (international console key for the intl endpoint).3637## 3. Chat Model Catalog (text-generation chat models only)3839Filtered from the live 151-model probe: image (`qwen-image*`, `wan*`, `z-image*`), TTS/ASR (`qwen3-tts*`, `qwen3-asr*`, `tongyi-tingwu-slp`), omni/realtime (`qwen*-omni*`, `qwen3-s2s*`), live-translate, machine-translation (`qwen-mt-*`), OCR (`qwen-vl-ocr*`), and embeddings (`text-embedding-v3/v4`) are excluded.4041**Pricing caveat:** the official international docs pages do not render pricing tables to scrapers; USD prices below marked "(3p)" come from third-party trackers ([VentureBeat](https://venturebeat.com/technology/alibabas-qwen3-7-plus-supports-text-video-and-imagery-inputs-at-low-cost-of-0-4-1-6-per-1m-token-but-its-proprietary), [codersera](https://codersera.com/blog/qwen-3-7-max-launch-guide-2026/), OpenRouter) and should be re-verified in the Model Studio console; treat as **unverified**. Note Qwen commercial models use **tiered pricing by input length** on some SKUs, which explains conflicting third-party numbers (e.g. qwen3.7-plus quoted at $0.32/$1.28 and $0.40/$1.60 per 1M in/out).4243### Flagship commercial (recommended)4445| API ID | Context | Max output | Price /1M in/out (USD) | Vision | Tools | Thinking | Notes |46|---|---|---|---|---|---|---|---|47| `qwen3.7-max` | 1M | unverified | ~$2.50 / $7.50 (3p) | no (text-only) | yes | **on by default** | Flagship, agentic. Snapshots: `-2026-05-17`, `-2026-05-20`, `-2026-06-08`, plus `qwen3.7-max-preview` |48| `qwen3.7-plus` | 1M | 65,536 (3p) | ~$0.32 / $1.28 (3p) | yes (image+video, up to 2 h video) | yes | **on by default** | Multimodal hybrid agent (screen reading / GUI ops). Snapshot `-2026-05-26` |49| `qwen3.7-flash` | 1M | 65,536 (3p) | ~$0.03 / $0.13 (3p) | yes | yes | hybrid | Cheapest current-gen. Snapshot `-2026-07-15` |50| `qwen3.6-plus` | 1M | unverified | unverified | yes | yes | hybrid | Snapshot `-2026-04-02` |51| `qwen3.6-flash` | 1M | unverified | unverified | yes (2 h / 2 GB video) | yes | hybrid | "Near-flagship, same feature set as qwen3.7-plus at lower price". Snapshot `-2026-04-16` |52| `qwen3.6-max-preview` | 256K | unverified | unverified | no | yes | hybrid | Preview |53| `qwen3.5-plus` | 1M | unverified | unverified | yes (image+video) | yes | **on by default** | Snapshots `-2026-02-15`, `-2026-04-20` |54| `qwen3.5-flash` | 1M | unverified | unverified | yes | yes | hybrid | Snapshot `-2026-02-23` |5556### Stable aliases (previous-gen commercial, still recommended fallbacks)5758| API ID | Context | Thinking | Notes |59|---|---|---|---|60| `qwen-max` | 128K | off by default (`enable_thinking`) | Alias; `qwen3-max` + snapshots `-2025-09-23`, `-2026-01-23`, `qwen3-max-preview` also live |61| `qwen-plus` | 1M | off by default | Alias. Snapshots `-2025-01-25``-2025-12-01`, `qwen-plus-latest`, `qwen-plus-character` (role-play variant) |62| `qwen-turbo` | 1M | off by default | Legacy tier |63| `qwen-flash` | 1M | off by default | Highest rate quota (5M TPM). `qwen-flash-character` variant |6465### Coder family6667| API ID | Context | Thinking | Notes |68|---|---|---|---|69| `qwen3-coder-plus` | 1M | no | Snapshots `-2025-07-22`, `-2025-09-23`; alias `qwen-coder-plus` also live |70| `qwen3-coder-flash` | 1M | no | Cheap coding |71| `qwen3-coder-next` | unverified | no | Newest; "repository-level code understanding, multi-turn tool interactions" ([newly-released models](https://www.alibabacloud.com/help/en/model-studio/newly-released-models)) |72| `qwen3-coder-480b-a35b-instruct` | 256K (unverified) | no | Open-weights hosted |7374### Vision-language chat models7576Legacy `qwen-vl-max` / `qwen-vl-plus` are live but the docs mark them "Legacy … no longer recommended". Prefer qwen3-vl or the multimodal qwen3.5+/3.6+/3.7-plus/flash models.7778| API ID | Context | Max output | Thinking | Notes |79|---|---|---|---|---|80| `qwen3-vl-plus` | 1M | 64K | hybrid | Video up to 1 h / 2 GB. Snapshots `-2025-09-23`, `-2025-12-19` |81| `qwen3-vl-flash` | 1M | 64K | hybrid | Snapshots `-2025-10-15`, `-2026-01-22` |82| `qwen3-vl-235b-a22b-instruct` | 128K (unverified) | — | no | Open-weights hosted |83| `qwen3-vl-235b-a22b-thinking` | 128K (unverified) | — | always | Open-weights hosted |84| `qvq-max` | 128K (unverified) | always (visual reasoning) | Streaming-only reasoning output |85| `qwen-vl-max`, `qwen-vl-plus` | 32K (unverified) | — | no | **Legacy** |8687### Reasoning-only8889| API ID | Context | Notes |90|---|---|---|91| `qwq-plus` | 128K | Always thinks — cannot be disabled; snapshot `-2025-03-05`. Streaming only (unverified for current build) |9293### Open-weights Qwen hosted on DashScope9495| API ID | Context | Thinking |96|---|---|---|97| `qwen3.5-397b-a17b` | unverified (likely 256K+) | **on by default** ([deep-thinking doc](https://www.alibabacloud.com/help/en/model-studio/deep-thinking): "Qwen3.5 open-source variants" think by default) |98| `qwen3.5-122b-a10b` | unverified | on by default |99| `qwen3.5-35b-a3b` | unverified | on by default |100| `qwen3.5-27b` | unverified | on by default |101| `qwen3.6-35b-a3b`, `qwen3.6-27b` | unverified | hybrid (unverified) |102| `qwen3-235b-a22b` | 128K | hybrid via `enable_thinking`; **streaming-only** (non-streaming calls error, per deep-thinking doc) |103| `qwen3-235b-a22b-instruct-2507` | 256K (unverified) | no |104| `qwen3-235b-a22b-thinking-2507` | 256K (unverified) | always |105| `qwen3-30b-a3b` (+ `-instruct-2507`, `-thinking-2507`) | 128K/256K (unverified) | as suffixed |106| `qwen3-next-80b-a3b-instruct` / `-thinking` | 256K (unverified) | as suffixed |107| `qwen3-32b`, `qwen3-14b`, `qwen3-8b` | 128K (unverified) | hybrid |108| `qwen2-7b-instruct` | 32K (unverified) | no — legacy |109110### Third-party models hosted on DashScope (all in live probe)111112| API ID | Context | Thinking | Notes |113|---|---|---|---|114| `deepseek-v4-pro` | 1M | yes (`enable_thinking`, off by default) | "Large-scale MoE, strong general reasoning" |115| `deepseek-v4-flash` | 1M | yes (off by default) | |116| `deepseek-v3.2` | 128K (unverified) | yes (off by default) | |117| `glm-5.2` | 198K | **on by default** (GLM series) | |118| `glm-5.2-fast-preview` | 198K (unverified) | on by default | |119| `glm-5.1` | 200K, max output 128K | on by default | |120| `kimi-k2.7-code` | 256K (unverified here; 262,144 on Moonshot direct) | yes | Same model Moonshot serves |121| `ccai-pro` | unverified | unverified | In live probe; not found in public docs — **unverified/unknown**, exclude from catalog until identified |122123## 4. Request / Response Format124125Fully **OpenAI-compatible** on `/compatible-mode/v1`. Minimal request:126127```json128POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions129Authorization: Bearer sk-...130Content-Type: application/json131132{133  "model": "qwen3.7-plus",134  "messages": [{ "role": "user", "content": "Hello" }]135}136```137138Response is the standard OpenAI `chat.completion` object (`choices[0].message.content`, `usage.prompt_tokens/completion_tokens/total_tokens`). Deviations:139140- Thinking models add `message.reasoning_content` (and `delta.reasoning_content` when streaming) alongside `content` ([deep-thinking doc](https://www.alibabacloud.com/help/en/model-studio/deep-thinking)).141- Vision input uses standard OpenAI parts: `{"type":"image_url","image_url":{"url":"data:image/png;base64,..."}}` (https URLs also accepted). Video via `video_url` parts on video-capable models.142- Some open-weights thinking models are **streaming-only** — non-streaming calls return a 400.143144## 5. Streaming (SSE)145146Standard OpenAI SSE: `data: {chunk}` lines, terminated by `data: [DONE]`. Add `"stream_options": {"include_usage": true}` to get usage in the final chunk.147148Thinking models stream in two phases: chunks first carry `delta.reasoning_content` (with `content` null), then `reasoning_content` goes null and `delta.content` carries the answer. Zyquo Cloud's collapsible "Thinking…" section maps directly to `reasoning_content` deltas.149150`incremental_output` is a **native DashScope-API** parameter (must be enabled there for proper delta streaming); in OpenAI-compatible mode incremental deltas are the default and no such parameter is sent. Important compat-mode constraint (from the [error-code doc](https://www.alibabacloud.com/help/en/model-studio/error-code)): **`enable_thinking: true` requires `stream: true`** — a non-streaming call with thinking enabled returns a 400 parameter error.151152## 6. Special Parameters153154- `enable_thinking` (bool) — turn reasoning on/off for **hybrid** models. Defaults ([deep-thinking doc](https://www.alibabacloud.com/help/en/model-studio/deep-thinking)):155  - Default **on**: qwen3.7-max/plus series, qwen3.5 open-weights, GLM series.156  - Default **off**: qwen3 commercial (qwen-max/plus/flash/turbo, qwen3-max…), DeepSeek v3.2/v4.157  - Always on (cannot disable): `qwq-plus`, qvq, `*-thinking-*` models.158- `thinking_budget` (int) — cap reasoning tokens; "when the limit is reached, the model stops reasoning and responds immediately".159- `preserve_thinking` (bool, supported models) — feeds prior turns' `reasoning_content` back into context.160- Sampling bounds (from error docs): `temperature``[0.0, 2.0)`, `top_p``(0.0, 1.0]`. `presence_penalty`, `max_tokens`, `stop`, `tools`/`tool_choice`, `response_format: {"type":"json_object"}` supported (JSON mode not available on thinking output — unverified detail).161- Translation-specific `translation_options` applies only to `qwen-mt-*` models — **not applicable** to Zyquo Cloud (MT models excluded).162- `vl_high_resolution_images` (bool) for VL models — unverified in compat mode.163164## 7. Rate Limits & Errors165166Limits are **account-level** (all keys/workspaces aggregated), RPM + TPM, with RPS/TPS enforcement at RPM/60 ([rate-limit doc](https://www.alibabacloud.com/help/en/model-studio/rate-limit)). Singapore examples: `qwen3.7-max` 600 RPM / 1M TPM; `qwen-plus` 600 RPM / 1.5M TPM; `qwen-flash` 600 RPM / 5M TPM. Stable aliases get higher quotas than dated snapshots. Recovery "within one minute"; TPM can be temporarily raised in the console.167168Errors are OpenAI-shaped JSON (`error.code/message/type`) with meaningful HTTP statuses ([error-code doc](https://www.alibabacloud.com/help/en/model-studio/error-code)):169- 401 `InvalidApiKey` — "Incorrect API key provided" (also fires on region mismatch)170- 429 — `RateQuota` (RPM), `AllocationQuota` (TPM), `BurstRate` ("Request rate increased too quickly") → retry with exponential backoff171- 400 — parameter errors (`enable_thinking` without stream; temperature/top_p out of range), `DataInspectionFailed` (content filter on input or output)172- 403/404 — model not activated in workspace / deprecated model ID173174## 8. `/models` Listing175176**Yes.** `GET /compatible-mode/v1/models` (Bearer auth) — verified live today, 151 entries. Shape is the OpenAI list format, minimal fields only:177178```json179{ "object": "list",180  "data": [ { "id": "qwen3.7-flash", "object": "model", "created": 1785147332, "owned_by": "system" } ] }181```182183No capability/context metadata is returned — Zyquo Cloud must join IDs against the built-in catalog and can use the endpoint for "Refresh from API" diffing only.184