Deprecated
Use the unified Qwen-VL block (roboflow_core/qwen_vlm@v1), which combines all Qwen variants (native + OpenRouter) with managed-key passthrough and privacy controls.
Ask a question to Qwen 3.5 vision-language models served via OpenRouter.
You can specify arbitrary text prompts or predefined ones, the block supports the following types of prompt:
Open Prompt (
unconstrained) - Use any prompt to generate a raw responseText Recognition (OCR) (
ocr) - Model recognizes text in the imageVisual Question Answering (
visual-question-answering) - Model answers the question you submit in the promptCaptioning (short) (
caption) - Model provides a short description of the imageCaptioning (
detailed-caption) - Model provides a long description of the imageSingle-Label Classification (
classification) - Model classifies the image content as one of the provided classesMulti-Label Classification (
multi-label-classification) - Model classifies the image content as one or more of the provided classesUnprompted Object Detection (
object-detection) - Model detects and returns the bounding boxes for prominent objects in the imageStructured Output Generation (
structured-answering) - Model returns a JSON response with the specified fields
🛠️ API providers and model variants
Qwen 3.5 is exposed via OpenRouter API and we require passing an OpenRouter API Key to run.
Pick a specific model version from the model_version dropdown - new Qwen 3.5 releases will be added to this list as they become available on OpenRouter.
API Usage Charges
OpenRouter is an external third party providing access to the model and incurring charges on the usage. Please check pricing on openrouter.ai before use.
💡 Further reading and Acceptable Use Policy
Model license
Check the Qwen license terms before use.
Type identifier
Use the following identifier in step "type" field: roboflow_core/qwen3_5_openrouter@v1 to add the block as a step in your workflow.
Properties
| Name | Type | Description | Refs |
|---|---|---|---|
name | str | Enter a unique identifier for this step.. | ❌ |
task_type | str | Task type to be performed by model. Value determines required parameters and output response.. | ❌ |
prompt | str | Text prompt to the Qwen 3.5 model. | ✅ |
output_structure | Dict[str, str] | Dictionary with structure of expected JSON response. | ❌ |
classes | List[str] | List of classes to be used. | ✅ |
api_key | str | Your OpenRouter API key. | ✅ |
model_version | str | Model to be used. | ✅ |
max_tokens | int | Maximum number of tokens the model can generate in it's response.. | ❌ |
temperature | float | Temperature to sample from the model - value in range 0.0-2.0, the higher - the more random / "creative" the generations are.. | ✅ |
max_concurrent_requests | int | Number of concurrent requests that can be executed by block when batch of input images provided. If not given - block defaults to value configured globally in Workflows Execution Engine. Please restrict if you hit limits.. | ❌ |
The Refs column marks possibility to parametrise the property with dynamic values available in workflow runtime. See Bindings for more info.
Runtime compatibility
requires_internet - air-gapped / offline deployments : This block depends on a service that is not reachable from fully offline / air-gapped deployments.
Input and Output Bindings
The available connections depend on its binding kinds. Check what binding kinds Qwen 3.5 API in version v1 has.
Input and output bindings
input
images(image): The image to infer on..prompt(string): Text prompt to the Qwen 3.5 model.classes(list_of_values): List of classes to be used.api_key(Union[secret,string]): Your OpenRouter API key.model_version(string): Model to be used.temperature(float): Temperature to sample from the model - value in range 0.0-2.0, the higher - the more random / "creative" the generations are..
output
output(Union[string,language_model_output]): String value ifstringor LLM / VLM output iflanguage_model_output.classes(list_of_values): List of values of any type.
Example JSON definition
{
"name": "<your_step_name_here>",
"type": "roboflow_core/qwen3_5_openrouter@v1",
"images": "$inputs.image",
"task_type": "<block_does_not_provide_example>",
"prompt": "my prompt",
"output_structure": {
"my_key": "description"
},
"classes": [
"class-a",
"class-b"
],
"api_key": "xxx-xxx",
"model_version": "Qwen 3.5 27B - OpenRouter",
"max_tokens": "<block_does_not_provide_example>",
"temperature": "<block_does_not_provide_example>",
"max_concurrent_requests": "<block_does_not_provide_example>"
}