






快速入门




用流式的话要指定字符编码,不然要乱码


在@Bean中加一个default的配置来加环绕通知来加输出日志,要自己在配置中配置输出日志的级别,不然也看不到












向量数据库



使用springAI自带的simpleVectorStore来实现向量数据库,这个不需要下载,所以不用占很多的存,用来示例,但实际开发中不要使用这个。用simple这个也不用引入依赖但是要配置,配置一个Bean,然后注入使用就可以

如果你也听说,有没有像过我,对流言会附和,还是你知道我还是我,跌跌撞撞才明白了许多,懂我的人就我一个我,想到你想起我,胸口依然温热


有了前提的知识,那么怎么把这些知识(JSON,Test,PDF...(引入对应相关的依赖))转化为document的文档呢,用spring提供的DocumentReader可以帮我们完成这件事

将docment加入向量库后也不用自己去将文件向量化了,向量数据库会自己将传入的文件向量化
2022年11月,OpenAI发布ChatGPT,AI一夜之间进入普通人的生活。2025年1月,DeepSeek-R1的发布更是彻底震惊了全球科技界——训练成本仅560万美元,性能却比肩OpenAI o1,这让中小型企业也有了参与AI开发的资格。
面对这场技术变革,Java开发者难免焦虑:AI开发似乎是Python的天下,我们这些深耕Spring生态的程序员该怎么办?
答案是:Spring AI。
要知道,全球有25亿+的Java应用正在运行,超过90%的服务端应用采用Java语言。传统应用要AI化,最好的方式就是用Java自己的方案。而Spring AI正是Spring官方在2024年推出的AI框架,它的核心思想很简单:
让Java开发者像使用Spring Boot一样方便地调用AI模型。
打个比方,如果把各种AI模型(OpenAI、DeepSeek、通义千问等)比作不同品牌的电器,那Spring AI就是一个万能转换插头——你只需要学会一套接口,就能调用所有主流模型。
Spring AI的架构分为两层:
Spring AI:Spring官方定义的AI标准规范(接口层)
Spring AI Alibaba / OpenAI Starter:各厂商的具体实现
在学习具体代码之前,先理解几个核心概念:
| 概念 | 大白话解释 |
|---|---|
| ChatModel | 智能对话机器人,你发消息,它回答案 |
| ChatClient | ChatModel的升级版,带链式调用等高级功能 |
| Prompt | 你给AI的指令,包含系统设定和用户问题 |
| SystemMessage | 设置AI的“人格”和规则 |
| UserMessage | 你实际想问的问题 |
理论说再多,不如动手跑起来。下面我们用三步完成Spring AI的集成,目标是实现一个简单的聊天接口。
在pom.xml中添加以下配置:
xml
💡 小提示:虽然我们用的是DeepSeek模型,但因为它兼容OpenAI的API规范,所以引入
spring-ai-starter-model-openai即可。
在src/main/resources/application.yml中添加配置:
yaml
⚠️ 安全提醒:生产环境请使用环境变量管理API Key,不要硬编码在配置文件中!
java
启动Spring Boot应用,访问:
text
你会看到AI返回的代码示例:
java
🎉 恭喜!你已经完成了第一个Spring AI应用!
基础调用只是开始,Spring AI提供了丰富的功能来提升AI应用的智能水平。
java
系统消息(SystemMessage)是让AI扮演特定角色的关键:
java
优秀的系统消息包含四个要素:
| 要素 | 说明 | 示例 |
|---|---|---|
| 角色设定 | AI是什么身份 | "你是一个法律顾问" |
| 能力边界 | 能回答什么 | "只回答法律相关问题" |
| 输出格式 | 要求如何返回 | "用HTML格式返回" |
| 风格要求 | 语气、措辞要求 | "用通俗易懂的语言" |
传统接口需要等待AI完全生成答案才能看到结果,体验不够好。流式响应可以实现逐字输出:
java
前端通过EventSource接收数据,就能实现ChatGPT那样的打字机效果。
Spring AI支持同时配置多个模型:
java
使用时根据场景选择不同模型:
java
java
如果输入文本过长,可能超过模型的token限制,需要在配置中调整:
yaml
yaml
Spring AI的核心优势是面向接口编程——切换模型提供商只需三步:
换依赖:将spring-ai-starter-model-openai换成spring-ai-alibaba-starter-dashscope
改配置:将spring.ai.openai.api-key改成spring.ai.dashscope.api-key
Controller代码完全不用改!
| 场景 | 说明 | 典型案例 |
|---|---|---|
| 智能客服 | 7x24小时自动解答客户问题 | 梅奥诊所的智能医疗咨询客服 |
| 代码生成 | 根据需求自动生成代码片段 | 辅助开发、代码审查 |
| 内容创作 | 生成文章、故事、文案初稿 | 新闻报道草稿生成 |
| 数据分析 | 从大量数据中提取洞察 | 金融数据分析辅助决策 |
| 教育辅导 | 个性化学习推荐、题目解析 | 智能教育平台 |
| 翻译服务 | 多语言实时翻译 | 跨国业务沟通 |
Spring AI是Spring官方AI框架,让Java开发者用熟悉的方式调用AI模型
ChatClient是日常开发的首选,90%的场景用它就够了
Prompt工程是提升AI输出质量的关键,系统消息+用户消息的组合很重要
流式响应能大幅提升用户体验,实现打字机效果
多模型支持让你可以根据场景灵活选择最合适的模型
Spring AI正在快速演进,值得关注的几个方向:
多模态支持:从文本扩展到图像、语音、视频
本地模型集成:优化对Ollama等本地运行模型的支持,降低云端依赖
企业级能力:与Spring Security、Spring Cloud深度集成,提供鉴权、限流、熔断能力
RAG(检索增强生成):让AI能访问企业私有数据,生成更精准的回答
原文作者:blxr_;如有侵权,请联系管理员删除。