SpringBoot整合Spring AI 全面指南:大佬整活儿全记录!
一、先唠两句,别急着划走
哎我说,兄弟们,你还在手撸OpenAI接口那一坨一坨的代码么?还在用RestTemplate
发请求累得像条狗?搁这儿拼API Key还得拼半天,跟拼多多似的。今儿我就给你掰扯明白个新玩意——Spring AI,Spring全家桶出的AI集成框架,官方亲儿子,那叫一个香!
说白了,就是把你写得头秃的接入逻辑,全特么封装好了;你只管调,啥Agent、ChatModel、PromptTemplate,全都整合上了,AI集成轻松得跟睡觉一样。
咱这篇文章就一件事:SpringBoot + Spring AI,怎么整,咋用,咋优雅到飞起!
二、环境配置一顿乱搞,先把项目搭起来
2.1 上maven依赖,别赖我啰嗦,我也不想写这么全
<!-- Spring Boot 基础 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Spring AI 核心依赖 -->
<dependency>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>0.8.0</version>
</dependency>
这玩意不是啥花里胡哨的破包,是Spring官方出的,升级快,文档多,香得一批,直接整。
2.2 配置 application.yml,别偷懒
spring:
ai:
openai:
api-key: sk-你自己的狗屁key
base-url: https://api.openai.com/v1/
你别拿ChatGPT生成的key唬我啊,那玩意不能真用,得用你自己账号的,实在没办法去申请个试用也行。
三、整一个最简单的聊天接口,连Controller都给你配好了
3.1 配个ChatModel,别整花里胡哨的
// 自动注入 ChatModel,Spring AI 提供的接口
@Autowired
private ChatModel chatModel;
这个chatModel是干啥的?就是你和GPT唠嗑的中间人,它帮你发消息、拿回复,你直接扔Prompt进去就完事儿了。
3.2 Controller手撕代码,全给你整明白
@RestController
@RequestMapping("/chat")
public class ChatController {
@Autowired
private ChatModel chatModel;
@GetMapping("/talk")
public String talk(@RequestParam String message) {
// 构建对话内容
ChatRequest request = ChatRequest.builder()
.messages(List.of(new Message(Role.USER, message)))
.build();
// 发请求,拿结果
ChatResponse response = chatModel.call(request);
// 返回回复内容
return response.getResult().getOutput().getContent();
}
}
说实话,这玩意真不复杂,代码就那几行,但你真要自己手撸,啃文档能啃掉你半个周末,搞不好还得吐两口血。
四、PromptTemplate 配置起来,可比你硬编码优雅多了
就你那种把“你是一只猫,请喵喵叫”写死在Controller里的骚操作,我看着都替你脸红,整点优雅的!
@Configuration
public class PromptConfig {
@Bean
public PromptTemplate promptTemplate() {
return new PromptTemplate("你是一个有趣的AI助手,请回答以下问题:{input}");
}
}
使用的时候直接注入就行:
@Autowired
private PromptTemplate promptTemplate;
String prompt = promptTemplate.create(Map.of("input", "今天天气咋样?"));
甭说,这模板机制跟Thymeleaf有点一个味儿,舒服、灵活、还能复用;搁以前你可能得手动拼字符串,别说优雅了,都要恶心吐了。
五、高级玩法:调用OpenAI函数功能,Spring AI也支持了!
这功能我靠,简直太顶了!ChatGPT 4.0支持函数调用那事儿你听说没?现在Spring AI也能整了!比如:让AI算个天气 API。
@Bean
public ChatFunction getWeatherFunction() {
return new ChatFunction("getWeather", """
{
"location": "string",
"unit": "string"
}
""", (params) -> {
String loc = params.get("location");
String unit = params.get("unit");
return "天气在 " + loc + " 是 25 度,单位:" + unit;
});
}
然后加到chatRequest里就行,自动调用,ChatGPT还真能理解你暴力传参,给你调用上。
六、总结:我不说了,爱学不学系列😤
整了这么大一坨玩意,说句掏心窝子的:Spring AI是真的香,但是真没多少人会用。网上一搜,净是些贴文档、翻译官网的水货。我这是踩着坑,一行行撸过来的,真懂点东西你再回头看文档,它就跟诗一样优美。
记住哥一句话:别瞎造轮子了,Spring AI 这车已经开起来了,你就上车就完事儿!
要是你真整明白了,甭说 ChatGPT,Claude、Gemini、LLaMA、Mistral,全都能无缝切换,Spring AI全给你兼容到牙缝里去了。
以后想干点AI集成的活儿——啥AI客服、智能问答、AI编程助手、自动内容生成,这套整明白,你起码得值个三万起步,真不是吹得~
如果你觉得这篇文章还有点味儿,记得收藏,不然哪天你真要用Spring AI的时候,连这篇文章叫啥都想不起来。
要么你就复制到私藏markdown仓库里,过几年再翻出来,可能还能当秘籍传家,咱这叫技术遗产,懂不?