自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Spring AI】11. 通用模型 API

通过抽象发送请求和接收响应的过程,处理与各种类型的 AI 模型的交互。该接口使用 Java 泛型来适应不同类型的请求和响应,增强了在不同 AI 模型实现中的灵活性和适应性。该接口使用 Java 泛型来适应不同类型的请求和响应,增强了在不同 AI 模型实现之间的灵活性和适应性。它作为一种标准化的方式来封装和管理来自 AI 模型的输出,确保轻松检索和处理生成的信息。该接口提供了AI模型的主要输出以及与该结果相关联的元数据的方法。它旨在提供一种标准化和全面的方式来处理和解释人工智能模型产生的输出。

2024-04-29 14:19:51 580

原创 【Spring AI】09. ETL 管道

ETL 管道的三个主要组件是DocumentReader :实现Supplier<List>DocumentTransformer :实现Function<List, List>Consumer<List> :实现DocumentWriterDocument类包含文本和元数据,使用DocumentReader可以基于 PDF、文本文件和其他文档类型创建 Document类。要构建一个简单的 ETL 管道,您可以将每种类型的实例链接在一起。假如我们有这三种 ETL 类型的实例对象。

2024-04-29 14:16:20 1255

原创 【Spring AI】08. 输出解析器

本节提供了OutputParser接口的指南。

2024-04-29 14:05:09 828

原创 【Spring AI】07. 提示词

常见的做法是使用 ChatClient 的 generate方法,该方法接受一个Prompt实例并返回一个ChatResponse。Prompt 类作为一个有序的 Message 对象容器,每个 Message 对象是整个提示词的一个部分。每个 Message 在提示词中扮演着独特的角色,其内容和意图各不相同。这些角色可以涵盖各种元素,从用户查询到 AI 生成的响应或相关背景信息。这种安排使得与 AI 模型进行复杂和详细的交互成为可能,因为提示词由多个消息构成,每个消息在对话中扮演着特定的角色。

2024-04-29 11:20:33 1609 1

原创 【Spring AI】06. 函数调用

详细见 章节中的 章节下的 部分。

2024-04-29 11:12:32 326

原创 【Spring AI】05. 向量数据库-Redis

Redis 是一个开源(BSD 许可证),用作数据库、缓存、消息代理和流引擎的内存数据结构存储。Redis支持多种数据结构,包括字符串、哈希、列表、集合、带范围查询的有序集合、位图、hyperloglogs、地理空间索引和流。

2024-04-29 11:03:11 1619

原创 【Spring AI】05. 向量数据库-Chroma

Chroma 是开源的嵌入向量数据库。它提供了文档嵌入向量、内容和元数据存储,并配备了通过这些嵌入向量进行搜索的工具,包括元数据过滤。

2024-04-29 11:02:55 1644

原创 【Spring AI】05. 向量数据库

本节作为 Spring AI 框架中VectorStore接口及其关联类的指南。Spring AI 通过VectorStore接口为向量数据库交互提供了抽象化的 API。要将数据插入向量数据库,请将其封装在Document对象中。Document类封装来自数据源(如 PDF 或 Word 文档)的内容,并包含表示为字符串的文本。它还包含键值对形式的元数据,包括文件名等详细信息。插入向量数据库时,文本内容会被转换为数值数组,或称为向量嵌入。

2024-04-28 21:47:05 1390 1

原创 【Spring AI】04. 转录 API-OpenAI

Spring AI 项目定义了一个名为 spring.ai.openai.api-key 的配置属性,您应将 openai.com 获取的API Key 对这个变量进行赋值。在启动时,将使用spring.ai.openai.audio.transcription指定的选项,但您可以在运行时覆盖这些选项。属性参数前缀spring.ai.openai.audio.transcription。或添加到您的 Gradle build.gradle 构建文件。Spring AI 支持 OpenAI 的转录模型。

2024-04-28 21:41:08 1045 1

原创 【Spring AI】04. 转录 API

Spring AI 提供对 OpenAI 的转录 API 的支持。提取一个通用的AudioTranscriptionClient接口。

2024-04-28 21:35:21 181

原创 【Spring AI】03. 图像生成 API-OpenAI

Spring AI 项目定义了一个名为 spring.ai.openai.api-key 的配置属性,您应该将其设置为从 openai.com 获取的 API Key 的值。或者,使用之前描述的spring.ai.openai.image.options.*属性。配置前缀是spring.ai.openai.image,可让您配置基于 OpenAI 的ImageClient 实现。参数前缀是spring.ai.openai,让您连接到 OpenAI。提供了模型配置,例如要使用的模型、质量、大小等。

2024-04-28 21:34:03 1193

