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

公司网站改版阿里云域名注册流程

公司网站改版,阿里云域名注册流程,资讯网站,东莞网站建设营销的企业目录RAG概念Embedding Model & Vector Storespring-ai 文本检索例子引入依赖定义向量存储: 存储两个文本说明书使用向量存储测试输出和说明Spring AI 高级RAG功能实现RAG概念 Retrieval-augmented Generation,简称RAG,检索增强生成,克服…

目录

    • RAG概念
    • Embedding Model & Vector Store
    • spring-ai 文本检索例子
      • 引入依赖
      • 定义向量存储: 存储两个文本说明书
      • 使用向量存储
      • 测试输出和说明
    • Spring AI 高级RAG功能实现

RAG概念

Retrieval-augmented Generation,简称RAG,检索增强生成,克服大型语言模型在处理长篇内容、事实准确性和上下文感知方面的局限性。

https://docs.spring.io/spring-ai/reference/api/retrieval-augmented-generation.html

Spring AI 通过使用增强器 API(Advisor API)为常见的检索增强生成(RAG)流程提供了现成的支持。

即RAG技术给AI装上了「实时百科大脑」,通过先查资料后回答的机制,让AI摆脱传统模型的”知识遗忘”困境。

四大核心步骤:

  1. 文档切割(语义分割,大文档分割并保证语义完整) → 建立智能档案库
  2. 向量编码(Embedding) → 构建语义地图
  3. 相似检索(VectorStore) → 智能资料猎人
  4. 生成增强(将检索增强作为上下文辅助大模型回答) → 专业报告撰写

参考:https://java2ai.com/docs/1.0.0-M6.1/tutorials/rag/?spm=5176.29160081.0.0.2856aa5cWGxNNo

Embedding Model & Vector Store

Embedding是文本、图像或视频的数值表示,能够捕捉输入之间的关系,Embedding 通过将文本、图像和视频转换为称为向量(Vector)的浮点数数组来工作。这些向量旨在捕捉文本、图像和视频的含义,Embedding 数组的长度称为向量的维度。

VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它适用于处理那些经过Embedding模型转化后的数据。在 VectorStore 中,查询与传统关系数据库不同。它们执行相似性搜索,而不是精确匹配。当给定一个向量作为查询时,VectorStore 返回与查询向量“相似”的向量。

在这里插入图片描述

spring-ai 文本检索例子

引入依赖

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-advisors-vector-store</artifactId><version>1.0.0</version>
</dependency>

定义向量存储: 存储两个文本说明书

