Amux

Qwen 适配器

使用 Qwen 适配器连接阿里云通义千问系列模型

Qwen 适配器提供了与阿里云通义千问 API 的集成,支持文本生成、视觉理解和函数调用等功能。

安装

pnpm add @amux.ai/llm-bridge @amux.ai/adapter-qwen

基本使用

import { createBridge } from '@amux.ai/llm-bridge'
import { qwenAdapter } from '@amux.ai/adapter-qwen'

const bridge = createBridge({
  inbound: qwenAdapter,
  outbound: qwenAdapter,
  config: {
    apiKey: process.env.QWEN_API_KEY
  }
})

const response = await bridge.chat({
  model: 'qwen-turbo',
  messages: [
    { role: 'system', content: '你是一个有帮助的助手。' },
    { role: 'user', content: '什么是 Amux?' }
  ]
})

console.log(response.choices[0].message.content)

支持的模型

模型描述特点
qwen-turbo快速模型响应快,成本低
qwen-plus增强模型性能更强
qwen-max旗舰模型最强性能
qwen-vl-plus视觉模型支持图像理解
qwen-vl-max视觉旗舰最强视觉能力

主要功能

文本生成

const response = await bridge.chat({
  model: 'qwen-max',
  messages: [
    {
      role: 'system',
      content: '你是一个专业的技术文档编写者。'
    },
    {
      role: 'user',
      content: '写一篇关于 TypeScript 泛型的教程'
    }
  ],
  temperature: 0.7,
  max_tokens: 2000
})

视觉理解

使用 Qwen-VL 模型分析图像:

const response = await bridge.chat({
  model: 'qwen-vl-plus',
  messages: [{
    role: 'user',
    content: [
      {
        type: 'text',
        text: '这张图片里有什么?'
      },
      {
        type: 'image',
        image: 'https://example.com/image.jpg'
      }
    ]
  }]
})

Qwen-VL 支持多种图像格式,包括 URL 和 Base64 编码。

函数调用

const response = await bridge.chat({
  model: 'qwen-plus',
  messages: [
    { role: 'user', content: '北京现在几点?' }
  ],
  tools: [{
    type: 'function',
    function: {
      name: 'get_current_time',
      description: '获取指定城市的当前时间',
      parameters: {
        type: 'object',
        properties: {
          city: { type: 'string' }
        },
        required: ['city']
      }
    }
  }]
})

流式传输

const stream = bridge.chatStream({
  model: 'qwen-turbo',
  messages: [
    { role: 'user', content: '讲一个故事' }
  ],
  stream: true
})

for await (const chunk of stream) {
  if (chunk.choices[0]?.delta?.content) {
    process.stdout.write(chunk.choices[0].delta.content)
  }
}

配置选项

const bridge = createBridge({
  inbound: qwenAdapter,
  outbound: qwenAdapter,
  config: {
    apiKey: process.env.QWEN_API_KEY,
    baseURL: 'https://dashscope.aliyuncs.com/compatible-mode', // 默认值
    timeout: 60000
  }
})

功能支持

功能支持说明
聊天补全完全支持
流式传输完全支持
函数调用完全支持
视觉Qwen-VL 系列
多模态支持文本+图像(也支持音频/视频)
系统提示完全支持
推理能力QwQ 模型使用 enable_thinking: truereasoning_content 字段
JSON 模式仅支持 json_object
网络搜索enable_search: true
Seed确定性生成

Qwen 特有参数:

  • enable_thinking (boolean) -- 为 QwQ 推理模型启用深度思考模式
  • enable_search (boolean) -- 启用实时网络搜索
  • fps (number) -- 视频输入的帧率(存储在 extensions.qwen.fps

最佳实践

1. 选择合适的模型

// 快速响应场景使用 turbo
const quickResponse = await bridge.chat({
  model: 'qwen-turbo',
  messages: [{ role: 'user', content: '简单问题' }]
})

// 复杂任务使用 max
const complexTask = await bridge.chat({
  model: 'qwen-max',
  messages: [{ role: 'user', content: '复杂的分析任务' }]
})

// 图像理解使用 vl 系列
const imageAnalysis = await bridge.chat({
  model: 'qwen-vl-plus',
  messages: [{ role: 'user', content: [...] }]
})

2. 优化中文处理

// Qwen 对中文支持非常好
const response = await bridge.chat({
  model: 'qwen-max',
  messages: [
    {
      role: 'system',
      content: '你是一个精通中文的助手,使用地道的中文表达。'
    },
    {
      role: 'user',
      content: '用中文解释量子计算的原理'
    }
  ]
})

3. 处理多模态输入

const response = await bridge.chat({
  model: 'qwen-vl-max',
  messages: [{
    role: 'user',
    content: [
      { type: 'text', text: '分析这张图表并总结要点' },
      { type: 'image', image: 'https://example.com/chart.png' }
    ]
  }]
})

与 OpenAI 互转

import { openaiAdapter } from '@amux.ai/adapter-openai'
import { qwenAdapter } from '@amux.ai/adapter-qwen'

const bridge = createBridge({
  inbound: openaiAdapter,
  outbound: qwenAdapter,
  config: {
    apiKey: process.env.QWEN_API_KEY
  }
})

// 使用 OpenAI 格式发送请求
const response = await bridge.chat({
  model: 'gpt-4',
  messages: [{ role: 'user', content: '你好' }]
})

相关资源

下一步

On this page