原创 【Spring AI】03. 图像生成 API

Spring Image Generation API 的设计目的是为了提供一个简单且便携的接口,用于与专门从事图像生成的各种 AI 模型进行交互,允许开发者在不同的图像相关模型之间进行最小代码更改即可切换。此外,借助像ImagePrompt这样的伴生类对输入进行封装,ImageResponse用于输出处理,图像生成 API 统一了与专门进行图像生成的 AI 模型的通信。此外,每个特定模型的 ImageClient 实现都可以有自己的选项参数,这些选项参数可以传递给 AI 模型。是发送反馈的好地方。

2024-04-28 21:26:57 827 1

原创 【Spring AI】02. 嵌入向量API-OpenAI

请参考03. 开始章节中的添加 Milestone 和 Snapshot Repositories,将这些存储库添加到您的构建系统中。两个向量之间的距离表示它们的相关性。Spring AI 项目定义了一个名为 spring.ai.openai.api-key 的配置属性,您应该将其设置为从 openai.com 获得的 API Key 的值。OpenAI 的EmbeddingClient实现的属性前缀是spring.ai.openai.embedding。提供了 OpenAI 的配置,例如要使用的模型等。

2024-04-28 21:19:41 1128

原创 【Spring AI】02. 嵌入向量 API

嵌入向量 API 建立在通用的之上,这是 Spring AI 库的一部分。因此,EmbeddingClient 接口扩展了 ModelClient 接口,该接口提供了一套标准方法,用于与 AI 模型进行交互。EmbeddingRequest 和 EmbeddingResponse 类分别扩展自 ModelRequest 和 ModelResponse ,用于分别封装嵌入向量模型的输入和输出。

2024-04-28 21:09:59 978

原创 【Spring AI】聊天API-OpenAI-Function Call

AI 模型调用客户端。",AI模型将调用客户端,提供位置值作为要传递给函数的参数。Spring AI 使这变得简单,只需定义一个返回java.util.Function的@Bean定义,在调用ChatClient的时候,设置这个 Bean 的名字到ChatClient的参数中。作为开发人员,您需要实现一个函数,该函数接收从 AI 模型返回的函数调用参数,并将函数的结果再返回给模型。我们可以为 AI 模型提供有关我们自己函数的元数据,它可以结合您的提示词和这些元数据来判断是否调用用户定义的函数检索该信息。

2024-04-28 20:38:08 1043

原创 【Spring AI】01.聊天API-OpenAI

Spring AI 项目定义了一个名为 spring.ai.openai.api-key 的配置属性,您应将 openai.com 获取的API Key 对这个变量进行赋值。在启动时,可以使用OpenAiChatClient(api, options)构造函数或spring.ai.openai.chat.options.*属性配置默认选项。属性前缀为spring.ai.openai.chat,可用于配置 OpenAI 的聊天客户端属性。或添加到您的 Gradle build.gradle 构建文件。

2024-04-28 20:29:32 1421 1

原创 【Spring AI】01. 聊天 API

此外,每个特定于模型的 ChatClient/StreamingChatClient 实现都可以有自己的配置项,这些配置项可以传递给 AI 模型。若要了解Prompt和Message之间的实际应用和关系,尤其是在这些角色或消息类别的上下文中,请参阅 Prompts 章节中的详细说明。此外,在 输入封装 和ChatResponse输出处理 等Prompt配套类 的帮助下,聊天 API 统一了与 AI 模型的通信。它管理 请求预处理 和 响应解析 的复杂性,提供直接和简化的 API 交互。

2024-04-28 20:12:27 1100

原创 【Spring AI】04. Spring AI API

Spring AI API 涵盖了广泛的功能。每个主要功能都在其单独的章节中进行了详细说明。跨 AI 提供商的可移植 API,用于聊天文生图和嵌入向量模型。支持同步和 stream API 选项。下拉各自章节以访问特定于模型的功能。我们支持来自OpenAI,Microsoft,Amazon,Google,Huggingface等的AI模型。跨 Vector Store 提供程序的可移植 API,包括新颖的类似 SQL 的元数据过滤器 API,该 API 也是可移植的。支持 8 个向量数据库。

2024-04-28 20:04:08 323

原创 【Spring AI】03. 开始

如下面的代码片段所示,可以为一个或多个spring-ai模块(例如spring-ai-openai)的Starter依赖项进行无版本声明。就像熟悉 JavaScript 生态系统的人的“create-react-app”命令一样,Spring CLI 提供了一个创建基于 Spring 的项目spring boot new的命令。Spring AI BOM 声明了 Spring AI 版本使用的所有依赖项的推荐版本。相反,您使用的 BOM 版本决定了使用的依赖项版本。

