通义千问开源 Qwen3 大模型:Spring AI 对接 Qwen3

今日凌晨,通义千问团队正式开源了 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

其中:

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(&#34;/ds&#34;)
public class TestController {
private final OpenAiChatModel chatModel;
@Autowired
    public TestController(OpenAiChatModel chatModel) {
        this.chatModel = chatModel;
    }
@RequestMapping(&#34;/chat&#34;)
    public String chat(@RequestParam(&#34;msg&#34;) String msg) {
        String result = chatModel.call(msg);
        System.out.println(&#34;返回结果:&#34; + 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(&#34;/qw&#34;)
public class QwenController {
@Autowired
    private ChatLanguageModel qwenChatModel;
@RequestMapping(&#34;/chat&#34;)
    public String chat(String question) {
        return qwenChatModel.chat(question);
    }
}

小结

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