今日凌晨,通义千问团队正式开源了 Qwen3 大模型,并且一口气发布了 8 个型号,其中包括 0.6B、1.7B、4B、8B、14B、32B 以及 30B-A3B 和 235B-A22B,使用者可以根据自己的业务情况,选择合适的版本进行使用。

更让人惊喜的是,最新的 Qwen3 系列模型具备双模推理能力(深入思考/快速响应)、支持 119 种语言及方言,并强化了 Agent 功能与代码执行能力,全面满足复杂问题处理与全球化应用需求。

PS:Qwen3 也是国内首个「混合推理模型」,「快思考」与「慢思考」集成进同一个模型,对简单需求可低算力「秒回」答案,对复杂问题可多步骤「深度思考」,大大节省算力消耗。

Qwen3 旗舰模型 Qwen3-235B-A22B 在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出极具竞争力的结果。此外,小型 MoE 模型 Qwen3-30B-A3B 的激活参数数量是 QwQ-32B 的 10%,表现更胜一筹,甚至像 Qwen3-4B 这样的小模型也能匹敌 Qwen2.5-72B-Instruct 的性能,以下是测试报告:

对接 Qwen3

常见对接大模型的方案有以下几种:

  1. 官方对接方式:例如,调用阿里百炼平台对接 Qwen3。
  2. 本地模型对接方式:安装 Ollama 部署 Qwen3,对接 Ollama 实现调用。
  3. 三方平台对接方式:使用千帆或火山引擎等三方平台,对接调用 Qwen3。

但目前因为 Qwen3 刚刚发布,所以只能使用前两种对接方式,截止发稿时,三方平台还未上线 Qwen3,但也够用了。

具体实现

接下来我们就以官方的调用方式,来实现一下 Qwen3 的具体代码对接吧,这里提供 Spring AI 和 LangChain4j 两种对接实现。

Spring AI 对接 Qwen3

1.添加依赖

Spring AI 并没有内置阿里云百炼平台,但百炼平台支持 OpenAI 协议,因此我们可以使用 OpenAI 对接百炼平台,因此我们只需要添加 OpenAI 依赖即可。

<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>

2.设置配置信息

spring:
ai:
openai:
base-url: https://dashscope.aliyuncs.com/compatible-mode/
api-key: ${ALIYUN-AK}
chat:
options:
model: qwen3-235b-a22b

其中:

  • base-url 填写百炼平台地址。
  • api-key 为准备阶段在百炼平台申请的 AK 凭证。
  • model 设置为 qwen3-235b-a22b 模型。

支持的模型列表参考官方文档:https://help.aliyun.com/zh/model-studio/models?spm=a2c4g.11186623.0.0.78d848237YTeH1#cefdf0875dorc

3.编写调用代码

import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/ds")
public class TestController { private final OpenAiChatModel chatModel; @Autowired
public TestController(OpenAiChatModel chatModel) {
this.chatModel = chatModel;
} @RequestMapping("/chat")
public String chat(@RequestParam("msg") String msg) {
String result = chatModel.call(msg);
System.out.println("返回结果:" + result);
return result;
}
}

LangChain4j 对接 Qwen3

LangChain4j 内置集成了阿里云百炼平台,所以可以直接对接。

1.添加依赖

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
</dependency>

可以为“langchain4j-community-xxx”其添加统一版本管理:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-bom</artifactId>
<version>1.0.0-beta3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

2.设置配置信息

注意这里需要配置“chat-model”节点,官方文档有问题,如果不配置 chat-model 则不能自动注入百炼模型:

langchain4j:
community:
dashscope:
base-url: https://dashscope.aliyuncs.com/compatible-mode/
chat-model:
api-key: ${ALIYUN-AK}
model-name: qwen-plus

支持的模型列表:https://help.aliyun.com/zh/model-studio/models

3.编写调用代码

import dev.langchain4j.model.chat.ChatLanguageModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/qw")
public class QwenController { @Autowired
private ChatLanguageModel qwenChatModel; @RequestMapping("/chat")
public String chat(String question) {
return qwenChatModel.chat(question);
}
}

小结

当然,以上对接方式是全量输出(得到结果之后一次性返回),生产级别我们通常要使用流式输出,并且需要实现连续(上下文)对话,以及历史对话信息持久化等功能,文章篇幅有限,这里就不一一实现了,大家可以下来自己试试。

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、LangChain4j、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。