2024-04-28 20:02:27 1214 1

原创 【Spring AI】02. AI 概念

本节介绍 Spring AI 使用的核心概念。我们建议仔细阅读它,以了解 Spring AI 如何实现背后的想法。

2024-04-28 19:46:57 1182

原创 【Spring AI】01. 概述

项目旨在简化人工智能功能的应用程序的开发,避免不必要的复杂性。该项目从著名的 Python 项目(例如 LangChain 和 LlamaIndex)中汲取灵感,但 Spring AI 并不是这些项目的直接移植。该项目的成立是因为负责人相信下一波生成式人工智能应用程序不仅适用于 Python 开发人员,也适用于其他开发人员,而且将在许多编程语言中普遍存在。Spring AI 的核心包提供了开发 AI 应用程序的基础的抽象概念。这些抽象概念有多种实现,让我们可以通过最少的代码修改对实现组件进行替换。

2024-04-28 19:39:27 384

原创 【Spring AI】前言

官方文档:https://docs.spring.io/spring-ai/reference/index.html。该文档是翻译 Spring Ai 英文文档。

2024-04-28 19:34:40 286

原创 02. flume-ng 核心源码解析【小明同学】

文章目录flume-ng 核心代码解析org.apache.flume.node.Application#main 解析PollingPropertiesFileConfigurationProvider 构造函数Application 构造函数eventBus.register(application)然后我们继续看下 application.start() 方法,不用想,我们的核心入口就在这个 start 方法里了。接下来我们就看下 org.apache.flume.lifecycle.Lifecycl

2021-04-06 15:34:17 593

原创 01. apache flume 启动入口【小明同学】

Flume NG代码地址,我们把代码clone下来以后就会发现,工程里集成了很多的模块,那该如何下手?阅读官网的手册官方手册 这里不再翻译,我们来看重点start手册步骤中第五步:Configure and Run Flume NGAfter you’ve configured Flume NG (see below), you can run it with the bin/flume-ng executable. This script has a number of arg

2021-04-06 15:32:56 367

原创 sublime 集成 markdown 插件【小明同学】

