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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现动态迷宫生成:自动生成迷宫的动画

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义迷宫生成类主循环 完整代码 引言 迷宫生成算法在游戏开发和图形学中有着广泛的应用。它不仅可以用于创建迷宫游戏,还可以用于生成有趣的图案。在这篇博客中,我们将使用Python…

基于Java的校园交友网站系统

你好,我是专注于计算机技术研究的学姐码农小野。如果你对校园交友网站系统的构建或者相关技术感兴趣,欢迎私信交流。 开发语言 Java 数据库 MySQL 技术 Java语言、SpringBoot框架、B/S结构 工具 MyEclipse、Navicat、Maven 系统展示 首页 个人…

Postman:Body类型中的x-www-from-urlencoded参数可以接受GET请求吗?

不可以 今天学习Spring Web MVC,在借助Postman学习 RequestMapping 注解时,发现Body类型中的x-www-from-urlencoded参数不支持GET请求。 按理说 RequestMapping 注解可以支持全部类型的请求,但为何在这里不能支持GET请求呢? 以下是…

Diffusion 加速系列之三 | LCM

0. 资源链接 论文: LCM:https://arxiv.org/abs/2310.04378 项目: https://github.com/luosiallen/latent-consistency-model 1. 背景动机 现有的高分辨率的 diffusion 模型推理存在的问题: Diffusion 模型推理过程包含多步去噪的流程,这会…

VMware虚拟机使用标准分区后对分区进行扩容

前言: 使用虚拟机创建系统后,/ 盘 想要扩容需要几步才能实现,下面将介绍具体流程 确定根分区磁盘以及分区号,和起始扇区和结束扇区 # 查看磁盘名称和分区 # 如下可看出根分区为 /dev/sda2 ,磁盘为sda [root192 ~]# ls…

【鸿蒙学习笔记】元服务

官方文档:元服务规格 目录标题 什么是元服务特征第一个元服务-案例介绍创建项目源码启动模拟器启动entry创建卡片出发元服务 什么是元服务 特征 免安装分包预加载老化和更新机制 第一个元服务-案例介绍 创建项目 源码 Entry Component struct WidgetCard {buil…

qt 线程举例

qt 线程举例 在Qt中,使用线程的一个常见方式是通过QThread类。下面是一个简单的例子,展示了如何创建一个线程并在其中执行任务。 步骤 1: 创建一个Worker类 首先,创建一个继承自QObject的Worker类,这个类将包含要在线程中执行的…

three完全开源扩展案例02-跳动的音乐

更多案例尽在https://threelab.cn/ 演示地址 import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";let mediaElement; let analyser; let scene; let camera; let renderer; let controls; …

RabbitMQ中常用的三种交换机【Fanout、Direct、Topic】

目录 1、引入 2、Fanout交换机 案例:利用SpringAMQP演示Fanout交换机的使用 3、Direct交换机 案例:利用SpringAMQP演示Direct交换机的使用 4、Topic交换机 案例:利用SpringAMQP演示Topic交换机的使用 1、引入 真实的生产环境都会经过e…

1. openstack

openstack 一、云的简介1、优势2、类型2.1 根据提供的服务范围2.2 根据提供服务不同 二、openstack核心组件1、核心组件2、nova组件2.1 nova核心进程 3、glance组件4、cinder组件5、neutron组件6、swift组件7、cellometer组件8、keystone组件9、heat组件10、dashboard 一、云的…

韦东山嵌入式linux系列-LED 驱动程序框架

1 回顾字符设备驱动程序框架 图中驱动层访问硬件外设寄存器依靠的是 ioremap 函数去映射到寄存器地址,然后开始控制寄存器。 那么该如何编写驱动程序? ① 确定主设备号,也可以让内核分配;② 定义自己的 file_operations 结构体&…

【LeetCode:1071. 字符串的最大公因子 + 模拟 + 最大公约数】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

水库大坝安全监测险情应对措施

汛期暴雨洪涝灾害发生后,为保证大坝及下游人民生命财产安全,应及时进行大坝安全现场检查和快速评估。评估内容包括大坝沉降和水平变形、裂缝、坝坡是否塌滑、下游坡是否存在集中渗漏或大面积渗水、溢洪道启闭设备能否正常运行、近坝库岸是否有大的滑坡体…

react学习——26react-redux实现求和案例(完整版)

1、目录结构 2、components/count/index.js import React, {Component} from "react"; export default class Count extends Component {//加法increment()>{const {value} this.selectNumthis.props.jia(Number(value))}//减法decrement()>{const {value} …

一场夏测杀出个“双冠王”,极越01成为纯电SUV标杆

文 | AUTO芯球 作者 | 雷慢 万万没想到,懂车帝夏测运动会杀出一匹最大的黑马,竟然是极越01。 当前正在进行的懂车帝夏测运动会,在“纯电SUV/MPV续航达成率”赛事中,极越01以85.8%的续航达成率获得第一名。并且由于赛制规则限制…

应力 (Stress) 是指单位面积上所承受的力

应力 (Stress) 是指单位面积上所承受的力 flyfish 轴向力 轴向力 (Axial Force) 是指沿着物体的纵轴施加的力。对于一根杆或柱子,轴向力可以是拉力或压力,具体取决于力的方向。 拉力 (Tensile Force):使物体拉长的力。 压力 (Compressive…

Vue中实现在线画流程图实现

概述 最近在调研一些在线文档的实现,包括文档编辑器、在线思维导图、在线流程图等,前面的文章基于语雀编辑器的在线文档编辑与查看实现了文档编辑器。在本文,分享在Vue框架下基于metaeditor-mxgraph实现在线流程图。 实现效果 实现 1. 添加…

LabVIEW开发CAN总线多传感器液位检测系统

设计并实现了一个基于CAN总线和LabVIEW的多传感器液位检测系统。该系统利用STM32F107单片机进行模拟信号与数字信号的转换,通过TJA1050实现CAN总线通信,并使用USB-CAN分析仪连接PC。LabVIEW用于数据采集、人机交互界面的设计、数据分析和仪器标定。系统能…

Paimon下载使用和基础操作说明

简介 Apache Paimon 是一种湖格式,支持使用 Flink 和 Spark 构建实时湖仓一体架构 用于流式处理和批处理操作。Paimon创新性地将湖格式与LSM(Log-structured merge-tree)相结合 结构,将实时流式更新引入 Lake 架构。 Paimon提供以…