面向 AI 工程的 Spring 应用框架,提供多模型与向量库的统一抽象,支持 RAG、Function Calling 等企业级 AI 应用构建模式。
项目概述#
Spring AI 是由 Spring 官方(spring-projects 组织)维护的企业级 AI 集成框架,核心解决企业级 Java 应用接入多种大语言模型与向量数据库时面临的 API 碎片化问题。框架不自研大模型,而是作为中间层提供统一的可移植 API、数据工程管道和应用构建模式。
核心能力#
模型交互层#
- 多提供商统一抽象:支持 Anthropic、OpenAI、Microsoft、Amazon、Google、Ollama 等主流 AI 提供商
- 多模态模型类型:覆盖 Chat Completion、Embedding、Text to Image、Audio Transcription、Text to Speech、Moderation
- 调用方式:提供同步与流式(Streaming)调用,同时允许访问模型特有功能
数据与存储层#
- 向量数据库广泛支持:兼容 Apache Cassandra、Azure Vector Search、Chroma、Elasticsearch、Milvus、MongoDB Atlas、MariaDB、Neo4j、Oracle、PostgreSQL/PGVector、Pinecone、Qdrant、Redis、Weaviate 等
- 跨库可移植 API:提供 SQL-like 语法的元数据过滤 API,屏蔽不同向量库的查询差异
应用构建模式#
- 结构化输出:直接将 AI 模型的输出映射为 Java POJO
- 工具/函数调用:允许模型请求执行客户端定义的工具和函数,获取实时数据
- RAG 与对话记忆:内建 Chat Conversation Memory 支持和完整的检索增强生成流程
- 文档 ETL 框架:提供专用于数据工程的文档注入管道
高级 API 与治理#
- ChatClient API:流式 Fluent API,设计风格对标 Spring 的 WebClient / RestClient
- Advisors API:封装常见的生成式 AI 模式,用于变换 LLM 的输入输出,具备跨模型可移植性
- 可观测性:提供针对 AI 相关操作的洞察与监控能力
- AI 模型评估:内置评估生成内容质量、防止幻觉的实用工具
协议与工程化#
- MCP 支持:包含
mcp模块,支持 Model Context Protocol - Spring Boot 原生集成:所有模型和向量库均提供 Starter,支持通过 start.spring.io 一键引入
架构要点#
项目采用典型的 Spring 分层与模块化架构,设计灵感来源于 LangChain/LlamaIndex,但非直接移植:
- 抽象层:
spring-ai-model与spring-ai-vector-store定义跨厂商统一接口 - 实现层:
models/与vector-stores/按厂商隔离存放具体接入实现 - 客户端与控制流:
spring-ai-client-chat封装 Fluent 风格请求构建;advisors/提供类似 AOP 的拦截器机制 - 数据管线:
document-readers/负责多格式文档读取,spring-ai-rag负责检索增强逻辑,memory/repository/负责会话状态管理 - 基础设施:
auto-configurations/与starters/实现 Spring Boot 自动装配;spring-ai-retry提供容错机制;测试层面深度整合 Testcontainers 与 Docker Compose
版本体系#
- Spring AI 2.x.x → Spring Boot 4.x(main 分支,尚未正式 GA)
- Spring AI 1.1.x → Spring Boot 3.5.x
- 运行要求:JDK 17+(官方使用 JDK 21 构建)
典型应用场景#
- 基于企业私有文档的智能问答与对话
- 多模型可移植的 AI 应用开发
- 检索增强生成(RAG)系统构建
- 让 LLM 安全调用企业后端 API 的 Function Calling 场景
快速开始#
- 通过 Spring Initializr(https://start.spring.io)勾选所需的 AI 模型或向量库 Starter
- 在 Maven
pom.xml中引入spring-ai-bom统一管理版本 - 配置对应模型提供商的 API Key 环境变量
- 克隆仓库后执行
./mvnw clean package进行本地构建
待确认信息#
- MCP 模块的具体功能范围需进一步查看源码确认
- README 提及 "Latest Models: GPT-5",具体支持程度待确认
- Spring AI 2.x 尚未正式 GA