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

广州的网站建设公司wordpress返现

广州的网站建设公司,wordpress返现,wordpress d,小说小程序源码1、创建查询重写转换器 // 创建查询重写转换器queryTransformer RewriteQueryTransformer.builder().chatClientBuilder(openAiChatClient.mutate()).build(); 查询重写是RAG系统中的一个重要优化技术,它能够将用户的原始查询转换成更加结构化和明确的形式。这种转…

1、创建查询重写转换器

// 创建查询重写转换器queryTransformer = RewriteQueryTransformer.builder().chatClientBuilder(openAiChatClient.mutate()).build();

查询重写是RAG系统中的一个重要优化技术,它能够将用户的原始查询转换成更加结构化和明确的形式。这种转换可以提高检索的准确性,并帮助系统更好地理解用户的真实意图。

Spring AI提供了RewriteQueryTransformer来实现查询重写功能。以下是一个具体的示例:

package com.alibaba.cloud.ai.example.chat.openai.controller;import jakarta.servlet.http.HttpServletResponse;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.memory.InMemoryChatMemory;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.openai.OpenAiChatOptions;
import org.springframework.ai.rag.Query;
import org.springframework.ai.rag.preretrieval.query.expansion.MultiQueryExpander;
import org.springframework.ai.rag.preretrieval.query.transformation.QueryTransformer;
import org.springframework.ai.rag.preretrieval.query.transformation.RewriteQueryTransformer;
import org.springframework.http.MediaType;
import org.springframework.http.codec.ServerSentEvent;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;import java.util.List;/*** @Author: wst* @Date: 2024-12-16*/@RestController
@RequestMapping("/rag")
public class RagController {private final ChatClient openAiChatClient;private final ChatModel chatModel;private final MultiQueryExpander queryExpander;private final QueryTransformer queryTransformer;public RagController(ChatModel chatModel) {this.chatModel = chatModel;//		 创建聊天客户端实例
// 设置系统提示信息,定义AI助手作为专业的室内设计顾问角色// 构造时,可以设置 ChatClient 的参数// {@link org.springframework.ai.chat.client.ChatClient};this.openAiChatClient = ChatClient.builder(chatModel).defaultSystem("你是一位专业的室内设计顾问,精通各种装修风格、材料选择和空间布局。请基于提供的参考资料,为用户提供专业、详细且实用的建议。在回答时,请注意:\n" +"1. 准确理解用户的具体需求\n" +"2. 结合参考资料中的实际案例\n" +"3. 提供专业的设计理念和原理解释\n" +"4. 考虑实用性、美观性和成本效益\n" +"5. 如有需要,可以提供替代方案")// 实现 Chat Memory 的 Advisor// 在使用 Chat Memory 时,需要指定对话 ID,以便 Spring AI 处理上下文。.defaultAdvisors(new MessageChatMemoryAdvisor(new InMemoryChatMemory()))// 实现 Logger 的 Advisor.defaultAdvisors(new SimpleLoggerAdvisor())// 设置 ChatClient 中 ChatModel 的 Options 参数.defaultOptions(OpenAiChatOptions.builder().topP(0.7).build()).build();// 构建查询扩展器
// 用于生成多个相关的查询变体,以获得更全面的搜索结果queryExpander = MultiQueryExpander.builder().chatClientBuilder(openAiChatClient.mutate()).includeOriginal(false) // 不包含原始查询.numberOfQueries(3) // 生成3个查询变体.build();
// 创建查询重写转换器queryTransformer = RewriteQueryTransformer.builder().chatClientBuilder(openAiChatClient.mutate()).build();}@GetMapping("/multiQuery")public List<Query> multiQuery() {
// 执行查询扩展
// 将原始问题"请提供几种推荐的装修风格?"扩展成多个相关查询List<Query> queries = queryExpander.expand(new Query("请提供几种推荐的装修风格?"));return queries;}@GetMapping("/rewriteQuery")public String rewriteQuery( ) {
//        查询重写的主要优势:查询明确化:将模糊的问题转换为具体的查询点
//
//这种转换不仅有助于系统检索到更相关的文档,还能帮助生成更全面和专业的回答。// 创建一个模拟用户学习AI的查询场景Query query = new Query("我正在学习人工智能,什么是大语言模型?");
// 执行查询扩展
// 将原始问题"请提供几种推荐的装修风格?"扩展成多个相关查询// 执行查询重写Query transformedQuery = queryTransformer.transform(query);String rewirte = transformedQuery.text();// 输出重写后的查询System.out.println(rewirte);return rewirte;}}

重写后的查询可能会变成:

什么是大语言模型?

查询重写的主要优势:查询明确化:将模糊的问题转换为具体的查询点

这种转换不仅有助于系统检索到更相关的文档,还能帮助生成更全面和专业的回答

2、查询翻译

查询翻译是RAG系统中的一个实用功能,它能够将用户的查询从一种语言翻译成另一种语言。这对于多语言支持和跨语言检索特别有用。Spring AI提供了TranslationQueryTransformer来实现这一功能。

// 创建查询翻译转换器,设置目标语言为中文
 translationQueryTransformer = TranslationQueryTransformer.builder().chatClientBuilder(openAiChatClient.mutate()).targetLanguage("chinese")  // 设置目标语言为中文.build();

完整代码

package com.alibaba.cloud.ai.example.chat.openai.controller;import jakarta.servlet.http.HttpServletResponse;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.memory.InMemoryChatMemory;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.openai.OpenAiChatOptions;
import org.springframework.ai.rag.Query;
import org.springframework.ai.rag.preretrieval.query.expansion.MultiQueryExpander;
import org.springframework.ai.rag.preretrieval.query.transformation.QueryTransformer;
import org.springframework.ai.rag.preretrieval.query.transformation.RewriteQueryTransformer;
import org.springframework.ai.rag.preretrieval.query.transformation.TranslationQueryTransformer;
import org.springframework.http.MediaType;
import org.springframework.http.codec.ServerSentEvent;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;import java.util.List;/*** @Author: wst* @Date: 2024-12-16*/@RestController
@RequestMapping("/rag")
public class RagController {private final ChatClient openAiChatClient;private final ChatModel chatModel;private final MultiQueryExpander queryExpander;private final QueryTransformer queryTransformer;private  QueryTransformer translationQueryTransformer;public RagController(ChatModel chatModel) {this.chatModel = chatModel;//		 创建聊天客户端实例
// 设置系统提示信息,定义AI助手作为专业的室内设计顾问角色// 构造时,可以设置 ChatClient 的参数// {@link org.springframework.ai.chat.client.ChatClient};this.openAiChatClient = ChatClient.builder(chatModel).defaultSystem("你是一位专业的室内设计顾问,精通各种装修风格、材料选择和空间布局。请基于提供的参考资料,为用户提供专业、详细且实用的建议。在回答时,请注意:\n" +"1. 准确理解用户的具体需求\n" +"2. 结合参考资料中的实际案例\n" +"3. 提供专业的设计理念和原理解释\n" +"4. 考虑实用性、美观性和成本效益\n" +"5. 如有需要,可以提供替代方案")// 实现 Chat Memory 的 Advisor// 在使用 Chat Memory 时,需要指定对话 ID,以便 Spring AI 处理上下文。.defaultAdvisors(new MessageChatMemoryAdvisor(new InMemoryChatMemory()))// 实现 Logger 的 Advisor.defaultAdvisors(new SimpleLoggerAdvisor())// 设置 ChatClient 中 ChatModel 的 Options 参数.defaultOptions(OpenAiChatOptions.builder().topP(0.7).build()).build();// 构建查询扩展器
// 用于生成多个相关的查询变体,以获得更全面的搜索结果queryExpander = MultiQueryExpander.builder().chatClientBuilder(openAiChatClient.mutate()).includeOriginal(false) // 不包含原始查询.numberOfQueries(3) // 生成3个查询变体.build();
// 创建查询重写转换器queryTransformer = RewriteQueryTransformer.builder().chatClientBuilder(openAiChatClient.mutate()).build();// 创建查询翻译转换器,设置目标语言为中文translationQueryTransformer = TranslationQueryTransformer.builder().chatClientBuilder(openAiChatClient.mutate()).targetLanguage("chinese")  // 设置目标语言为中文.build();}@GetMapping("/multiQuery")public List<Query> multiQuery() {
// 执行查询扩展
// 将原始问题"请提供几种推荐的装修风格?"扩展成多个相关查询List<Query> queries = queryExpander.expand(new Query("请提供几种推荐的装修风格?"));return queries;}@GetMapping("/rewriteQuery")public String rewriteQuery( ) {
//        查询重写的主要优势:查询明确化:将模糊的问题转换为具体的查询点
//
//这种转换不仅有助于系统检索到更相关的文档,还能帮助生成更全面和专业的回答。// 创建一个模拟用户学习AI的查询场景Query query = new Query("我正在学习人工智能,什么是大语言模型?");
// 执行查询扩展
// 将原始问题"请提供几种推荐的装修风格?"扩展成多个相关查询// 执行查询重写Query transformedQuery = queryTransformer.transform(query);String rewirte = transformedQuery.text();// 输出重写后的查询System.out.println(rewirte);return rewirte;}@GetMapping("/translationQuery")public String translationQuery( ) {Query query = new Query("What is LLM?");
// 执行查询翻译Query transformedQuery = translationQueryTransformer.transform(query);
// 输出翻译后的查询String transforme = transformedQuery.text();System.out.println(transforme);return transforme;}}

查询翻译的主要优势:

