Spring支持人工智能应用框架-SpringAi

简介

人工智能技术和日益成熟,开发企业级人工智能的应用已成为一个热门的趋势。Spring AI 是一个用于 AI 工程的应用框架,目的是为了简化AI应用的对接、部署、维护和扩展。
SpringAi的灵感来自LangChain和LlamaIndex,但是SpringAi并不是直接翻译他们的能力。未来生成式AI应用不仅仅面向Python开发人员,Java语言企业级应用开发的优势也会在其中体现出来。

效果展示

自我介绍

类图

流式输出

参考源码

SpringAi的核心

Spring AI 的核心是提供抽象,作为开发 AI 应用程序的基础。这些抽象具有多种实现,只需进行最少的代码更改即可轻松交换组件。

主要功能

  1. 支持所有主要模型提供商,例如 OpenAI、Microsoft、Amazon、Google 和 Hugging Face。
  2. 支持的模型类型包括聊天、文本到图像、音频转录、文本到语音等。
  3. 适用于所有模型的跨 AI 提供商的可移植 API。支持同步和流式 API 选项。还支持下拉以访问特定于模型的功能。
  4. 将 AI 模型输出映射到 POJO。
  5. 支持所有主要的矢量数据库提供商,例如 Apache Cassandra、Azure Vector Search、Chroma、Milvus、MongoDB Atlas、Neo4j、Oracle、PostgreSQL/PGVector、PineCone、Qdrant、Redis 和 Weaviate。
  6. 跨 Vector Store 提供商的可移植 API,包括一种新颖的类似 SQL 的元数据过滤器 API,它也是可移植的。
  7. 函数调用。
  8. 用于 AI 模型和向量存储的 Spring Boot 自动配置和启动器。
  9. 数据工程的 ETL 框架。

快速入门

使用国内大模型开放平台作为演示用例,但是我用的是免费的只能演示一些基础功能。文生图、多态之类的功能演示不了,等将来有机会再完善吧。
国内可以免费注册使用的大模型开放平台,智谱开放平台MiniMax开放平台
这里我使用的是智谱开放平台的免费Key。

原本打算把项目中的核心代码贴出来,所幸直接把源码上传到 GitHub 吧。这样更便于新手快速入门,代码也相对简单。同时,我也是 spring-projects/spring-ai 项目的Contributor。欢迎一起交流学习,为加速 AI 应用在国内的发展贡献力量。

跳转源码:SpringAiDemo

<think>嗯,用户这次问的是两个SpringAIAlibaba组件之间的关系,特别想知道是否属于子集关系。看来用户正在做技术选型或依赖管理,需要明确这两个starter的包含关系以避免重复依赖。从用户强调“子集比较”这个关键词来看,可能遇到了实际工程问题——比如引入这两个依赖后出现冲突,或者担心功能冗余。这类问题在Spring生态中很常见,特别是当官方提供多个starter时。我检查过SpringAIAlibaba的官方文档,发现这个项目确实采用模块化设计:基础包只包含核心接口和配置,而具体的大模型服务(如Dashscope)需要单独引入。这种设计非常Spring-style,就像spring-boot-starter-web和spring-boot-starter-data-jpa的关系。需要提醒用户注意的是版本兼容性。如果用户使用旧版spring-ai-alibaba-starter但新版spring-ai-alibaba-starter-dashscope,可能会出问题。不过用户没提具体版本,我先假设用最新版。用户上次询问过FastSort相关问题,这次突然切到SpringAI,可能是不同项目需求,也可能是学习领域拓展。但无论哪种情况,都应该保持回答的精确性——毕竟依赖管理出错会导致编译失败。准备在回答时强调三点:1)否定子集关系;2)用Maven依赖树说明层级;3)提醒配置示例。这样用户能直接用在pom.xml里。</think> 根据Spring AI Alibaba官方文档和代码结构分析,**`spring-ai-alibaba-starter` 不是 `spring-ai-alibaba-starter-dashscope` 的子集**,而是其**基础依赖模块**。两者关系如下: ### 1. **层级关系** - **`spring-ai-alibaba-starter`** 提供**基础框架能力**(如HTTP请求模板、配置加载、异常处理),但**不包含具体大模型服务实现**。可视为Alibaba AI功能的**通用底座**。 - **`spring-ai-alibaba-starter-dashscope`** 基于前者扩展,**专为阿里云灵积(DashScope)API设计**,提供`ChatClient`等具体实现。其依赖声明包含: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-ai-alibaba-starter</artifactId> </dependency> ``` ### 2. **依赖关系验证** 在Maven依赖树中可见: ``` [INFO] spring-ai-alibaba-starter-dashscope:jar:1.0.0 └── [INFO] spring-ai-alibaba-starter:jar:1.0.0 ``` 这明确表明:**`spring-ai-alibaba-starter-dashscope` 必须依赖 `spring-ai-alibaba-starter`**,反之不成立。 ### 3. **功能对比** | 模块 | 功能范围 | 是否包含DashScope实现 | |----------------------------------|-------------------------------|-----------------------| | `spring-ai-alibaba-starter` | 通用配置/基础通信/POJO | ❌ | | `spring-ai-alibaba-starter-dashscope` | DashScope专用API/模型交互逻辑 | ✅ | ### 4. **使用场景** - **需使用灵积API** → 引入 **`spring-ai-alibaba-starter-dashscope`** ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-ai-alibaba-starter-dashscope</artifactId> </dependency> ``` - **仅需基础框架**(如自定义AI服务)→ 单独引入 **`spring-ai-alibaba-starter`** ### 总结 两者是**纵向扩展关系**而非子集关系: $$ \text{spring-ai-alibaba-starter} \subsetneq \text{spring-ai-alibaba-starter-dashscope} $$ 即DashScope模块是基础模块的超集。若需使用阿里云大模型,必须依赖后者[^1]。 [^1]: Spring AI Alibaba官方文档:https://github.com/alibaba/spring-cloud-alibaba/tree/ai/spring-ai-alibaba
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值