sublime 集成 markdown 插件安装 markdown 插件Ctrl + Shift + p 进入 Browser Packages输入 pcip (package control:install package)输入 mmp (markmon real-time markdown preview)安装 markdown 预览插件Ctrl + Shift + p 进入 Browser Packages输入 pcip (package control:install packa

2020-06-08 20:33:53 385

原创 spring-framework源码构建【spring源码阅读01】

spring-framework源码构建源码搭建原因源码搭建步骤clone 代码(5.2.0.BUILD-SNAPSHOT)配置环境新建 module开展源码扣读源码搭建原因为了更好的阅读 spring-framework 源码,我们需要把 spring-framework 的源码工程 clone 下来,这样我们就可以 修改源码,添加注释,查看源码 以及 debug 。源码搭建步骤cl...

2020-03-31 19:34:46 154

原创 java aqs源码分析

AQS是什么?AQS其实是juc包里设计并发实现工具类的抽象类:AbstractQueuedSynchronizer那些类继承了AQS?juc包里有很多类继承了AQS,比如我们经常使用的重入锁:ReentrantLock.NonfairSync 和 ReentrantLock.FairSync,也就是我们经常说的非公平锁和公平锁;CountDownLatch.Sync ; Reentr...

2020-03-17 00:35:33 185

原创 java enum关键字

Written with StackEdit.为什么思考enum关键字在思考enum之前,同事问了我关于enum的两个问题:enum 类可以继承吗?vo里使用了enum,怎么改造呢?回答这两个问题enum 类是不能继承的,我记得enum 类是final语义的vo里最好不要存在enum,或者说接口层面不要有enum的直接序列化和反序列化,这个会涉及到扩展问题,如果是vo的话,...

2019-12-06 19:36:25 1010

原创 Stimulsoft StiDashboardAssemblyIsNotFoundException异常问题排查

Written with StackEdit.问题场景使用本地工具可以预览,但是把模板应用到线上出现500线上异常"Stimulsoft.Base.Serializing.StiDashboardAssemblyIsNotFoundException: 引发类型为“Stimulsoft.Base.Serializing.StiDashboardAssemblyIsNotFoundE...

2019-12-03 17:41:16 476

原创 关于长链转短链的方案和思考

Written with StackEdit.背景前些天,和同学交流,他说要做一个生成短链的系统,然后我们就针对这个进行了研究和讨论讨论方案我们首先讨论了下该系统的功能模块,既然是要把长链转成短链,必然需要一个生成短链的接口;既然生成了短链,那我们必然需要有短链转长链的功能。所有确定了系统提供的功能:a. 由长链生成短链b. 由短链还原长链确定了功能,就开始设计方案,...

2019-07-17 20:44:16 2485 1

原创 基于消息体系的redis数据更新解决方案

Written with StackEdit.背景我们系统需要第三方接口提供的数据,而这份数据并不希望放到各个服务器的内存,希望放到redis里面基于消息体系的设计让第三方提供消息,在需要更新数据的时候,通知到我们服务集群使用消息的轮询机制,当一台消息消费成功,其他机器将不再给发送接收消息的服务器需要同步接口数据,同步redis数据,在ack,通知到消息平台消费成功如果服务...

2019-07-17 10:12:43 207

原创 tomcat context 配置

Written with StackEdit.遇到的问题某天,三方合作部门说我们接口的数据变少了,让我们查下什么原因,我对该接口并不熟悉,然后根据域名去查系统,然后clone下系统代码,查找接口。这个系统是使用spring+servlet的框架,在web.xml中并没有找到接口定义,顿时陷入了迷茫最初思考原因刚开始是以为该系统除了使用servlet配置xml的方式,可能还使用s...

2019-07-09 20:37:29 1172

原创 java8 stream close问题

Written with StackEdit.问题场景一天晚上我在查个问题,日常debug代码,某段代码使用了java8 的stream filter,我就手动运行了下这个结果,然后让代码正常运行这句的时候,抛出了异常,异常栈如下:Exception in thread "main" java.lang.IllegalStateException: stream has alread...

2019-07-09 14:45:38 4524

原创 Guava Range引起的一次故障

Written with StackEdit.一次线上故障的爆发正当我去人大吃饭的时候,突然收到了atp报警电话,马上进群去看什么情况,然后有人爆出说是dubbo反序列化对象失败问题排查群里反馈说是因为没有构造函数反序列化的代码如下:/** * @author yanming */@Getter@Setterpublic class Promotion imp...

2019-05-10 22:32:08 475

原创 spring+mvc+mybatis+logback配置(缺少mybatis和logback配置,持续更新ing)

简介spring作为轻量级java框架备受各个开发者喜爱,但经典的spring框架有很多约定,今天我们先从spring的配置开始着手Web.xml配置文件web.xml 文件是java web的入口,在web容器启动的时候(tomcat等),会读取web.xml文件来加载配置 context、listener、filter、servlet,我们在web.xm里面配置的也是这些内容。...

2019-04-23 10:30:20 460

原创 我的代码风格(持续更新ing)

我的代码风格(持续更新ing)通用的 utils 方法代替直接使用对象的方法,比如:String str = "hello world";String match = "hello";// 不建议的方式null == str;// 建议使用这样的方式Objects.isNull(str);个人的理解:直接使用对象进行判断没有utils方法更贴切想表达的意思,虽然 Obje...

2019-04-17 22:04:35 225

原创 java lombok遇到的问题

lombok 遇到的问题@Data 注解的理解@Data 注解其实是多个注解的集合,他完成了多个注解的功能,分别是:@Getter@Setter@RequiredArgsConstructor@ToString@EqualsAndHashCode有时候我们为了方便getter和setter方法的简单化,直接使用了@Data注解代替,很可能会产生意想不到的问题,特别是@Equal...

2019-04-11 11:53:16 1629

原创 二叉树镜像

题目二叉树镜像方案描述其实就是从头到尾遍历左右孩子进行替换位置代码实现TreeNode类:/** * * @author xxx * @date 2018/6/21 */public class TreeNode { private int data; private TreeNode leftTreeNode; privat...

2018-07-04 21:41:33 144 1

原创 两个有交叉的单链表,求交叉点

题目两个有交叉的单链表,求交叉点方案描述求出两个链表的长度先遍历长链表到和短链表长度相同的位置同时遍历两个链表,知道有相同的节点位置代码实现MyLIst类:/** * 定义链表类 * @author xxx * @date 2018/7/4 */public class MyList { private int length = 0;...

2018-07-04 21:34:37 2203 1

原创 有一个随机数 n 的方法,根据这个方法生成一个随机数 n+1 的算法

题目有一个随机数 n 的方法,根据这个方法生成一个随机数 n+1 的算法生成随机数 【0-n】方法: private static final int n = 5; /** * 生成随机数 【0-n】方法 * @param n * @return */ public static int randomInN(int n){...

2018-07-04 19:53:59 882 2

移动开发情况

移动开发 精品学习网考试频道小编应广大考生的需要,特为参加考试的考生策划了“开发移动应用程序介绍”专题等有关资料,供考生参考!

2013-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除