  1. 多语言支持:支持不同语言之间的查询转换
  2. 本地化处理:将查询转换为目标语言的自然表达方式
  3. 跨语言检索:支持在不同语言的文档中进行检索
  4. 用户友好:允许用户使用自己熟悉的语言进行查询

文章转载自:

http://uO3BK3b1.nkwgy.cn
http://QEK7zeD0.nkwgy.cn
http://87nNPJQk.nkwgy.cn
http://1cexKaJQ.nkwgy.cn
http://1rZ3Y0aG.nkwgy.cn
http://qr8oHkXi.nkwgy.cn
http://xgDRXMRB.nkwgy.cn
http://MgpynGmR.nkwgy.cn
http://gXdqEjee.nkwgy.cn
http://T99POPWq.nkwgy.cn
http://DFDpZW8m.nkwgy.cn
http://VMtyOEpQ.nkwgy.cn
http://uyqfu0f6.nkwgy.cn
http://GcL3fYi8.nkwgy.cn
http://xL5pMKue.nkwgy.cn
http://lvKJwepV.nkwgy.cn
http://VJPqufz6.nkwgy.cn
http://YR9xh1RS.nkwgy.cn
http://ZdgrWrlG.nkwgy.cn
http://jRj53jve.nkwgy.cn
http://ZYUIKaaq.nkwgy.cn
http://104xMV4z.nkwgy.cn
http://Whq4llZJ.nkwgy.cn
http://6kSPaDsE.nkwgy.cn
http://3O61fG8P.nkwgy.cn
http://7Kc6JuMT.nkwgy.cn
http://sBGdfNK0.nkwgy.cn
http://XLKaiMEI.nkwgy.cn
http://LIlDxntu.nkwgy.cn
http://l0u9GJRg.nkwgy.cn
http://www.dtcms.com/wzjs/593146.html

相关文章:

