Spring AI
文章平均质量分 85
介绍spring ai的使用
老任与码
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring AI(14)——文本分块优化
根据源码的逻辑,分割文本时,可能出现如果分隔符的索引小于minChunkSizeChars,就不会对文本进行分割,于是,就会出现句子被断开的情况。根据CL100K_BASE编码,300长度的token转为本文内容后,文本内容的长度在220-250之间(根据本例的中文文档测试,实际存在误差),转换比例在70%到80%多,为了根据特定的字符进行分割,所以minChunkSize的值最好小于210。为此,对源码进行修改,增加分割符的列表,用户可以根据文档的中英文情况,自行设置分割符。原创 2025-07-26 11:54:39 · 1127 阅读 · 0 评论 -
Spring AI(12)——调用多模态模型识别和生成图像
修改yml配置注意:这里使用智谱提供的识别图像的glm-4v-flash模型测试代码输出结果。原创 2025-07-06 14:33:43 · 506 阅读 · 0 评论 -
Spring AI(13)——RAG之RetrievalAugmentationAdvisor
RetrievalAugmentation表示检索增强中介绍了RAG的基本使用,但是其中的QuestionAnswerAdvisor 主要作用是对向量数据库中的所有文档执行相似性搜索。RetrievalAugmentationAdvisor可以更好的体现检索增强。原创 2025-07-19 11:16:06 · 908 阅读 · 0 评论 -
Spring AI(4)——工具调用
Tool(name="getTodayDate", description = "获取今天日期信息")System.out.println("获取当前日期时间");大模型调用的工具通过@Toolname:工具的名称。如果未提供,将使用方法名称。AI 模型在调用工具时使用此名称进行识别。因此,同一类中不允许存在名称相同的两个工具。对于特定聊天请求,该名称在模型可用的所有工具中必须是唯一的。:工具的描述,模型可以使用此描述来理解何时以及如何调用该工具。如果未提供,将使用方法名称作为工具描述。原创 2025-05-13 11:54:45 · 1687 阅读 · 1 评论 -
Spring AI(5)——通过嵌入模型进行数据的向量化处理
嵌入是文本、图像或视频的数值表示,用于捕获输入之间的关系。嵌入的工作原理是将文本、图像和视频转换为浮点数数组,称为向量。这些向量旨在捕获文本、图像和视频的含义。嵌入数组的长度称为向量的维度。通过计算两个文本向量表示之间的数值距离,应用程序可以确定用于生成嵌入向量的对象之间的相似性。接口旨在轻松集成 AI 和机器学习中的嵌入模型。其主要功能是将文本转换为数值向量,通常称为嵌入。这些嵌入对于各种任务至关重要,例如语义分析和文本分类。原创 2025-05-14 11:37:04 · 1850 阅读 · 0 评论 -
Spring AI(6)——向量存储
向量数据库是一种特殊类型的数据库,在 AI 应用中发挥着至关重要的作用。在向量数据库中,查询与传统关系型数据库不同。它们执行的是相似性搜索,而非精确匹配。当给定一个向量作为查询时,向量数据库会返回与该查询向量“相似”的向量。Spring AI 通过接口提供了一个抽象的 API,用于与向量数据库交互。原创 2025-05-15 10:07:10 · 3227 阅读 · 0 评论 -
Spring AI(7)——RAG
检索增强生成(RAG),用于解决将相关数据纳入提示词中以获得准确 AI 模型响应的挑战。该方法采用批处理式编程模型,从指定的文档中读取非结构化数据,进行转换,然后写入向量数据库。从高层次来看,这是一个 ETL(提取、转换和加载)管道。向量数据库用于 RAG 技术的检索部分。在将非结构化数据加载到向量数据库时,最重要的转换之一是将原始文档分割成更小的片段。将原始文档分割成更小片段的过程有两个重要步骤:在保持内容语义边界的同时将文档分割成部分。原创 2025-05-20 13:38:44 · 1224 阅读 · 0 评论 -
Spring AI(9)——MCP客户端
模型上下文协议 (MCP) 是一种标准化协议,使 AI 模型能够以结构化方式与外部工具和资源交互。它支持多种传输机制,以便在不同环境中提供灵活性。MCP Java SDK 提供模型上下文协议的 Java 实现,通过同步和异步通信模式实现与 AI 模型和工具的标准化交互。Spring AI MCP通过 Spring Boot 集成扩展了 MCP Java SDK,同时提供了客户端和服务器Starters。通过STDIO(in-process) 和/或SSE(远程)访问MCP服务端。原创 2025-05-29 17:30:42 · 1345 阅读 · 0 评论 -
Spring AI(11)——SSE传输的MCP服务端
支持SSE(Server-Sent Events) 基于 Spring MVC 的服务器传输和可选的STDIO运输。原创 2025-06-05 21:15:47 · 1391 阅读 · 0 评论 -
Spring AI(10)——STUDIO传输的MCP服务端
Spring AI MCP(模型上下文协议)服务器Starters提供了在 Spring Boot 应用程序中设置 MCP 服务器的自动配置。它支持将 MCP 服务器功能与 Spring Boot 的自动配置系统无缝集成。本文主要演示支持STDIO传输的MCP服务器。原创 2025-06-05 20:07:32 · 630 阅读 · 0 评论 -
Spring AI(8)——流式响应
通过源码可以看到,调用ChatModel对象调用stream()方法即可实现流式响应。并且其返回值有两种形式:Flux<String>和Flux<ChatResponse>。流式响应允许异步获取响应数据。通过该方式,大模型每次返回一部分token,而不是等到生成完整结果后再返回。测试代码通过ChatModel对象和ChatClient对象分别实现了流式响应。ChatModel接口继承了StreamingChatModel接口。注意:一定要通过浏览器进行测试,否则无法看到流式响应的效果。原创 2025-05-23 15:07:43 · 665 阅读 · 0 评论 -
Spring AI(3)——Chat Memory
大型语言模型(LLM)是无状态的,这意味着它们不保留关于以前互动的信息。为了解决这个问题,Spring AI提供了Chat Memory(聊天记忆)功能。通过Chat Memory,用户可以实现在与LLM的多次交互中存储和检索信息。聊天记忆的底层存储由ChatMemoryRepository处理,其唯一责任是存储和检索消息。决定保留哪些消息及何时删除这些消息的权利在于ChatMemory的实现。策略可能包括保留最近的N条消息,保留一定时间段的消息,或者保留指定最大令牌数的消息。原创 2025-05-11 18:46:53 · 1989 阅读 · 0 评论 -
Spring AI(2)—— 发送消息的API
PromptTemplate是针对用户信息的模版,类似的还有:SystemPromptTemplate,AssistantPromptTemplate。通过源码可以到,Prompt对象中包含属性为List<Message>(聊天消息的列表)和ChatOptions(大模型属性信息的对象)。如果使用不带参数的propmt()方法,需要调用额外调用user()、system()方法设置需要发送的信息。可以通过PromptTemplate设置,也可以通过user()或者system()方法设置。原创 2025-05-11 08:34:39 · 840 阅读 · 0 评论 -
Spring AI(1)—— 聊天模型基本使用
Spring AI 是一个用于 AI 工程的应用程序框架。其目标是将 Spring 生态系统设计原则应用于 AI 领域。下面,我们通过具体的案例来学习下Spring AI的使用。原创 2025-05-07 22:49:42 · 996 阅读 · 0 评论
分享