尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Spring AI 代码分析(一)--工程结构

Spring AI 代码分析(一)--工程结构
📅 发布时间:2026/6/20 1:00:09

Spring AI 工程分析文档

请关注微信公众号:阿呆-bot

1. 工程结构概览

Spring AI 是一个大型的多模块 Maven 项目,采用模块化设计,主要分为核心模块、模型实现、向量存储、自动配置等几大类。下面我们来看看主要的目录结构(已排除 spec、doc 等文档相关文件夹):

spring-ai-main/
├── spring-ai-commons/              # 基础公共模块,无其他 Spring AI 依赖
├── spring-ai-model/                 # AI 能力抽象层(ChatModel、EmbeddingModel 等)
├── spring-ai-vector-store/          # 向量数据库统一抽象
├── spring-ai-client-chat/           # 高级对话 AI API(ChatClient)
├── spring-ai-rag/                   # 检索增强生成框架
├── spring-ai-retry/                 # 重试机制
├── spring-ai-bom/                   # 依赖管理 BOM
│
├── models/                          # AI 模型实现
│   ├── spring-ai-openai/           # OpenAI 实现
│   ├── spring-ai-anthropic/         # Anthropic Claude 实现
│   ├── spring-ai-azure-openai/      # Azure OpenAI 实现
│   ├── spring-ai-ollama/            # Ollama 本地模型
│   └── ... (20+ 个模型实现)
│
├── vector-stores/                   # 向量数据库实现
│   ├── spring-ai-pgvector-store/   # PostgreSQL/PGVector
│   ├── spring-ai-chroma-store/      # Chroma
│   ├── spring-ai-pinecone-store/    # Pinecone
│   ├── spring-ai-qdrant-store/      # Qdrant
│   └── ... (20+ 个向量存储实现)
│
├── auto-configurations/             # Spring Boot 自动配置
│   ├── models/                      # 模型自动配置
│   ├── vector-stores/               # 向量存储自动配置
│   └── mcp/                         # MCP 协议自动配置
│
├── document-readers/                # 文档读取器
│   ├── pdf-reader/                    # PDF 解析
│   ├── markdown-reader/              # Markdown 解析
│   └── tika-reader/                 # 通用文档解析
│
├── memory/repository/               # 对话记忆存储实现
│   ├── spring-ai-model-chat-memory-repository-jdbc/
│   ├── spring-ai-model-chat-memory-repository-mongodb/
│   └── ...
│
└── spring-ai-spring-boot-starters/  # Spring Boot Starters├── spring-ai-starter-model-openai/├── spring-ai-starter-vector-store-pgvector/└── ...

2. 技术体系与模块关系

Spring AI 采用分层架构设计,从底层到上层依次是:基础层 → 抽象层 → 实现层 → 自动配置层。这种设计让代码既灵活又易于扩展。
image.png

技术栈说明:

  • Java 17 + Spring Boot 3.5.7:现代 Java 企业级开发栈
  • Maven:依赖管理和构建工具
  • 响应式编程:支持 Reactor 流式处理
  • 观察性:集成 Micrometer,提供指标和追踪

3. 关键场景示例代码

3.1 使用 ChatModel 进行对话

这是最基础的用法,直接调用 AI 模型:

@Autowired
private ChatModel chatModel;public String chat(String userMessage) {// 简单调用String response = chatModel.call(userMessage);return response;// 或者使用 Prompt 对象,更灵活Prompt prompt = new Prompt(new UserMessage(userMessage));ChatResponse response = chatModel.call(prompt);return response.getResult().getOutput().getContent();
}

3.2 使用 ChatClient 流式 API

ChatClient 提供了更友好的流式 API,类似 WebClient 的风格:

@Autowired
private ChatModel chatModel;public void streamChat(String question) {ChatClient chatClient = ChatClient.create(chatModel);chatClient.prompt().user(question).stream().content().doOnNext(chunk -> System.out.print(chunk)).blockLast();
}

3.3 使用 VectorStore 进行相似度搜索

向量存储是 RAG 的核心,用于存储和检索文档:

@Autowired
private EmbeddingModel embeddingModel;
@Autowired
private VectorStore vectorStore;public void storeAndSearch() {// 1. 存储文档List<Document> documents = Arrays.asList(new Document("Spring AI 是一个 AI 应用开发框架"),new Document("支持多种 AI 模型和向量数据库"));vectorStore.add(documents);// 2. 相似度搜索List<Document> results = vectorStore.similaritySearch("AI 框架");results.forEach(doc -> System.out.println(doc.getContent()));
}

