当前位置: 首页 > news >正文

阿里巴巴新推出Java版AI 应用开发框架-Spring AI Alibaba

[Spring AI Alibaba 是一款 Java 语言实现的 AI 应用开发框架,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用 Spring 开发普通应用一样开发 AI 应用。Spring AI Alibaba 基于 Spring AI 开源项目构建,默认提供阿里云基础模型服务、开源及商业生态组件的集成与最佳实践。

Spring AI Alibaba 作为开发 AI 应用程序的基础框架,定义了以下抽象概念与 API,并提供了 API 与通义系列模型的适配。

  • 开发复杂 AI 应用的高阶抽象 Fluent API — ChatClient
  • 提供多种大模型服务对接能力,包括主流开源与阿里云通义大模型服务(百炼)等
  • 支持的模型类型包括聊天、文生图、音频转录、文生语音等
  • 支持同步和流式 API,在保持应用层 API 不变的情况下支持灵活切换底层模型服务,支持特定模型的定制化能力(参数传递)
  • 支持 Structured Output,即将 AI 模型输出映射到 POJOs
  • 支持矢量数据库存储与检索
  • 支持函数调用 Function Calling
  • 支持构建 AI Agent 所需要的工具调用和对话内存记忆能力
  • 支持 RAG 开发模式,包括离线文档处理如 DocumentReader、Splitter、Embedding、VectorStore 等,支持 Retrieve 检索

以上框架功能可让您实现常见 AI 应用的快速开发,例如 “通过文档进行问答” 或 “通过文档进行聊天” 等。

开源项目地址:https://github.com/alibaba/spring-ai-alibaba

快速开始

请参考 官网文档快速开始 了解如何使用 Spring AI Alibaba 快速开发生成式 AI 应用。

总的来说,使用 Spring AI Alibaba 开发应用与使用普通 Spring Boot 没有什么区别,只需要增加 spring-ai-alibaba-starter 依赖,将 ChatClient Bean 注入就可以实现与模型聊天了。

  1. 在项目中加入 spring-ai-alibaba-starter 依赖。
<dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>1.0.0-M2</version>
</dependency>

注意:由于 spring-ai 相关依赖包还没有发布到中央仓库,如出现 spring-ai-core 等相关依赖解析问题,请在您项目的 pom.xml 依赖中加入如下仓库配置。

<repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository>
</repositories>
  1. 为你的 Spring Bean 注入 ChatClient
@RestController
public class ChatController {private final ChatClient chatClient;public ChatController(ChatClient.Builder builder) {this.chatClient = builder.build();}@GetMapping("/chat")public String chat(String input) {return this.chatClient.prompt().user(input).call().content();}
}

并给出了一些ai使用场景示例 官网https://sca.aliyun.com/

对于Java框架的添砖加瓦还是可以了,尤其是目前ai的流行,可以学习下

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 用Flowise+OneAPI+Ollama做一个在线翻译工作流
  • LLaMA-Factory 使用 alpaca 格式的数据集
  • Linux 常用命令 - more 【分页显示文件内容】
  • react + antDesign封装图片预览组件(支持多张图片)
  • 全面掌握大模型:从零基础到精通的终极指南,超详细教程手把手教会你,收藏我这一篇就够了
  • Java笔试面试题AI答之设计模式(5)
  • python gensim实现作者主题模型(Author-Topic Model)
  • 车路云一体化大模型数据治理方案
  • 什么是RTOS操作系统
  • 内核驱动开发之系统移植
  • mysql update语句的执行流程
  • PDB数据库中蛋白质结构文件数据格式
  • Python 类class的用法详解
  • 《重生之我在java世界做任务升级》--第一章
  • 免费的跨平台剪贴板工具,超好用!
  • canvas 绘制双线技巧
  • crontab执行失败的多种原因
  • Elasticsearch 参考指南(升级前重新索引)
  • JavaScript-Array类型
  • Leetcode 27 Remove Element
  • mysql innodb 索引使用指南
  • opencv python Meanshift 和 Camshift
  • passportjs 源码分析
  • spring security oauth2 password授权模式
  • Vultr 教程目录
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 分布式事物理论与实践
  • 扑朔迷离的属性和特性【彻底弄清】
  • 容器服务kubernetes弹性伸缩高级用法
  • 深入浅出webpack学习(1)--核心概念
  • 使用Gradle第一次构建Java程序
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 思维导图—你不知道的JavaScript中卷
  • 我的面试准备过程--容器(更新中)
  • 小而合理的前端理论:rscss和rsjs
  • 用element的upload组件实现多图片上传和压缩
  • 字符串匹配基础上
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​Spring Boot 分片上传文件
  • ![CDATA[ ]] 是什么东东
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (c语言+数据结构链表)项目:贪吃蛇
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (超详细)语音信号处理之特征提取
  • (第61天)多租户架构(CDB/PDB)
  • (四)鸿鹄云架构一服务注册中心
  • .CSS-hover 的解释
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET/C# 使用反射注册事件
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [000-01-022].第06节:RabbitMQ中的交换机介绍