前面我们已经可以通过简单的方式集成Spring AI进行快速开发了。授人以鱼不如授人以渔,我们还是需要了解Spring AI的项目结构,以及他的一些核心概念。
我们将Spring AI代码直接fork到我们自己的仓库中。fork的目的是方便我们为了学习偶尔可能做一些调整。fork之后,项目结构如下:
注意Spring AI如果git clone到自己本地,需要JDK17及以上版本,同时Maven建议使用3.8+版本。
项目结构一览。以下模块中基于个人愚见用 【★】数量标注重要程度,如标注有错,欢迎指正:
模块 | 备注说明 |
---|---|
★★★ auto-configurations | ![]() |
★★★ document-readers | ![]() |
★★★ mcp/common(spring-ai-mcp) | Spring AI支持了mcp协议。为mcp客户端和服务端提供一些函数调用的抽象。 |
★★★★ models | ![]() |
★★★★ spring-ai-bom | 不包含任何Java代码,只是用于管理Spring AI所需要的依赖清单,确保项目中使用的库版本兼容。在上面实战的文章中,我们集成Spring AI首先添加的就是这个依赖 |
★★★★ spring-ai-core | 熟悉spring framewoek的,看到这个命名就知道。这个肯定是核心模块,里面通常包含了核心的业务逻辑,包括RAG,聊天,transformer,embedding等核心类。 |
★ spring-ai-docs | Spring AI文档相关。 |
★★ spring-ai-integration-tests | 测试模块 |
★ spring-ai-retry | ![]() |
★★★★ spring-ai-spring-boot-autoconfigure | ![]() |
★★★ spring-ai-spring-boot-docker-compose | 提供一种便捷的方式,通过Docker Compose来管理和部署基于Spring Boot的AI应用。 |
★★★ spring-ai-spring-boot-starters | 提供 Spring Boot 的自动配置和启动器支持,简化 AI 功能的集成。只需引入相关依赖,即可快速启用 AI 功能,如生成式 AI、嵌入模型等。 |
★★ spring-ai-spring-boot-testcontainers | 集成testcontainers支持spring ai的功能测试。 |
★★ spring-ai-spring-cloud-bindings | 将 AI 功能与 Spring Cloud 生态系统集成,支持动态配置管理、服务发现、负载均衡、容错与熔断等功能,适用于分布式环境中的 AI 应用。 |
★★ spring-ai-test | 提供对 Spring 组件的测试支持,兼容 JUnit 和 TestNG 框架。 |
★ vector-stores | ![]() |
看过去spring ai其实遵循了常规的分层体系。通过将不同功能划分到不同模块中实现职责分离,模块化和可扩展性。其实很明显,继续往下看。
如上面的spring-ai-core,models,spring-ai-bom等模块可以划分到核心层。核心层一般作为Spring AI基础,提供了与AI模型交互的核心功能和接口。
包含了spring-ai-spring-boot-autoconfigure,spring-ai-spring-boot-starter提供一系列自动装配能力,便于将Spring AI与Spring Boot无缝集成,实现开箱即用。
包含了模块vector-stores,用于处理处理 AI 应用中的数据存储、检索和预处理。
Spring AI提供了很多支持测试模块,如spring-ai-test,spring-ai-spring-boot-testcontainers,spring-ai-integration-tests。提供不同的测试模块是为了覆盖不同层次的测试需求,确保框架的可靠性和扩展性。
为何需要分多个测试模块?undefined通常是需要职责分离,基础测试工具与容器化测试逻辑解耦,提供代码的可维护性。针对不同的分层有时候需要确保不同的测试策略,如核心原子逻辑的正确性,组件协作的兼容性,或整体流程的稳定性等等。通常不同的测试框架对于某一个层次的测试能力会有独到的优势。因此往往复杂的大型项目中,都会采用分层的架构以及分层的测试模块。
除此以外,还提供了一系列工具的集成,如spring-ai-spring-boot-docker-compose支持docker容器的集成,spring-ai-retry提供重试机制。
通过Spring AI的结构说明,分层结构可以进一步了解Spring AI整体的项目体系。帮助我们了解Spring AI提供的能力,可以更好的帮助我们进行后续的学习。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。