Spring AI 1.0 GA 正式发布
Spring AI 1.0 GA 版本已于 2025 年 5 月 20 日正式发布!这标志着 Spring 框架在人工智能领域又迈出了坚实的一步。本文将详细解析这一版本的亮点特性和使用方法,帮助大家快速上手这一强大的 AI 开发工具。
<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0</version>0<type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
1. Spring AI 简介
Spring AI 是 Spring 生态系统的一部分,旨在简化企业级 AI 应用的开发。它提供了一套统一的抽象层,让开发者能够轻松集成各种 AI 模型和服务,包括但不限于 OpenAI、Anthropic Claude、Mistral AI、Ollama 等,同时保持 Spring 框架一贯的简洁性和易用性。
2. 核心特性解析
2.1 多模型支持
Spring AI 1.0 GA 版本支持多种主流大语言模型(LLMs):
- OpenAI (GPT-3.5, GPT-4 系列)
- Anthropic Claude
- Mistral AI
- Ollama
- Azure OpenAI
- Amazon Bedrock
- Google Vertex AI (Gemini)
- HuggingFace
- 多种开源模型(如 Llama 2 等)
2.2 统一抽象层
Spring AI 提供统一的编程模型和 API,开发者可以在不同 AI 模型之间无缝切换,而无需修改大量代码。这种设计理念与 Spring 的其他模块保持一致,极大地提升了开发效率。
@Autowired
private ChatClient chatClient;public String generateResponse(String prompt) {Prompt aiPrompt = new Prompt(prompt);ChatResponse response = chatClient.call(aiPrompt);return response.getResult().getOutput().getContent();
}
2.3 文本嵌入和向量存储
Spring AI 提供了强大的文本嵌入功能,支持将文本转换为向量表示,并与多种向量数据库集成:
- Redis
- PostgreSQL pgvector
- Chroma
- Milvus
- Weaviate
- Neo4j 等
2.4 RAG(检索增强生成)支持
Spring AI 内置了对 RAG(Retrieval Augmented Generation)的支持,帮助开发者构建能够利用自定义知识库的 AI 应用:
@Autowired
private VectorStore vectorStore;public List<Document> similarDocuments(String query) {return vectorStore.similaritySearch(query);
}
2.5 提示工程支持
Spring AI 提供了强大的提示工程工具,包括提示模板、提示变量等:
PromptTemplate promptTemplate = new PromptTemplate("""你是一位专业的 Java 开发者。请解释以下概念:{concept}""");Map<String, Object> variables = new HashMap<>();
variables.put("concept", "Spring AOP");Prompt prompt = promptTemplate.create(variables);
3. 核心组件
Spring AI 的核心组件包括:
- ChatClient: 与各种 LLM 进行交互的客户端
- EmbeddingClient: 用于生成文本嵌入向量
- VectorStore: 向量数据库的抽象接口
- PromptTemplate: 提示模板,支持变量替换
- OutputTransformer: 输出转换器,用于处理 AI 响应
4. 快速入门示例
下面是一个使用 Spring AI 构建简单聊天应用的示例:
@RestController
@RequestMapping("/ai")
public class ChatController {private final ChatClient chatClient;public ChatController(ChatClient chatClient) {this.chatClient = chatClient;}@PostMapping("/chat")public ResponseEntity<String> chat(@RequestBody String message) {Prompt prompt = new Prompt(message);ChatResponse response = chatClient.call(prompt);return ResponseEntity.ok(response.getResult().getOutput().getContent());}
}
配置文件 application.properties
:
spring.ai.openai.api-key=${OPENAI_API_KEY}
spring.ai.openai.chat.options.model=gpt-4
spring.ai.openai.chat.options.temperature=0.7
5. 与 Spring Boot 的集成
Spring AI 可以无缝集成到 Spring Boot 应用中,只需添加相应的依赖:
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>1.0.0</version>
</dependency>
自动配置会自动创建所需的 Bean,开箱即用。
6. 更新日志与改进
Spring AI 1.0 GA 版本相比之前的里程碑版本有以下主要改进:
- 更完善的错误处理和异常机制
- 性能优化和内存使用改进
- 更丰富的模型适配器
- 提升了向量存储的查询效率
- 增强了流式响应的稳定性
- 完善了 API 文档和使用示例
7. 总结
Spring AI 1.0 GA 的发布,标志着 Spring 生态系统在 AI 领域的重要里程碑。它为 Java 开发者提供了一种简单、统一的方式来构建 AI 驱动的应用,同时保持了 Spring 框架一贯的高质量和易用性。
如果你是一名 Spring 开发者,或者正在寻找一种可靠的方式来将 AI 功能集成到你的企业应用中,Spring AI 绝对值得一试。
最后,附上官方文档链接:Spring AI 官方文档,建议大家深入学习,探索更多可能性。
8. 意外惊喜
翻看官方发布日志到最后的时候,竟然发现了我的名字,竟然排在第一个,也不是按照字母排序的。
本文参考了 Spring 官方博客:Spring AI 1.0 GA Released
如有问题,欢迎留言讨论!