package com.example.demo.advisor;import org.springframework.ai.document.Document;
import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.ai.vectorstore.SimpleVectorStore;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.List;@Configuration
public class RagConfig {@BeanVectorStore vectorStore(EmbeddingModel embeddingModel) {SimpleVectorStore simpleVectorStore = SimpleVectorStore.builder(embeddingModel).build();// 生成一个机器人产品说明书的文档List<Document> documents = List.of(new Document("产品说明书:产品名称:科学计算器\n" +"产品描述:科学计算器具备多种数学运算和工程计算功能,主要包含以下核心能力:\n" +"功能:\n" +"1. 数学运算:支持四则运算、三角函数(正弦、余弦、正切)、反三角函数(反正切、反余弦)、对数、指数运算等基础数学功能。部分型号如Panecal支持二进制至十六进制的数制转换。\n" +"2. 存储与编辑:配备存储器(Memory)功能,可保存计算结果并随时调用,支持公式编辑与历史记录追溯。例如Panecal允许多行公式输入和实时编辑,并可通过振动反馈减少误操作。\n" +"3. 单位换算:提供公制/英制等7类单位换算,包括长度、面积、体积、温度等类别,部分型号支持货币汇率转换。\n" +"4. 工程师专用工具:支持开发者模式,提供二进制/十六进制转换、位运算等编程相关功能。\n"),new Document("产品说明书:产品名称:智能机器人\n" +"产品描述:智能机器人是一个智能设备,能够自动完成各种任务。\n" +"功能:\n" +"1. 自动导航:机器人能够自动导航到指定位置。\n" +"2. 自动抓取:机器人能够自动抓取物品。\n" +"3. 自动放置:机器人能够自动放置物品。\n"));simpleVectorStore.add(documents);return simpleVectorStore;}
}

使用向量存储

package com.example.demo.advisor;import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.RetrievalAugmentationAdvisor;
import org.springframework.ai.chat.client.advisor.api.Advisor;
import org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter;
import org.springframework.ai.rag.retrieval.search.DocumentRetriever;
import org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class AdvisorController {private final ChatClient chatClient;public AdvisorController(ChatClient.Builder chatClientBuilder) {this.chatClient = chatClientBuilder.build();}@Autowiredprivate VectorStore vectorStore;/*** http://localhost:8080/ask?userInput=科学计算器有哪些功能?* http://localhost:8080/ask?userInput=智能机器人有哪些功能?*/@GetMapping("/ask")public String chat(String userInput) {// 4. 配置文档检索器DocumentRetriever retriever = VectorStoreDocumentRetriever.builder().vectorStore(vectorStore).similarityThreshold(0.5)    // 设置相似度阈值.topK(3)                     // 返回前3个最相关的文档.build();Advisor advisor = RetrievalAugmentationAdvisor.builder().queryAugmenter(ContextualQueryAugmenter.builder().allowEmptyContext(true).build()).documentRetriever(retriever).build();return chatClient.prompt().user(userInput).advisors(advisor).call().content();}}

测试输出和说明

可以看到针对用户不同的回答,回答出了不同的产品的功能
在这里插入图片描述

在这里插入图片描述

由此可以看到基于文档数据向量,我们对用户的问题进行了增强回答

Spring AI 高级RAG功能实现

参考文档:https://java2ai.com/docs/1.0.0-M6.1/tutorials/rag/?spm=5176.29160081.0.0.2856aa5cWGxNNo#%E4%B8%89spring-ai-%E9%AB%98%E7%BA%A7rag%E5%8A%9F%E8%83%BD%E5%AE%9E%E7%8E%B0

http://www.dtcms.com/wzjs/447126.html

相关文章:

  • 校园网站建设开题报告win7系统优化工具
  • 做网站怎么跑业务seo排名工具外包
  • 如何的找网站建设公司免费建站模板
  • php旅游网站论文近期的时事热点或新闻事件
  • 深圳实力网站建设厦门网络推广公司
  • wordpress多说插件下载淘宝seo是什么意思啊
  • 网站建设主流开发语言深度搜索
  • 报社新闻网站建设方案长春网站建设技术支持
  • 网站建设实训结论与分析总结长沙百度首页优化排名
  • 橙子建站有风险吗百度指数pc版
  • 网建部seo是什么的
  • 北京网站建设 app软文写手兼职
  • wordpress做双语网站网站内容管理系统
  • 自己做网站 什么宁波seo外包推广平台
  • 信誉好的菏泽网站建设百度竞价推广计划
  • 一个公网ip可以做几个网站网络seo关键词优化技术
  • 如何说明学校网站建设情况做百度推广代运营有用吗
  • 网站结构设计怎么写黄冈网站推广软件费用是多少
  • wordpress有游客注册帐号功能网站seo综合诊断
  • 网站建设惠州seo营销是什么意思
  • 先进网站建设流程兔子bt樱桃搜索磁力天堂
  • java web 做购物网站网络营销的网站建设
  • 网站建设案例精英推广引流的10个渠道
  • 移动网站开发书籍百度助手app下载
  • wordpress登录后转到wp首页兰州seo网站建设
  • 沧州做网站的公司南京疫情最新消息
  • wordpress安装语言设置中文杭州百度首页优化
  • 如何做淘宝网网站域名专门开发小程序的公司
  • 网站的优势是什么意思怎么样建一个网站
  • 网站开发语言net网上怎么推销自己的产品