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();
    }
}

运行测试

启动项目,测试接口

相关推荐
智购科技自动售货机2 小时前
自动贩卖机厂家哪家价格公道
人工智能·python
海海不掉头发2 小时前
【大模型Prompt-Tuning方法进阶+提示词】-基础学习篇
人工智能·学习·prompt
rrrjqy2 小时前
深入浅出 RAG:万物皆可向量化 (Embedding) 与 Spring AI + pgvector 实战
人工智能·spring·embedding
k8s容器运维大佬2 小时前
‌原油拉升、黄金白银走低,通常利好能源与工业板块,利空贵金属与部分成长型科技股‌。
大数据·人工智能
好运的阿财2 小时前
“锟斤拷”问题——程序中用powershell执行命令出现中文乱码的解决办法
linux·前端·人工智能·机器学习·架构·编辑器·vim
新缸中之脑2 小时前
用LLM提高语音转文本的准确率
人工智能
Thomas.Sir2 小时前
智能革命:AI如何重塑金融风控与信贷审批的底层逻辑
人工智能·python·ai·风控
大囚长2 小时前
大语言模型作为语种民族文明压缩镜像的映射特性分析
人工智能·深度学习·语言模型
认真的小羽❅2 小时前
从入门到精通:Spring Boot 整合 MyBatis 全攻略
spring boot·后端·mybatis