Spring AI 极简入门:15分钟集成AI到SpringBoot应用

Spring AI 极简入门:15分钟集成AI到Spring应用

零基础也能学会!基于 Spring AI Alibaba,用最简单的方式让Spring应用具备AI能力

什么是 Spring AI?

Spring AI 是一个让Java开发者轻松集成AI能力的框架。简单来说,它帮你处理了与AI服务通信的复杂细节,让你用几行代码就能调用大模型。

核心概念(简单理解):

  • ChatClient:与AI对话的工具
  • Prompt:你给AI的指令
  • ChatResponse:AI返回的答案

环境准备

必需环境

  • JDK 17+
  • Maven 3.6+

获取阿里云API密钥

  1. 注册阿里云账号
  2. 开通百炼平台服务
  3. 获取API Key

15分钟快速开始

第1步:创建项目

访问 start.spring.io 快速创建项目:

配置选项:

  • Project: Maven
  • Language: Java
  • Spring Boot: 3.5.7
  • Group: com.example
  • Artifact: spring-ai-demo
  • Java: 17

依赖:

  • Spring Web

点击"Generate"下载项目压缩包

第2步:添加依赖

pom.xml<dependencies> 部分添加:

xml 复制代码
<dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter</artifactId>
    <version>1.0.0-M5.1</version>
</dependency>

<project> 标签内添加仓库配置:

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

全部依赖如下,以供参考:

xml 复制代码
<?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.5.7</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>spring-ai-demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>spring-ai-demo</name>
	<description>Demo project for Spring Boot AI</description>
	<url/>
	<licenses>
		<license/>
	</licenses>
	<developers>
		<developer/>
	</developers>
	<scm>
		<connection/>
		<developerConnection/>
		<tag/>
		<url/>
	</scm>
	<properties>
		<java.version>17</java.version>
	</properties>
	<dependencies>
		<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>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>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

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

</project>

第3步:配置API密钥

  • 这里的API_KEY是上面获取的阿里云百炼的key

设置环境变量:

Windows:(自己在环境变量配置即可)

cmd 复制代码
set AI_DASHSCOPE_API_KEY=你的API_KEY

Mac/Linux:

bash 复制代码
export AI_DASHSCOPE_API_KEY=你的API_KEY

或者在 application.yml 中配置:

yml 复制代码
spring:
  ai:
    dashscope:
      api-key: ${AI_DASHSCOPE_API_KEY}

第4步:编写AI对话接口

src/main/java/com/example/spring_ai_demo/ 目录下创建 AiController.java

java 复制代码
package com.example.spring_ai_demo;

import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.memory.InMemoryChatMemory;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/helloworld")
public class HelloworldController {
    private static final String DEFAULT_PROMPT = "你是一个博学的智能聊天助手,请根据用户提问回答!";

    private final ChatClient dashScopeChatClient;

    public HelloworldController(ChatClient.Builder chatClientBuilder) {
        this.dashScopeChatClient = chatClientBuilder
                .defaultSystem(DEFAULT_PROMPT)
                // 实现 Chat Memory 的 Advisor
                // 在使用 Chat Memory 时,需要指定对话 ID,以便 Spring AI 处理上下文。
                .defaultAdvisors(
                        new MessageChatMemoryAdvisor(new InMemoryChatMemory())
                )
                // 实现 Logger 的 Advisor
                .defaultAdvisors(
                        new SimpleLoggerAdvisor()
                )
                // 设置 ChatClient 中 ChatModel 的 Options 参数
                .defaultOptions(
                        DashScopeChatOptions.builder()
                                .withTopP(0.7)
                                .build()
                )
                .build();
    }

    @GetMapping("/simple/chat")
    public String simpleChat(String query) {
        return dashScopeChatClient.prompt(query).call().content();
    }
}

第5步:启动测试

  1. 启动项目,和正常springboot项目启动方式是一样的:

  2. 看到以下日志表示启动成功:

    Started SpringAiDemoApplication in 1.988 seconds (process running for 2.266)

  1. 访问接口:

(因为通过大模型思考得到结果,所以接口返回可能慢一些,耐心等待)

复制代码
http://localhost:8080/helloworld/simple/chat?query=你好,介绍一下Spring

浏览器访问:

apifox访问:

🎉 恭喜!你的第一个AI应用已经运行起来了!

测试你的应用

基础对话测试

复制代码
http://localhost:8080/helloworld/simple/chat?query=用Java写一个Hello World程序

技术问题测试

复制代码
http://localhost:8080/helloworld/simple/chat?query=解释一下Spring Boot的自动配置原理

遇到问题怎么办?

常见问题解决

❌ 问题1:依赖下载失败

✅ 解决:检查是否添加了Spring仓库配置

❌ 问题2:API密钥错误

✅ 解决:确认环境变量名是 AI_DASHSCOPE_API_KEY

❌ 问题3:JDK版本错误

✅ 解决:用 java -version 检查,确保是JDK 17+

快速检查清单

  • start.spring.io 项目创建成功
  • pom.xml 依赖和仓库配置正确
  • 环境变量已设置
  • 代码复制无误
  • 应用启动成功(看到Started日志)

下一步学什么?

成功运行基础版本后,你可以尝试:

  1. 给AI设定角色 - 让AI成为编程助手、翻译专家等
  2. 处理复杂对话 - 实现多轮对话记忆
  3. 文件处理 - 让AI读取和分析文档
  4. 其他AI服务 - 尝试OpenAI、Azure等

总结

通过这个极简教程,你已经学会了:

  • ✅ 使用start.spring.io快速创建项目
  • ✅ 添加Spring AI依赖
  • ✅ 配置API密钥
  • ✅ 创建AI对话接口
  • ✅ 测试应用

Spring AI让AI集成变得异常简单,现在你可以在任何Spring项目中快速添加AI能力了!


相关链接

标签: #SpringAI #入门教程 #JavaAI #SpringBoot #阿里云百炼

相关推荐
老兵发新帖8 小时前
transformer架构为什么要切分为多头?
人工智能
金融街小单纯8 小时前
学习笔记:货币中性的辩证思维与中国实践
人工智能
啥也不行就是菜8 小时前
【AI助手】从零构建文章抓取器 MCP(Node.js 版)
人工智能·mcp·trae
亚里随笔8 小时前
ReSpec:突破RL训练瓶颈的推测解码优化系统
人工智能·深度学习·自然语言处理·大语言模型·rlhf
易元8 小时前
Spring 应用记录(Bean的注册与注入机制)
spring boot·后端
腾讯云开发者8 小时前
对话香港城市大学张泽松:AI时代教育“变天”?先抓核心能力|TVP专访
人工智能
岁月宁静9 小时前
图像生成接口的工程化设计与落地实践:封装豆包图像生成模型 Seedream 4.0 API
前端·人工智能·node.js
万岳科技程序员小金9 小时前
多商户商城APP源码开发的未来方向:云原生、电商中台与智能客服
人工智能·云原生·开源·软件开发·app开发·多商户商城系统源码·多商户商城app开发
蓝色 - Lanse9 小时前
模型推理如何利用非前缀缓存
人工智能·缓存