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

南县做网站推荐介绍网站建设规划书结构

南县做网站推荐,介绍网站建设规划书结构,wordpress 侧边栏左边,好医生网站继续教育网SpringAI框架中的RAG知识库检索与增强生成模型详解 一、RAG简介 RAG(Retrieval-Augmented Generation)可以通过检索知识库,克服大模型训练完成后参数冻结的局限性,携带知识让大模型根据知识进行回答。 二、SpringAI框架支持的R…

SpringAI框架中的RAG知识库检索与增强生成模型详解

一、RAG简介

RAG(Retrieval-Augmented Generation)可以通过检索知识库,克服大模型训练完成后参数冻结的局限性,携带知识让大模型根据知识进行回答。

二、SpringAI框架支持的RAG模块

SpringAI框架提供了模块化的API来支持RAG,主要包括:

  • QuestionAnswerAdvisor
  • RetrievalArgumentAdvisor

1. QuestionAnswerAdvisor

提供简单便捷的RAG流功能,只需指定简单参数即可进行知识库检索。 示例代码:

QuestionAnswerAdvisor questionAnswerAdvisor = QuestionAnswerAdvisor.builder(vectorStore).searchRequest(SearchRequest.builder().similarityThreshold(0.5)  // 只返回相似度高于0.5的结果.topK(3)                  // 只返回前三个结果.filterExpression(newFilterExpressionBuilder().eq("a","b").build())  // 只检索a==b的文档.build()).build();ChatClient chatClient = ChatClient.builder(openAiChatModel).defaultOptions(OpenAiChatOptions.builder().model("gpt-3.5-turbo").build()).build();ChatResponse response = chatClient.prompt().advisors(questionAnswerAdvisor).user(u -> u.text("你好")).call().chatResponse();

动态添加过滤条件示例:

chatClient.prompt().user(u -> u.text("hello")).advisors(a -> a.param(QuestionAnswerAdvisor.FILTER_EXPRESSION, "a==b")).call().chatResponse();

这里的lambda表达式中的aAdvisorContext.Builder实例,param()用于共享参数,advisor自动完成检索和拼接。

2. RetrievalArgumentAdvisor

提供更丰富功能,支持自定义检索前预处理、检索、检索后处理及生成。

简单RAG实现示例:
Advisor retrievalAugmentationAdvisor = RetrievalAugmentationAdvisor.builder().documentRetriever(VectorStoreDocumentRetriever.builder().similarityThreshold(0.50).vectorStore(vectorStore).build()).build();String answer = chatClient.prompt().advisors(retrievalAugmentationAdvisor).user(question).call().content();
检索前预处理
  • CompressionQueryTransformer:压缩用户提问,适合长对话上下文。

    Query query = Query.builder().text("And what is its second largest city?").history(newUserMessage("What is the capital of Denmark?"),newAssistantMessage("Copenhagen is the capital of Denmark.")).build();QueryTransformer transformer = CompressionQueryTransformer.builder().chatClientBuilder(chatClientBuilder).build();Query transformedQuery = transformer.transform(query);
    

    也可让advisor自动完成:

    CompressionQueryTransformer compressionQueryTransformer = CompressionQueryTransformer.builder().chatClientBuilder(ChatClient.builder(openAiChatModel)).build();RetrievalAugmentationAdvisor retrievalAugmentationAdvisor = RetrievalAugmentationAdvisor.builder().documentRetriever(VectorStoreDocumentRetriever.builder().build()).queryTransformers(compressionQueryTransformer).build();ChatClient.builder(openAiChatModel).build().prompt().user(u -> u.text("中国第二大的城市是哪里")).messages(newUserMessage("中国首都城市是哪里")).messages(newAssistantMessage("北京")).advisors(retrievalAugmentationAdvisor).call().chatResponse();
    
  • RewriteQueryTransformer:重写用户输入以优化检索。

    QueryTransformer queryTransformer = RewriteQueryTransformer.builder().chatClientBuilder(chatClientBuilder).build();
    
  • TranslationQueryTransformer:翻译查询为目标语言。

    QueryTransformer transformer = TranslationQueryTransformer.builder().chatClientBuilder(chatClientBuilder).targetLanguage("english").build();
    
  • MultiQueryExpander:生成多个查询拓展以获取更多相关结果。

    MultiQueryExpander expander = MultiQueryExpander.builder().chatClientBuilder(chatClientBuilder).numberOfQueries(3).includeOriginal(false).build();
    
检索阶段
  • VectorStoreDocumentRetriever:向量库检索相似文档。
    VectorStoreDocumentRetriever vectorStoreDocumentRetriever = VectorStoreDocumentRetriever.builder().vectorStore(vectorStore).topK(4).filterExpression(newFilterExpressionBuilder().eq("a","b").build()).similarityThreshold(0.4).build();List<Document> documents = vectorStoreDocumentRetriever.retrieve(newQuery("What is the main character of the story?"));
    

    也可以交给advisor自动完成。

检索后处理
  • 重新排序文档
  • 删除无关或重复文档
  • 压缩文档内容减少干扰
生成阶段
  • ContextualQueryAugmenter:将检索到的内容拼接到用户提问中。
    ContextualQueryAugmenter contextualQueryAugmenter = ContextualQueryAugmenter.builder().allowEmptyContext(false) // 不允许空内容.build();
    

    主要功能:

    • 检查检索结果是否为空
    • 非空时拼接检索结果注入提示模板
    • 空且不允许空上下文时,设置空变量并指示模型不根据知识回答
    • 允许空上下文时直接放行

以上即为SpringAI框架中RAG功能的详细介绍及示例代码,涵盖了从简单到复杂的知识库检索与增强生成流程。


文章转载自:

http://MeXmgbRZ.Lstmq.cn
http://0zJr6IJR.Lstmq.cn
http://94MmuoGF.Lstmq.cn
http://JVaiH2UD.Lstmq.cn
http://0eqeaY2M.Lstmq.cn
http://1kylLnMH.Lstmq.cn
http://hWyF1oZv.Lstmq.cn
http://Ycobf0MN.Lstmq.cn
http://97XBpl6M.Lstmq.cn
http://caP57nMr.Lstmq.cn
http://ZtEPBoLx.Lstmq.cn
http://ouyq82JW.Lstmq.cn
http://Y5hDFoIy.Lstmq.cn
http://Jqn9T7Ph.Lstmq.cn
http://9NFwrWDA.Lstmq.cn
http://q75G9dta.Lstmq.cn
http://ahfJoNNx.Lstmq.cn
http://scnzL42g.Lstmq.cn
http://8TF5IzXd.Lstmq.cn
http://6jprJL7g.Lstmq.cn
http://xiULnIv2.Lstmq.cn
http://uKuSAIow.Lstmq.cn
http://MfihGsTy.Lstmq.cn
http://jnO6wn7o.Lstmq.cn
http://w1z5826B.Lstmq.cn
http://dIjgJbbj.Lstmq.cn
http://F5MPEKKr.Lstmq.cn
http://1WjsDLgV.Lstmq.cn
http://7THlcaYT.Lstmq.cn
http://vZrhpPH3.Lstmq.cn
http://www.dtcms.com/wzjs/721088.html

相关文章:

  • 网站建设公司山西做长直播的房地产网站
  • 网站使用的数据库主要有哪些电商平台开发流程
  • 改wordpress地址还是站点地址网站服务器租用价格多少钱一年
  • 服务器做多个网站学短视频剪辑与制作
  • 开发手机网站多少钱做拍卖的网站
  • 建设网站怎么收费标准建设银行官网首页网站南山片区
  • 商务网站建设需要备案吗广州网站建设讯度
  • wordpress 网站重置网站里宣传视频怎么做
  • 网站界面 ui 设计答案广西住房和城乡建设厅培训中心官方网站
  • 初中信息技术 网站制作如何制作app软件
  • 传媒网站建设公司龙海网站建设公司
  • 矢量插画的网站wordpress会员到期
  • 好的外贸网站的特征软件外包平台
  • 资源网站源码下载昆明参差网站
  • 网站的信息管理建设的必要性网站建设调研文档
  • 子网站域名ip地址查询百度搜索引擎怎么弄
  • 网站地图模板class wp wordpress
  • 网站建设目的分析wordpress随机播放器
  • 网站的footer怎么做wordpress网络公司主题
  • 大岭山镇网站建设公司网页界面设计的用途有
  • 福州网站建设 联系yanktcn 04投投app最新投票平台
  • 自学建设网站网站建设要注意哪些
  • 网站建设中搜索引擎的作用宁波seo关键词培训
  • 网站开发设计选题背景wordpress视频缩略图插件
  • 郑州制作网站电话133搭建网站的流程和方法
  • 外贸自建站如何收款公司网站简介怎么做
  • 做网站引流合肥网站建设制作价格
  • 网站网页建设与制作怎么做账注册中文域名一年多少钱
  • 潍坊优化网站页面设计免费
  • 五大免费资源网站网站做好后