Qwen3-VL-Plus
Copied!
Try AIAdd to Compare
Visual Understanding
Overview
Visual Understanding
The Qwen3 series VL models effectively integrates thinking and non-thinking modes, achieving world-leading performance in visual agent capabilities on public benchmark datasets such as OS World. This version features comprehensive upgrades in areas like visual coding, spatial perception, and multimodal reasoning, significantly enhancing visual perception and recognition abilities, and supporting the understanding of ultra-long videos.
Input
TextImageVideo
Output
Text
Features
Prefix Completion
Function Calling
Cache
Structured Outputs
Batches
Web Search
Pricing
- Input$0.2Per 1M tokens
- Output$1.6Per 1M tokens
- Input(Implicit Cache)$0.04Per 1M tokens
- Explicit Cache Creation$0.25Per 1M tokens
- Explicit Cache Read$0.02Per 1M tokens
- Input$0.2Per 1M tokens
- Output$1.6Per 1M tokens
- Input(Implicit Cache)$0.04Per 1M tokens
- Explicit Cache Creation$0.25Per 1M tokens
- Explicit Cache Read$0.02Per 1M tokens
Context
Context
262.14K
Max Input
258.04K
Max Output
32.76K
Rate Limits
- RPMRequests Per Minute1.20K
- TPMTokens Per Minute1M
API Reference
Get API KeyCopied!
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
import os
import dashscope
from dashscope import MultiModalConversation
# dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1"
messages = [
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "Solve this problem?"}
]
}
]
response = MultiModalConversation.call(
# If environment variable is not configured, replace the line below with: api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen3-vl-plus", # Here we use qvq-max as an example; you can change the model name as needed.
messages=messages,
stream=True,
# The enable_thinking parameter enables the reasoning process
# qwen-vl-plus and qwen3-vl-plus-2025-09-23 support enabling/disabling reasoning via enable_thinking; for qwen3-vl-235b-a22b-thinking, enable_thinking only supports enabling; other Qwen-VL models do not support it
enable_thinking=True,
# thinking_budget sets the maximum number of tokens for the reasoning process, applicable only to qwen-vl-plus, qwen3-vl-plus-2025-09-23, and qwen3-vl-235b-a22b-thinking
thinking_budget=50,
)
# Define complete reasoning process
reasoning_content = ""
# Define complete response
answer_content = ""
# Check if reasoning has ended and response has started
is_answering = False
print("=" * 20 + "Reasoning Process" + "=" * 20)
for chunk in response:
# If both reasoning and response are empty, skip
message = chunk.output.choices[0].message
reasoning_content_chunk = message.get("reasoning_content", None)
if (chunk.output.choices[0].message.content == [] and
reasoning_content_chunk == ""):
pass
else:
# If current part is reasoning process
if reasoning_content_chunk != None and chunk.output.choices[0].message.content == []:
print(chunk.output.choices[0].message.reasoning_content, end="")
reasoning_content += chunk.output.choices[0].message.reasoning_content
# If current part is response
elif chunk.output.choices[0].message.content != []:
if not is_answering:
print("\n" + "=" * 20 + "Complete Response" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content[0]["text"], end="")
answer_content += chunk.output.choices[0].message.content[0]["text"]
# If you need to print the full reasoning process and complete response, uncomment the following lines
# print("=" * 20 + "Full Reasoning Process" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "Complete Response" + "=" * 20 + "\n")
# print(f"{answer_content}")