1. 为什么你需要SpringAI + ZhiPu AI这个组合?
如果你是一个Java开发者,尤其是Spring Boot的忠实用户,最近肯定没少听人提起“SpringAI”这个词。简单来说,SpringAI是Spring官方推出的一个项目,它的目标就是把各种大模型的能力,像数据库、消息队列一样,无缝集成到你的Spring应用里。你不用再自己去写一堆HTTP客户端代码,处理复杂的JSON解析和错误重试,SpringAI帮你把这些脏活累活都干了,你只需要关注业务逻辑本身。
那为什么选择ZhiPu AI呢?智谱的GLM系列模型,比如GLM-4、GLM-3-Turbo,在中文理解和生成上的表现有目共睹,对于国内开发者来说,访问速度、技术支持都更友好。把SpringAI和ZhiPu AI结合起来,就相当于给你的Spring Boot应用装上了一个“原生中文大脑”。无论是想做个智能客服、内容摘要工具,还是给内部系统加个问答助手,这个组合都能让你用最“Spring”的方式快速实现。
我自己的项目里就用上了这个组合。最开始我也是自己封装HTTP客户端去调API,虽然也能跑起来,但代码里到处都是RestTemplate和ObjectMapper,配置参数散落在各处,想加个流式响应或者切换模型都很麻烦。后来换到SpringAI,感觉整个世界都清爽了——配置集中了,调用方式统一了,而且和Spring生态里的其他组件(比如Security、Actuator)配合起来毫无障碍。这篇文章,我就把我从零开始集成,到搞定流式响应的实战经验,掰开揉碎了分享给你,保证你跟着做一遍就能上手。
2. 5分钟搞定基础环境与自动配置
万事开头难,但SpringAI把这个“难”字给去掉了。集成ZhiPu AI最快的方式,就是使用Spring Boot Starter,这也是我最推荐新手使用的方式,几乎就是“开箱即用”。
2.1 第一步:创建项目与引入依赖
首先,你得有一个Spring Boot项目。如果你还没有,用Spring Initializr(start.spring.io)快速生成一个,记得选上Spring Web和Lombok(后者能让代码更简洁,可选但推荐)。
接下来,就是添加核心依赖了。打开你的pom.xml文件,在<dependencies>部分加入下面这段:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-zhipuai-spring-boot-starter</artifactId>
<version>0.8.1</version> <!-- 请务必使用最新版本 -->
</dependency>
这里有个小坑我踩过:SpringAI的版本迭代比较快,一定要去官方仓库或者Maven中央库查一下最新版本。用旧版本可能会遇到一些API不兼容或者Bug。如果你用的是Gradle,那么在build.gradle的dependencies块里加上这一行就行:implementation 'org.springframework.ai:spring-ai-zhipuai-spring-boot-starter:0.8.1'。
加完依赖,刷新一下你的Maven或Gradle项目,让依赖下载完成。这个过程可能会下载一些相关的包,比如SpringAI的核心包、Reactor(用于响应式编程,流式响应必备)等,耐心等一下。
2.2 第二步:申请并配置你的API Key
依赖有了,接下来你得有把“钥匙”去调用ZhiPu AI的服务。去智谱AI的开放平台官网注册账号,并创建一个API Key。这个过程很简单,跟着网站指引走就行,通常几分钟就能搞定。
拿到那串看起来像乱码的API Key之后,就是关键的配置环节了。打开你的application.properties(或者你喜欢的application.yml),添加以下配置:
# ZhiPu AI 核心配置
spring.ai.zhipuai.api-key=你的真实API_KEY
spring.ai.zhipuai.chat.options.model=glm-4-air
spring.ai.zhipuai.chat.options.temperature=0.7
spring.ai.zhipuai.chat.options.max-tokens=1024
我来解释一下这几个参数:
api-key:这个没得说,就是你的通行证。切记不要把这个值直接硬编码在代码里,更不要上传到GitHub等公开仓库!最好使用环境变量或者配置中心来管理。model:指定使用哪个模型。glm-4-air是性价比较高的一个版本,适合大多数对话场景。如果你想用更强大的glm-4或者更快的glm-3-turbo,直接改这里就行。temperature:这个参数控制生成文本的“创造性”,范围在0到1之间。值越低(如0.2),输出越确定、保守;值越高(如0.8),输出越随机、有创意。0.7是一个比较平衡的起点,你可以根据你的场景调整。max-tokens:限制单次回复的最大长度。设得太小回答可能不完整,太大又浪费资源。1024对于短对话足够了,长文生成可以调到2048或更高。
配置完这些,其实你的SpringAI + ZhiPu AI集成已经完成了90%。Spring Boot的自动配置机制会在后台帮你创建好所有的Bean,包括ZhiPuAiChatModel这个核心的聊天模型对象。
2.3 第三步:写个接口试试水
光说不练假把式,我们来写一个最简单的REST接口验证一下。创建一个ChatController:
import lombok.RequiredArgsConstructor;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequiredArgsConstructor
public class ChatController {
/
451



被折叠的 条评论
为什么被折叠?



