AI

Spring 对于Embedding模型的API支持

ref-nobody 创建时间 2025年5月4日 | 本文最后更新于 2025年5月4日 No Comments

嵌入(Embeddings)是将文本、图像或视频转化为数值表征的技术,这些数值能够捕捉输入数据之间的关联性。 其核心原理是将文本、图像及视频转换为浮点数数组(即向量)。这些向量经过特殊设计,能够准确反映原始数据的语义特征。嵌入数组的长度被称为向量的维度。 通过计算两个文本向量表征之间的数值距离,应用程序可以判定原始对象之间的相似度。这种基于向量距离的相似性度量,为语义检索等应用场景提供了数学基础。 EmbeddingModel接口专为AI和机器学习领域的嵌入模型集成而设计,主要功能是将文本转换为数值向量(即嵌入表征)。这些嵌入向量在语义分析、文本分类等任务中具有关键作用。 该接口的设计聚焦两大核心目标:

Read More

Advisors用于拦截、修改和增强与AI的交互

ref-nobody 创建时间 2025年5月4日 | 本文最后更新于 2025年5月9日 No Comments

在spring ai中从官网可以看出advisor是一个很重要的概念,因此这一篇文章来学习一下。 Spring AI 顾问(Advisors)API 提供了一种灵活且强大的方式,用于拦截、修改和增强 Spring 应用程序中由人工智能驱动的交互。通过利用Advisors API,开发人员可以创建更复杂、可重用且易于维护的人工智能组件。 其主要优势包括封装重复出现的生成式人工智能模式、转换发送到和从大型语言模型(LLMs)接收的数据,以及在各种模型和用例中提供可移植性。 您可以使用 ChatClient API 配置现有的顾问,如下例所示: 建议在构建时使用构建器的…

Read More

使用Spring AI开发MCP Client的配置与实战

ref-nobody 创建时间 2025年5月3日 | 本文最后更新于 2025年5月13日 No Comments

模型上下文协议(Model Context Protocol,简称 MCP)是一种标准化的协议,它使得人工智能模型能够以结构化的方式与外部工具和资源进行交互。它支持多种传输机制,以适应不同环境中的灵活性需求。 MCP Java SDK 提供了模型上下文协议的 Java 实现,通过同步和异步通信模式,实现了与人工智能模型和工具的标准化交互。 Spring AI MCP 在 MCP…

Read More

Spring AI中的ChatClient API

ref-nobody 创建时间 2025年5月2日 | 本文最后更新于 2025年5月9日 No Comments

ChatClient 提供了一套流畅式API,用于与 AI 模型进行通信。它支持同步和流式编程模型。 该流畅式 API 提供了用于构建传递给 AI 模型作为输入的 Prompt 的各个组成部分的方法。Prompt 包含指导 AI 模型输出和行为的指令性文本。从 API…

Read More

使用Spring AI定义模型可调用的工具

ref-nobody 创建时间 2025年5月1日 | 本文最后更新于 2025年5月9日 No Comments

工具调用(也称为函数调用function calling)是人工智能应用中的一种常见模式,它允许模型与一组 API 或工具进行交互,从而增强其能力。 工具主要用于以下方面: 尽管我们通常将工具调用视为模型的能力,但实际上是由客户端应用程序提供工具调用逻辑。模型只能请求工具调用并提供输入参数,而应用程序负责根据输入参数执行工具调用并返回结果。模型无法访问作为工具提供的任何 API,这是一个关键的安全考虑因素。 Spring AI 提供了方便的 API,用于定义工具、解析模型的工具调用请求以及执行工具调用。以下各节将概述 Spring AI 中的工具调用功能。 查看各模型支持的不同的能力图谱:Chat…

Read More

Spring 对于Chat模型的API支持

ref-nobody 创建时间 2025年4月30日 | 本文最后更新于 2025年5月2日 No Comments

spring ai 1.0.0-SNAPSHOT Chat Model API 为开发者提供了将智能对话补全能力集成至应用程序的接口。该API基于预训练语言模型(如GPT生成式预训练变换器),可生成符合人类语言习惯的交互响应。 其标准工作流程是:应用程序向AI模型发送提示信息或对话片段,模型根据训练数据对自然语言模式的理解生成对话补全内容,最终将结构化响应返回给调用方,供终端用户展示或后续业务处理。 Spring AI Chat Model API 采用简洁可移植的设计理念,通过统一接口实现对多种AI模型的调用,开发者仅需极少的代码调整即可切换不同模型。这一设计完美契合Spring框架模块化与可互换性的核心思想。 通过Prompt(输入封装)和ChatResponse(输出处理)等配套类的协作,该API实现了与AI模型通信的标准化。它封装了请求构建与响应解析的复杂性,为开发者提供了开箱即用的简洁接口。…

Read More

检索增强生成(RAG)

ref-nobody 创建时间 2025年4月30日 | 本文最后更新于 2025年4月30日 No Comments

检索增强生成(Retrieval Augmented Generation,RAG)是一种有助于克服大型语言模型在处理长篇内容、事实准确性以及上下文感知方面所面临限制的技术。 Spring AI 通过提供一种模块化架构来支持 RAG,这种架构允许你自行构建定制的 RAG 流程,或者使用通过Advisor API 提供的现成 RAG 流程。 Advisors Spring…

Read More

向量数据库

ref-nobody 创建时间 2025年4月30日 | 本文最后更新于 2025年4月30日 No Comments

代码已上传至github仓库:https://github.com/itaiit/spring-ai-learn 向量数据库是一种专门类型的数据库,在人工智能应用中发挥着关键作用。 在向量数据库中,查询与传统关系型数据库有所不同。它们不是寻找精确匹配,而是执行相似性搜索。当给出一个向量作为查询时,向量数据库会返回与查询向量“相似”的向量。 向量数据库用于将您的数据与人工智能模型集成。使用它们的第一步是将您的数据加载到向量数据库中。然后,当要将用户查询发送给人工智能模型时,会先检索一组相似的文档。这些文档随后作为用户问题的上下文,并与用户的查询一起发送给人工智能模型。这种技术被称为检索增强生成(Retrieval Augmented Generation,RAG)。 要将数据插入向量数据库,需将其封装在一个 Document 对象内。Document 类封装了来自数据源(如 PDF 或 Word 文档)的内容,并包含以字符串形式表示的文本。它还包含以键值对形式呈现的元数据,包括诸如文件名等详细信息。 当插入向量数据库时,文本内容会通过嵌入模型转换为数值数组,即浮点数数组(float),这被称为向量嵌入(vector…

Read More

使用Spring Ai调用DeepSeek

ref-nobody 创建时间 2025年4月29日 | 本文最后更新于 2025年4月30日 No Comments

使用spring ai调用deepseek来完成对于模型的基本使用,熟悉一下spring ai的开发方式。使用的版本信息: spirng boot 3.4.5 spring-ai-bom 1.0.0-M7 spring-cloud-alibaba-dependencies 2021.0.4.0 项目中使用nacos作为配置中心保存openai key的配置,因此引入了spring-cloud-alibaba-dependencies。 搭建项目依赖 版本依赖管理: application.yml文件配置:…

Read More