轻松入门SpringAI-SpringAI Alibaba实战

轻松入门 Spring AI 调用阿里通义千问(Alibaba Tongyi Qianwen)实战
(2026年1月 · 两种主流方式对比 + 最实用代码模板)

目前(2026年初)接入阿里通义千问主要有两种主流路径,推荐顺序如下:

排名接入方式优点缺点/限制推荐场景难度
1OpenAI兼容接口(最推荐)配置极简、代码复用率最高、生态最全需联网、依赖阿里API Key快速开发、生产环境、混合模型★☆☆
2Spring AI Alibaba 官方starter原生支持阿里生态、多模态/Agent更强、可观测性好依赖更多阿里系starter、学习曲线稍高深度集成阿里云、Agent/多智能体★★★

方式一:OpenAI兼容模式(99%场景首选,超级简单)

通义千问从2024年起就提供了非常完善的 OpenAI 兼容接口,所以直接用 spring-ai-openai-spring-boot-starter 就能无缝接入。

1. 依赖(只需这个)

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

2. application.yml 最简配置(2026主流模型推荐)

spring:
  ai:
    openai:
      base-url: https://dashscope.aliyuncs.com/compatible-mode/v1   # 国内推荐
      # base-url: https://dashscope-intl.aliyuncs.com/compatible-mode/v1   # 国际/海外用这个
      api-key: sk-你的阿里云DashScope API Key                # 从阿里云控制台获取
      chat:
        options:
          # 2026年初最常用组合(性价比/能力排序)
          model: qwen-max-latest           # 最强旗舰(推荐)
          # model: qwen-plus-latest        # 性价比之王
          # model: qwen-turbo-latest       # 最快最便宜
          # model: qwen-vl-max-latest      # 多模态(图文理解)- 需支持vision的chat client
          temperature: 0.7
          max-tokens: 8192

3. 通用代码模板(几乎和OpenAI/DeepSeek一模一样)

@RestController
@RequestMapping("/ali")
@RequiredArgsConstructor
public class AliQwenController {

    private final ChatClient chatClient;

    // 1. 普通聊天
    @GetMapping("/chat")
    public String chat(@RequestParam String msg) {
        return chatClient.prompt()
                .user(msg)
                .call()
                .content();
    }

    // 2. 流式输出(前端打字机效果)
    @GetMapping(value = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public Flux<String> stream(@RequestParam String msg) {
        return chatClient.prompt()
                .user(msg)
                .stream()
                .content();
    }

    // 3. 带记忆 + 系统角色(最实用写法)
    private final ChatMemory memory = new MessageWindowChatMemory(12);

    @GetMapping("/memory")
    public String memoryChat(
            @RequestParam String sessionId,
            @RequestParam String message) {

        return chatClient.prompt()
                .system("""
                        你是一位非常专业、幽默、喜欢用生活比喻解释复杂问题的「资深解决方案架构师」
                        用中文回答,结构清晰,尽量使用 markdown 格式
                        """)
                .user(message)
                .advisors(MessageChatMemoryAdvisor.builder()
                        .chatMemory(memory)
                        .sessionId(sessionId)
                        .build())
                .call()
                .content();
    }
}

方式二:使用 Spring AI Alibaba 官方(适合深度集成阿里生态)

如果需要多模态、Agent、Graph工作流、可观测性(ARMS)等阿里专属增强功能,建议用官方 spring-ai-alibaba 系列starter。

依赖示例(选择你需要的模块)

<!-- 核心 dashscope 支持 -->
<dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
    <version>1.0.x 或最新GA</version>   <!-- 2025下半年起1.0 GA 很稳定 -->
</dependency>

<!-- 如果要做Agent/Graph工作流 -->
<dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter-graph</artifactId>
</dependency>

配置示例(部分差异)

spring:
  cloud:
    ai:
      dashscope:
        api-key: sk-你的key
        chat:
          model: qwen-max-latest

代码层面与上面类似,但会多出一些阿里专属的 ChatModelGraph 等高级抽象。

2026年通义千问主流模型速查(性价比推荐)

模型名称能力定位速度价格推荐场景
qwen-max-latest最强旗舰(推理/代码/中文)★★★★★生产主力
qwen-plus-latest性价比王者★★★★★★★日常/中大型项目
qwen-turbo-latest最快、最便宜★★★★★★★★★★高并发、简单问答
qwen-vl-max-latest多模态(图文理解最强)★★★★★看图说话、OCR、文档理解

一句话总结当前最舒服的入门组合

Spring Boot 3.3+ / Spring AI 1.0+ 
+ spring-ai-openai-starter 
+ 通义千问 OpenAI兼容接口 
+ qwen-max-latest / qwen-plus-latest
+ ChatClient流式 + Memory + 系统提示

这样写出来的代码跟接入DeepSeek、硅基流动几乎一模一样,切换成本极低。

需要我帮你扩展某个具体场景吗?
例如:

  • 通义千问多模态(图片理解)
  • 函数调用(Tool Calling)
  • 简单Agent/Graph工作流
  • RAG + 阿里向量引擎

直接告诉我你的下一步想玩的方向~ 😄

文章已创建 3855

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部