3.4 RAG 模式:检索增强生成

这是 Spring AI 的杀手级功能,结合向量存储和 AI 模型:

@Autowired
private ChatClient chatClient;
@Autowired
private VectorStore vectorStore;public String ragQuery(String question) {// 使用 QuestionAnswerAdvisor 自动处理 RAGQuestionAnswerAdvisor advisor = new QuestionAnswerAdvisor(vectorStore);return chatClient.prompt().user(question).advisors(advisor).call().content();
}

4. 入口类与关键类关系

Spring AI 的入口主要是各种 AutoConfiguration 类,它们负责自动配置 Bean。核心接口之间的关系如下:
image.png

关键入口类说明:

  • AutoConfiguration 类:位于 auto-configurations/ 目录,根据 classpath 自动配置相应的 Bean
  • ChatModel:所有对话模型的统一接口,包括 OpenAI、Anthropic 等
  • VectorStore:向量数据库的统一抽象,支持 PGVector、Chroma、Pinecone 等
  • ChatClient:高级 API,提供流式、Advisor 等高级特性

5. 外部依赖

Spring AI 的外部依赖主要分为几大类:

5.1 AI 模型提供商 SDK

  • OpenAI:官方 Java SDK
  • Anthropic:Claude API 客户端
  • Azure OpenAI:Azure 服务 SDK
  • AWS Bedrock:AWS SDK for Java
  • Google GenAI:Google AI SDK
  • Ollama:本地模型运行框架

5.2 向量数据库客户端

  • PostgreSQL/PGVector:JDBC + pgvector 扩展
  • Chroma:Python 服务的 HTTP 客户端
  • Pinecone:官方 Java SDK
  • Qdrant:REST API 客户端
  • Redis:Spring Data Redis
  • MongoDB Atlas:MongoDB Java Driver
  • Elasticsearch:Elasticsearch Java Client
  • 还有 Neo4j、Weaviate、Milvus 等 10+ 种实现

5.3 文档处理

  • Apache Tika:通用文档解析
  • PDFBox:PDF 处理
  • Jsoup:HTML 解析
  • CommonMark:Markdown 解析

5.4 构建和测试工具

  • Maven:构建工具
  • Testcontainers:集成测试容器
  • JaCoCo:代码覆盖率
  • Checkstyle:代码风格检查

6. 工程总结

Spring AI 这个项目,说白了就是 Spring 生态在 AI 领域的延伸。它的设计理念非常清晰:可移植性 + 模块化 + POJO 优先。

6.1 设计亮点

第一,抽象做得好。不管是 OpenAI 还是 Anthropic,不管是 PGVector 还是 Pinecone,都用统一的接口。这意味着你可以轻松切换提供商,不用改业务代码。

第二,模块化设计。核心抽象和具体实现完全分离,想用哪个模型、哪个向量数据库,引入对应的 starter 就行。这种设计让项目既灵活又不会臃肿。

第三,Spring Boot 深度集成。自动配置、Starters、观察性,该有的都有。用起来就像用 Spring Data 一样自然。

6.2 核心价值

Spring AI 解决的核心问题是:如何把企业数据和 API 连接到 AI 模型。它提供了:

  • RAG 框架:让 AI 能"看到"你的数据
  • 工具调用:让 AI 能"操作"你的系统
  • 对话记忆:让 AI 能"记住"对话历史
  • 流式处理:让 AI 响应更流畅

6.3 适用场景

这个框架特别适合:

  • 企业内部知识库问答系统
  • 文档智能检索和分析
  • AI 驱动的业务自动化
  • 多模型、多数据源的 AI 应用

总的来说,Spring AI 是一个企业级、生产就绪的 AI 应用开发框架。它把复杂的 AI 集成工作标准化、简单化,让 Java 开发者也能轻松构建 AI 应用。如果你熟悉 Spring 生态,上手会非常快。

相关新闻

  • Cursor接入飞书MCP
  • linux framebuffer
  • Spring AI 代码分析(二)--Model 领域

最新新闻

  • 从TTL到485:深入解析差分信号转换电路的设计要点与实战应用
  • 杭州GEO优化公司2026年6月Top5:选型疑问与避坑全解 - GEO优化
  • 2026年最新武汉光谷科技职业技术学校联系方式及招生办电话号码 - 武汉中职最新信息发布
  • 揭秘Mac鼠标滚轮终极优化:让外接鼠标拥有触控板般的丝滑体验
  • MC9RS08KA2内部时钟与定时器深度解析:从原理到低功耗设计实战
  • 2026玉林本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号