SpringBoot中使用SpringAIAlibaba框架集成阿里云百炼实现AI快速对话入门示例

场景

国内外有不少提供免费额度的大模型API,很适合个人开发者或小型项目。

阿里云 (通义/百炼)

新用户会有免费额度,适合新人入门练手。

且官方提供starter,不用使用OpenAI 兼容等方式集成。

官方 Starter 集成:

这是最省力、最无缝的方式。

Spring AI 官方团队为少数主流厂商(如 Google Gemini)提供了专门的 Starter,

你只需要在配置文件中填入 api-key,就能获得开箱即用的 *ChatModel Bean。

OpenAI 兼容模式集成:

对于其他绝大多数平台,Spring AI 也提供了非常方便的通用接入方式。

因为许多平台的 API 设计都与 OpenAI 兼容,你可以在配置文件中将 base-url 指向目标平台,

并使用 OpenAI 的客户端来调用

集成阿里百炼平台(使用Spring AI Alibaba框架),JDK 17或更高是必须的。

因为spring-ai-alibaba-starter框架本身就要求JDK 17或更高版本。

框架基础依赖:

spring-ai-alibaba-starter构建在 Spring Boot 3.x 和 Spring AI 之上,而后两者从3.0版本开始,

就将JDK 17作为最低基础版本。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

实现

单独给某项目配置JDK17环境

全局 JDK:

1.8(环境变量 JAVA_HOME 指向它)

需求:新装 JDK17,仅给单个项目使用

下载 JDK17

这里下载解压版(推荐,最安全)

直接解压到一个目录

✅ 不要添加到系统 PATH

✅ 不要修改系统环境变量

✅ 全局 JDK8 完全不动

IDEA 中给项目单独配置 JDK17(推荐)

步骤 1:打开项目 → 项目结构

快捷键:

Ctrl + Alt + Shift + S

步骤 2:配置 Project SDK(选择 JDK17)

Project SDK → 点击 New...

选择你解压 / 安装的 JDK17 目录

Project language level 选择 17

✅ 这一步只对当前项目生效!

步骤 3:配置编译器(关键)

进入 Settings → Build → Compiler → Java Compiler

当前项目的 bytecode version 设为 17

✅ 其他项目依然使用 JDK8,完全不受影响。

获取阿里云百炼 API Key

登录 阿里云百炼控制台。

https://bailian.console.aliyun.com/

在页面右上角选择 "华北2(北京)" 地域,

然后进入 "API Key" 页面,创建一个新的 API Key 并复制保存。

注意:

记得先去阿里云完成实名认证。

平台免费额度用尽后会转为付费,如果你希望避免意外扣费,

建议在百炼控制台开启 "免费额度用完即停" 功能。

新建SpringBoot项目

添加 spring-ai-alibaba-starter 依赖,并指定 Spring Milestones 仓库

修改pom文件:

复制代码
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.5</version>
    </parent>

    <groupId>com.example</groupId>
    <artifactId>spring-ai-alibaba-bailian</artifactId>
    <version>1.0</version>

    <properties>
        <java.version>17</java.version>
        <spring-ai-alibaba.version>1.0.0-M5.1</spring-ai-alibaba.version>
    </properties>

    <dependencies>
        <!-- Spring Boot Web Starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud.ai</groupId>
            <artifactId>spring-ai-alibaba-starter</artifactId>
            <version>1.0.0-M5.1</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>

注意上面的单独配置SpringAI仓库。

yml中添加如下配置:

复制代码
spring:
  ai:
    dashscope:
      api-key: 你自己申请的apikey
    chat:
      options:
        model: qwen-max 

新建一个对话controller

复制代码
package com.badao.ai.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ChatController {

    private final ChatClient chatClient;

    public ChatController(ChatClient.Builder builder) {
        this.chatClient = builder.build();
    }

    @GetMapping("/ai/generate")
    public String generate(@RequestParam(value = "message", defaultValue = "你好") String message) {
        return chatClient.prompt()
                .user(message)
                .call()
                .content();
    }
}

运行测试

启动项目,测试接口

相关推荐
予枫的编程笔记25 分钟前
Agent 到底是什么?从架构演进看 AI Agent 的工程定义
人工智能·agent·harness·agent的演进
成都渲染101云渲染66664 小时前
如何在3ds Max中实现更快、更高质量的渲染
前端·javascript·人工智能
十铭忘6 小时前
MOTIONGPT3:人类运动作为第二模态
人工智能
weigangwin6 小时前
采用 mem0 之前,先决定 Agent 到底允许记住什么
人工智能·opencv·ai·llm·memory·ai agent·mem0
木木学AI7 小时前
AI客服系统技术选型:Agentic架构与传统规则引擎的能力差异评估
人工智能·架构
hhzz7 小时前
Python大数据实战(十六):音乐推荐系统——基于协同过滤算法构建个性化歌单引擎
大数据·人工智能·python·数据挖掘·数据分析
带娃的IT创业者7 小时前
突破算力与安全的边界:深度解析 Mythos AI 的“受信发布”机制与技术影响
人工智能·安全·大语言模型·ai安全·mythos ai·受信发布·ai监管
dreamread7 小时前
2026紫微八字同排工具怎么选:看盘面切换、功能边界和学习路径
人工智能·软件工具·传统文化
paopaokaka_luck7 小时前
英语单词学习系统的设计与实现(基于艾宾浩斯遗忘曲线的智能复习机制、语音朗读、多题型测试与错题自动收录、Echarts图形化分析)
vue.js·spring boot·后端·echarts
耍酷的魔镜7 小时前
核心设计理念:5W2H、JSON-LD 与通用知识图谱
人工智能·json·知识图谱