SpringAIAlibaba快速接入阿里云百炼

首先创建springboot+maven的项目

引入依赖\

java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.example</groupId>
    <artifactId>ai_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>ai_demo</name>
    <description>ai_demo</description>
    <properties>
        <java.version>17</java.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- 1. 先 Alibaba -->
            <dependency>
                <groupId>com.alibaba.cloud.ai</groupId>
                <artifactId>spring-ai-alibaba-bom</artifactId>
                <version>1.0.0.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- 2. 再 Spring AI -->
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>1.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <dependency>
            <groupId>com.alibaba.cloud.ai</groupId>
            <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

<!--        <dependency>-->
<!--            <groupId>org.springframework.ai</groupId>-->
<!--            <artifactId>spring-ai-starter-model-ollama</artifactId>-->
<!--        </dependency>-->
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

注意:对于spring-ai版本由于 spring-ai (**1.0.0-M6 之前)**相关依赖包还没有发布到中央仓库,如出现 spring-ai-core 等相关依赖解析问题,请在您项目的 pom.xml 依赖中加入如下仓库配置。

java 复制代码
<repositories>
  <repository>
    <id>spring-milestones</id>
    <name>Spring Milestones</name>
    <url>https://repo.spring.io/milestone</url>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

其中我也踩了不少的坑

1. Starter 包名重大变更(最核心报错原因)

Spring AI Alibaba 1.0.0.2 版本彻底废弃旧启动器

  • 旧(已失效):spring-ai-alibaba-starter
  • 新(唯一可用):spring-ai-alibaba-starter-dashscope

旧包名在新版本仓库完全不存在 ,会直接报: version is missing、依赖爆红、编译失败,即使引入 BOM 也无效

2. BOM 导入顺序错误,导致版本管理失效

很多人双 BOM 都引了依旧报错,本质是顺序颠倒

  • ❌ 错误顺序:先 Spring AI BOM、后 Alibaba BOM(版本覆盖错乱)
  • ✅ 正确顺序:先 Spring AI Alibaba BOM,再 Spring AI BOM

阿里 AI BOM 需要优先锁定适配版本,顺序反了会出现版本不匹配、依赖无法托管、莫名冲突。

本地部署:

加入Ollama依赖

java 复制代码
<dependency>-->
    <groupId>org.springframework.ai</groupId>-->
    <artifactId>spring-ai-starter-model-ollama</artifactId>-->
</dependency>-->

配置所需配置项

java 复制代码
spring.application.name=ai_demo
server.port=8080
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.model=deepseek-r1:1.5b

那么如果要连接阿里云百炼平台:

加入依赖

java 复制代码
        <dependency>
            <groupId>com.alibaba.cloud.ai</groupId>
            <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
        </dependency>

配置配置项

其中的api-key需要你自己从阿里云百炼平台去申请

java 复制代码
spring.ai.dashscope.api-key=
spring.ai.dashscope.chat.options.model=qwen-max

Controller

java 复制代码
package org.example.ai_demo.controller;

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

@RestController
@RequestMapping("/ai")
public class ChatController {
    private final ChatClient chatClient;
    public ChatController(ChatClient.Builder chatClient) {
        this.chatClient = chatClient.build();
    }
    @RequestMapping("/chat")
    public String chat(@RequestParam(value = "message") String message){
        return this.chatClient.prompt()
                .user(message)
                .call()
                .content();
    }
}

跑一下看看

相关推荐
砍材农夫3 小时前
spring|spring web|拦截器、过滤器、aop
java·spring boot·spring·spring cloud
mldong10 小时前
一个 App,十三套后端:手机审批端 uni-jeeflow-app 开源了
java·架构
tqs_1234511 小时前
MySQL RR隔离级别死锁|Gap间隙锁、临键锁,订单并发范围查询死锁根因方案
java
逆境不可逃11 小时前
Pi Agent 学习笔记:多个工具怎样并行执行
java
weixin_BYSJ198711 小时前
【计算机毕设】基于SpringBoot与Vue的文物保护档案管理系统08621
vue.js·spring boot·spring cloud·微服务·架构·django·课程设计
Flynt12 小时前
Java 27 升级实测:默认值动得比新特性多,有个老参数会让 JVM 直接起不来
java·jvm·后端
Bs_MoneyMagnet12 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计
星云API技术支持12 小时前
企业微信二次开发:群权限设置、成员管理与群资料维护的接口组合实践
java·前端·企业微信
niucloud-admin12 小时前
JAVA V6 多商户商城 开发文档——job 计划任务开发
java·python·github
海宇AI13 小时前
零信任架构实战:基于海宇柠檬查出险-登记证构建自动化车抵贷核保网关
java·人工智能·架构·自动化