国内首个「混合推理模型」Qwen3深夜开源,盘点它的N种对接方式!的更多相关文章

  1. 「BZOJ 2534」 L - gap字符串

    「BZOJ 2534」 L - gap字符串 题目描述 有一种形如 \(uv u\) 形式的字符串,其中 \(u\) 是非空字符串,且 \(v\) 的长度正好为 \(L\), 那么称这个字符串为 \( ...

  2. 国内首款 FPGA 云服务器,性能是通用 CPU 服务器 30 倍以上

    版权声明:本文由薛梁原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/628340001485134638 来源:腾云阁 ht ...

  3. 「C语言」常量和变量的表示、应用和变量命名规则

    在程序运行中,其值不能改变的量成为常量. 在基本数据类型中,常量可分为整型常量.实型常量.符号常量和字符型常量(包括字符常量和字符串常量),现分别介绍如下: 目录: 一.常量 二.C语言标识符 三.变 ...

  4. 声网教育aPaaS 产品灵动课堂:「低代码」开发,15分钟极速上线

    1 月 20 日,声网Agora 在官网正式发布教育行业首款 aPaaS 产品灵动课堂,帮助教育机构和开发者最快 15 分钟上线自有品牌.全功能的在线互动教学平台,节省 90% 开发时间.目前,声网面 ...

  5. 「zigbee - 1」工欲善其事必先利其器 - IAR for 8051 IDE customization

    最近在实验室做一些 Zigbee 相关的事情,然而一直没在博客上记录啥东西,也不像原来在公司有动力在 Confluence wiki 上扯东扯西.直到前些阵子,跑到 feibit 论坛上(国内较大的一 ...

  6. 从零开始单排学设计模式「策略模式」黑铁 II

    阅读本文大概需要 1.7 分钟. 本篇是设计模式系列的第三篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统.所以现在打算重写,加上距离现在也有一段时间了, ...

  7. 【转】具透 | 你可能不知道,iOS 10 有一个中国「特供」的联网权限功能

    9 月底,苹果正式在北京成立了苹果中国研发中心.近几年,我们也在每年更新的 iOS 系统中不断看到,苹果对中国市场的关照.从早前的九宫格输入法,到最近的骚扰电话拦截,都照顾了国内用户的需求. 在 iO ...

  8. CDH 6.0.1 集群搭建 「After install」

    集群搭建完成之后其实还有很多配置工作要做,这里我列举一些我去做的一些. 首先是去把 zk 的角色重新分配一下,不知道是不是我在配置的时候遗漏了什么在启动之后就有报警说目前只能检查到一个节点.去将 zk ...

  9. Linux 小知识翻译 - 「架构 续」(arch)

    上次,从「计算机的内部构造」的角度解释了架构这个术语.这次,介绍下架构中经常提到的「i386架构」及之后的「i486」,「i586」. 安装Linux的时候,很多人即使不了解但也会经常听到i386架构 ...

  10. NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立

    http://3g.163.com/all/article/DM995J240511AQHO.html 选自the Gradient 作者:Sebastian Ruder 机器之心编译 计算机视觉领域 ...

随机推荐

  1. Java连接数据库 CreateStatement 和 PrepareStatement 的区别与优劣

    一.简介 先说下CreateStatement 和 PrepareStatement 这俩到底是干啥的吧. 作用:其实这俩干的活儿都一样,就是创建了一个对象然后去通过对象调用executeQuery方 ...

  2. Luogu P9055 [集训队互测 2021] 数列重排 题解 [ 紫 ] [ 构造 ] [ 数学 ]

    数列重排:差点就场切的神仙构造,最后一步想假了,导致我模拟赛荣获 25+5+0 的好成绩! 这题部分分很有启发性,跟着一步一步打基本能想到正解的构造,但也有可能想偏部分分的意思,想假策略. 构造 先看 ...

  3. JUC并发—5.AQS源码分析一

    大纲 1.JUC中的Lock接口 2.如何实现具有阻塞或唤醒功能的锁 3.AQS抽象队列同步器的理解 4.基于AQS实现的ReentractLock 5.ReentractLock如何获取锁 6.AQ ...

  4. Qt QString的格式化与QString的拼接

    1. QString 与 QString 直接用 + 号也可以 QString date = "昨晚"; QString msg = "你真棒": QStrin ...

  5. Azure - [01] 订阅管理

    题记部分 001 || 核心功能 (1)访问控制   Azure订阅通过基于角色的访问控制(RBAC)系统,允许管理员精细管理用户.组和应用程序对资源的访问权限.RBAC系统通过将权限分配给角色,再将 ...

  6. java.lang.IllegalStateException: File name has been re-used with different files. (flume报错)

    报错日志: java.lang.IllegalStateException: File name has been re-used with different files. Spooling ass ...

  7. CentOS7脚本检测SpringBoot项目JAR包变化后自动重启

    #!/bin/bash # 文件目录 fileDir=/usr/local/project/back logDir=/usr/local/project/logs # 设置需要检测的文件路径 file ...

  8. Easyexcel(2-文件读取)

    同步读取 读取单个Sheet 通过sheet方法指定对应的Sheet名称或下标读取文件信息 通过doReadSync方法实现同步读取 @Data public class UserExcel { @E ...

  9. 【EX6-1】带孔平板拉伸的弹塑性分析

    带孔平板拉伸的弹塑性分析 来源:<ABAQUS有限元分析实例详解>石亦平等 1. 建模 塑性数据: abaqus输入塑性数据见ABAQUS弹塑性分析 网格划分: 2. 分析设置 单元类型设 ...

  10. xxe学习笔记

    什么是xxe XXE(XML External Entity Injection)全称为XML外部实体注入,由于程序在解析输入的XML数据时,解析了攻击者伪造的外部实体而产生的.例如PHP中的simp ...