Skip to main content

Qwen

Qwen

Properties used to connect to Alibaba Cloud Qwen.

qwen

  • Type: {
         model?: string,
         temperature?: number,
         max_tokens?: number,
         top_p?: number,
         frequency_penalty?: number,
         presence_penalty?: number,
         stop?: string | string[],
         system_prompt?: string,
         tools?: QwenTool[],
         tool_choice?: "auto" | "none" | {type: "function", function: {name: string}},
         function_handler?: FunctionHandler
    }
  • Default: {model: "qwen-plus"}

Connect to Alibaba Cloud's Qwen API.
model is the name of the Qwen model to use (supports Qwen LMs, Qwen-VL, Qwen-Coder, Qwen-Omni, and Qwen-Math models).
temperature controls randomness of generated text (0.0-2.0). Higher values produce more creative outputs.
max_tokens sets the maximum number of tokens to generate in the response.
top_p controls diversity through nucleus sampling (0.0-1.0).
frequency_penalty reduces repetition by penalizing frequently used tokens (-2.0 to 2.0).
presence_penalty controls token repetition (-2.0 to 2.0). Positive values reduce repetition.
stop defines sequences where generation will stop when encountered.
system_prompt defines the model's objective or role as the first message in conversation.
tools defines available function declarations for the model to call.
tool_choice controls which (if any) tool should be called.
function_handler enables function calling capabilities for tool use.

Example

<deep-chat
directConnection='{
"qwen": {
"key": "placeholder key",
"system_prompt": "You are a helpful assistant.",
"temperature": 0.7
}
}'
></deep-chat>
info

Use stream to stream the AI responses.

Vision Example

Upload images alongside your text prompts for visual understanding. Vision capabilities are only available for vision models such as Qwen-VL, QVQ or Qwen-Omni.

<deep-chat
directConnection='{
"qwen": {
"key": "placeholder key",
"model": "qwen-vl-max"
}
}'
images="true"
camera="true"
></deep-chat>
tip

When sending images we advise you to set maxMessages to 1 to send less data and reduce costs.

Tool Calling

Qwen supports function calling functionality:

QwenTool

  • Type: {
         type: "function",
         function: {
             name: string,
             description: string,
             parameters: object
         }
    }

Array describing tools that the model may call.
type must be "function" for function tools.
name is the name of the tool function.
description explains what the tool does and when it should be used.
parameters defines the parameters the tool accepts in JSON Schema format.

FunctionHandler

The actual function that the component will call if the model wants to use tools.
functionsDetails contains information about what tool functions should be called.
This function should either return an array of JSONs containing a response property for each tool function (in the same order as in functionsDetails) which will feed it back into the model to finalize a response, or return a JSON containing text which will immediately display it in the chat.

Example

// using JavaScript for a simplified example

chatElementRef.directConnection = {
qwen: {
tools: [
{
type: 'function',
function: {
name: 'get_current_weather',
description: 'Get the current weather in a given location',
parameters: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'The city and state, e.g. San Francisco, CA',
},
unit: {type: 'string', enum: ['celsius', 'fahrenheit']},
},
required: ['location'],
},
},
},
],
function_handler: (functionsDetails) => {
return functionsDetails.map((functionDetails) => {
return {
response: getCurrentWeather(functionDetails.arguments),
};
});
},
key: 'placeholder-key',
},
};