  • 企业网站做seo的优势商务网站建设组成包括网站优化
  • 做团餐 承包食堂的企业网站wordpress 自动 图片大小
  • 深圳自助企业建站模版美食网站二级页面模板
  • 自己如何做网站网站规划要点
  • 坪地网站建设信息工业和信息化部装备工业发展中心
  • 芜湖推广公司seo哪里有培训
  • 南京网站设计公司兴田德润放心外贸公司注册需要多少钱
  • 办网站用什么证件大型游戏平台排行榜
  • 那个网站是专门做渔具的wordpress 移除侧边栏
  • 购物车网站设计wordpress 中文杂志主题
  • 企业案例网站自做淘宝客网站
  • 四川网站开发哪家好做市场调查的网站免费
  • html5网站开发教学网站架构推荐
  • 做手机网站用什么软件网上推广渠道有哪些
  • 网站定制联通卡天河网站建设技术
  • 网站建设合同标准版中装建设集团董事长
  • dnf游戏币交易网站建设网站开发的英文
  • 襄阳市住房和城乡建设局网站微信公众号怎么发布文章
  • 网站注册流程北京服务设计
  • 做网站制作的公司机房网络组建方案
  • 菏泽兼职网站建设关键词排名工具
  • 上海网站建设建站游戏推广话术技巧
  • 腾讯快速建站平台wordpress内容管理
  • 上海做兼职哪个网站要怎么做网络营销
  • 做骑兵电影网站赚钱彩票源码论坛
  • 百度做的网站一般在什么后台网站切片 做程序
  • 惠州网站建设是什么制作网页多少钱
  • 农家乐网站模板关键词优化是怎样收费的
  • 网站建设所需费用郑州建站软件
  • 西安制作网站的电话网页设计ui设计培训