SpringAI做对了什么

简介: SpringAI 在 AI 编程领域延续了Spring的诸多优势,从易于集成、到通用API设计进行模型切换等。

开发|界面|引擎|交付|副驾——重写全栈法则:AI原生的倍速造应用流

你好,这里是nine[谈架构]系列。

欢迎关注评论私信交流~

springai

SpringAI 在 AI 编程领域延续了Spring的诸多优势,从易于集成、到通用API设计进行模型切换等。

springai

SpringAI为什么好用

1. 易于集成

  • Spring 生态系统:基于 Spring Boot 构建,继承了其强大的依赖注入、自动配置和应用启动特性。
  • 无缝集成:可以轻松地与其他 Spring 项目(如 Spring Data, Spring Cloud)结合使用,形成完整的解决方案。

2. 丰富的模型支持

  • 多平台支持:支持多种主流 AI 平台(如 OpenAI, Hugging Face, IBM Watson 等),满足不同用户的需求。
  • 灵活扩展:用户可以根据需要添加新的 AI 模型或服务,只需遵循现有的模块化设计模式。

3. 高效的开发体验

  • 自动配置:通过 Spring Boot 的自动配置机制,减少了繁琐的手动配置工作。
  • 文档齐全:提供了详尽的文档和示例代码,帮助开发者快速上手。

4. 性能优化

  • 批处理支持:部分模型支持批量处理请求,提高了处理效率。
  • 重试机制:引入了 spring-ai-retry 模块,增强了系统的容错能力,确保在不稳定网络环境下也能稳定运行。

5. 社区支持

  • 活跃社区:作为 Spring 官方项目的一部分,拥有庞大的开发者社区和丰富的资源支持。
  • 持续更新:定期发布新版本,修复 bug 并引入新特性,保持项目的活力和竞争力。

从SpringAI源码看设计

1. 模块化设计

  • 核心模块 (spring-ai-core)

    • 提供了 AI 编程的核心领域模型和接口。
    • 包含了如 Document, EmbeddingModel, ChatClient 等基础类。
    • 定义了通用的工具类和辅助函数。
  • 模型支持模块

    • 每个 AI 模型(如 Ollama, WatsonX, Bedrock, QianFan 等)都有独立的模块。
    • 这些模块依赖于 spring-ai-core,并实现了特定 AI 服务的客户端和配置。
    • 例如,spring-ai-ollama 模块提供了对 Ollama 模型的支持,并集成了 Jackson 库用于 JSON 处理。
  • 向量存储模块

    • 支持多种向量数据库(如 Elasticsearch, Cassandra, MongoDB, Pinecone 等)。
    • 提供了统一的 API 来与这些数据库进行交互,方便用户选择合适的存储方案。
  • 文档读取器模块

    • 包含了 PDF、Markdown 和 Tika 文档读取器,用于处理不同格式的文本文件。
    • 提供了灵活的配置选项,以适应不同的应用场景。
  • 自动配置模块 (spring-ai-spring-boot-autoconfigure)

    • 利用 Spring Boot 的自动配置机制,简化了应用程序的初始化过程。
    • 提供了针对不同 AI 模型和服务的自动配置类,减少了用户的配置负担。

2. 依赖管理

  • 使用 Maven 进行依赖管理,确保所有子模块共享相同的版本控制。
  • 通过 BOM(Bill of Materials)文件统一管理依赖版本,避免版本冲突。
  • 引入了诸如 Jackson、Micrometer、JUnit 等常用库,增强了项目的可扩展性和测试能力。

3. 配置灵活性

  • 提供了丰富的配置属性,允许用户自定义 AI 模型的行为。
  • 例如,BedrockTitanEmbeddingProperties 类允许用户配置 Titan Embedding 模型的启用状态、模型名称和输入类型。

4. 集成测试

  • 各个模块都包含了详细的单元测试和集成测试,确保功能的正确性。
  • 使用了 Testcontainers 和 Docker Compose 来模拟外部服务(如 Redis、Elasticsearch 等),提高了测试环境的真实性和可靠性。

案例

其他类似的框架还有:

  • hncboy/ai-beehiveAI 蜂巢,基于 Java 使用 Spring Boot 3 和 JDK 17,支持的功能有 ChatGPT、OpenAi Image、Midjourney、NewBing、文心一言等等。
  • alibaba/spring-ai-alibaba整合阿里生态基于SpringAI开发的框架。

更多使用demo可以查看 ThomasVitale/llm-apps-java-spring-ai
。该项目提供了文本、语音、向量库等相关模型的集成示例。

目录
相关文章
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
4月前
|
存储 人工智能 运维
云栖实录:重构可观测 - 打造大模型驱动的云监控 2.0 与 AIOps 新范式
大模型时代驱动智能运维变革,阿里云通过统一可观测平台、UModel数字孪生与AIOps Agent,实现数据、认知、决策的全链路升级,重构运维新范式。
743 1
|
人工智能 Java Serverless
【MCP教程系列】搭建基于 Spring AI 的 SSE 模式 MCP 服务并自定义部署至阿里云百炼
本文详细介绍了如何基于Spring AI搭建支持SSE模式的MCP服务,并成功集成至阿里云百炼大模型平台。通过四个步骤实现从零到Agent的构建,包括项目创建、工具开发、服务测试与部署。文章还提供了具体代码示例和操作截图,帮助读者快速上手。最终,将自定义SSE MCP服务集成到百炼平台,完成智能体应用的创建与测试。适合希望了解SSE实时交互及大模型集成的开发者参考。
14816 60
|
存储 人工智能 Java
使用Spring AI调用AI模型
Spring AI是Spring框架的模块,支持人工智能和机器学习,提供简单易用的API集成主流AI服务(如OpenAI、Azure、百度千帆等)。其主要功能包括统一API接口、提示词工程、向量存储、文本嵌入与生成。核心概念涵盖AI Client、Prompt Template和Vector Store。通过添加依赖和配置API密钥,可快速对接Chat Model并使用Advisors API增强交互体验。此外,Spring AI Alibaba项目为阿里云通义模型提供了高层次API抽象,助力开发者构建AI应用。
2196 2
|
存储 安全 算法
【JAVA】HashMap扩容性能影响及优化策略
【JAVA】HashMap扩容性能影响及优化策略
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
11137 122

热门文章

最新文章

下一篇
开通oss服务