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

郑州大学现代远程教育 《网页设计与网站建设》个人主页淮南做网站推广

郑州大学现代远程教育 《网页设计与网站建设》个人主页,淮南做网站推广,竞价单页模板,中国优秀企业网站欣赏RAG#xff1a;融合检索与生成的文本精准生成技术 检索增强生成#xff08;RAG#xff09;是一种技术#xff0c;它通过结合检索模型和生成模型来提高文本生成的准确性。具体来说#xff0c;RAG首先利用检索模型从私有或专有的数据源中搜索相关信息#xff0c;然后将这些… RAG融合检索与生成的文本精准生成技术 检索增强生成RAG是一种技术它通过结合检索模型和生成模型来提高文本生成的准确性。具体来说RAG首先利用检索模型从私有或专有的数据源中搜索相关信息然后将这些信息提供给生成模型如大型语言模型LLM以生成更加准确、基于上下文的回复。这种方法有助于减少大模型在生成过程中可能出现的“幻觉”现象并且能够使模型的回答更贴合企业的特定数据从而提高了回答的精确度与相关性。这样在使用大模型时即使面对企业特有的知识或数据也能获得更为精准的答案。 Spring AI提升Java AI开发效率与灵活性的解决方案 我们使用了Spring AI来做这个检索增强。 之所以选择Spring AI是因为在过去用Java编写AI应用时面临的一个主要困境是没有非常标准的Java封装。 现在Spring项目推出了一套可以兼容市面上主要各类生成任务的接口——Spring AI极大地解决了这一问题。 Spring AI通过标准化不同AI提供者的接口实现使得开发者能够一次编写代码仅通过修改配置即可轻松切换不同的AI实现。 同时它直接兼容Flux流输出简化了与基于流的机器人模型的集成。通过良好的抽象设计Spring AI显著减少了程序员在对接不同类型接口时查阅文档和迁移实现的工作量为基于Java的AI开发带来了极大的便利性和效率提升。因此采用Spring AI不仅提高了开发效率还增强了项目的可维护性与灵活性。 Spring生态AI框架Spring AI Alibaba赋能Java开发者高效对接多AI服务商 Spring AI Alibaba 是基于 Spring 生态系统设计的用于AI工程的应用框架特别适合 Java 和 Spring Boot 开发者。它通过提供一套统一的抽象接口标准化了不同AI服务提供商如阿里云、OpenAI等的接入方式使得开发者能够轻松切换AI服务而无需大幅改动代码。此外Spring AI Alibaba 集成了阿里云百炼系列的多个模型支持对话、文本生成图像等功能并提供了诸如Prompt Template等实用工具来简化开发过程。其核心优势在于极大提高了AI应用开发的效率与灵活性同时保持了与现有Java Spring Boot项目的良好兼容性。 增强检索打造PDF财务报表查询后端代码 为了通过检索增强的方式读取一个阿里巴巴的财务报表PDF并提供对外服务我们需要按照以下步骤进行 1. 确保前置条件 JDK版本确保你的JDK版本在17及以上。 Spring Boot版本确认使用的Spring Boot版本为3.3.x或更高。 API Key申请访问阿里云百炼页面登录账号后开通“百炼大模型推理”服务并创建一个新的API Key。将此Key配置到环境变量中 export AI_DASHSCOPE_API_KEYYOUR_VALID_API_KEY 并且在application.properties文件里添加 spring.ai.dashscope.api-key: ${AI_DASHSCOPE_API_KEY} 2. 添加仓库与依赖 由于spring-ai-alibaba-starter尚未发布到Maven中央仓库因此需要在项目的pom.xml文件中添加如下仓库设置来支持获取最新快照版本及里程碑版本 repositoriesrepositoryidsonatype-snapshots/idurlhttps://oss.sonatype.org/content/repositories/snapshots/urlsnapshotsenabledtrue/enabled/snapshots/repositoryrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/urlsnapshotsenabledfalse/enabled/snapshots/repositoryrepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttps://repo.spring.io/snapshot/urlreleasesenabledfalse/enabled/releases/repository/repositories然后添加必要的依赖项 dependenciesdependencygroupIdcom.alibaba.cloud.ai/groupIdartifactIdspring-ai-alibaba-starter/artifactIdversion1.0.0-M2/version/dependency!-- 其他依赖 -- /dependencies3. 编写RAG服务相关代码 首先定义RagService类用于处理索引构建和查询逻辑。这包括向量存储、文档检索器以及如何使用这些组件来处理来自客户端的请求。 public class RagService {private final ChatClient chatClient;private final VectorStore vectorStore;private final DashScopeApi dashscopeApi new DashScopeApi(您的API密钥);DocumentRetriever retriever;public RagService(ChatClient chatClient, EmbeddingModel embeddingModel) {this.chatClient chatClient;vectorStore new DashScopeCloudStore(dashscopeApi,new DashScopeStoreOptions(阿里巴巴财报知识库));retriever new DashScopeDocumentRetriever(dashscopeApi,DashScopeDocumentRetrieverOptions.builder().withIndexName(阿里巴巴财报知识库).build());}// 构建索引public String buildIndex() {String filePath /path/to/your/financial_report.pdf;DocumentReader reader new DashScopeDocumentCloudReader(filePath, dashscopeApi, null);ListDocument documentList reader.get();vectorStore.add(documentList);return SUCCESS;}// 查询方法public StreamResponseSpec queryWithDocumentRetrieval(String message) {StreamResponseSpec response chatClient.prompt().user(message).advisors(new DocumentRetrievalAdvisor(retriever, DEFAULT_USER_TEXT_ADVISE)).stream();return response;} } 4. 创建Controller以暴露REST API 最后我们需要创建一个控制器类来接收HTTP请求并调用之前定义的服务方法。 RestController RequestMapping(/ai) public class RagController {private final RagService ragService;public RagController(RagService ragService) {this.ragService ragService;}GetMapping(/steamChat)public FluxString generate(RequestParam(value input, defaultValue 2024年6月止云智能集团的营收是多少) String input, HttpServletResponse httpResponse) {StreamResponseSpec chatResponse ragService.queryWithDocumentRetrieval(input);httpResponse.setCharacterEncoding(UTF-8);return chatResponse.content();}GetMapping(/buildIndex)public String buildIndex() {return ragService.buildIndex();} } 通过上述步骤我们实现了基于Spring Cloud Alibaba框架下的检索增强功能能够从指定的PDF文件中提取信息并通过HTTP接口返回给用户。需要注意的是在实际部署前请确保已经完成了所有必要的环境配置特别是关于API密钥的安全管理和正确配置。 构建React流式聊天应用从零开始的实现攻略 基于提供的知识我们可以分析出构建一个支持流式输出的前端项目需要遵循一定的步骤。这里的项目将使用React框架来创建并与后端服务进行交互以处理用户输入并显示响应。后端接口返回的是fluxString数据类型这意味着客户端能够以渐进的方式接收和展示信息而非等待全部数据加载完毕后再一次性展示。 分析 从给出的知识来看我们已经有了关于如何设置基础React环境、以及如何处理流式数据请求的具体示例。这些例子非常适合用来作为本问题解决方案的基础。接下来将详细介绍如何根据要求实现这样一个前端应用。 实现步骤 首先确保你已经安装了Node.js和npm或yarn然后按照以下步骤操作 初始化一个新的React应用 npx create-react-app rag-chat-frontend cd rag-chat-frontend npm install 修改public/index.html文件如果需要自定义HTML头部等信息:不过在这个案例中我们可以直接使用默认生成的内容。 更新src/index.js以引入应用程序入口点: import React from react; import ReactDOM from react-dom; import App from ./App;ReactDOM.render(React.StrictModeApp //React.StrictMode,document.getElementById(root) ); 编写主组件src/App.js: import React from react; import ChatComponent from ./components/ChatComponent;function App() {return (div classNameAppChatComponent //div); }export default App; 创建聊天组件src/components/ChatComponent.js 来处理用户输入及流式数据接收: import React, { useState } from react;function ChatComponent() {const [input, setInput] useState();const [messages, setMessages] useState();const handleInputChange (event) {setInput(event.target.value);};const handleSendMessage async () {try {const response await fetch(http://localhost:8080/ai/steamChat?input${input});if (!response.ok) throw new Error(Network response was not ok);const reader response.body.getReader();const decoder new TextDecoder(utf-8);let done false;while (!done) {const { value, done: readerDone } await reader.read();done readerDone;const chunk decoder.decode(value, { stream: true });setMessages((prevMessages) prevMessages chunk);}setMessages((prevMessages) prevMessages \n\n\n\n);} catch (error) {console.error(Failed to fetch, error);}};return (divinputtypetextvalue{input}onChange{handleInputChange}placeholderEnter your message/button onClick{handleSendMessage}Send/buttondivh3Messages:/h3pre{messages}/pre/div/div); }export default ChatComponent; 启动你的React应用: npm start 这将打开浏览器并自动导航到 http://localhost:3000/ 你可以在这里测试你的聊天界面。 小结 通过上述步骤我们建立了一个基本的聊天应用程序界面它可以通过发送GET请求至指定URL (http://localhost:8080/ai/steamChat) 来与后端通信。该请求会携带用户的输入文本参数。当后端开始流式地返回数据时前端应用程序会逐步解析这些数据片段并即时更新显示给用户。这种方式非常适合于实时性较强的场景如在线聊天或实时问答系统。
http://www.dnsts.com.cn/news/171072.html

相关文章:

  • 交互式网站的发展做网站多少钱
  • 企业网站建设平台开发公司合作协议
  • 广州网络营销服务公司宁波seo
  • 网站为什么做黄词骗流量怎么做互联网推广
  • 如何做能上传视频网站西安注册公司在哪个网站
  • 兰州网站建设与优化推广信息发布平台
  • 怎么选择网站建设公司电子商务营销策略有哪些
  • 安庆市网站建设制作网站开发方案及报价
  • 怎样做免费商城网站推广普通话手抄报模板
  • 南和邢台网站制作网站代码 商品添加分类
  • 网站建设与管理题目深圳建网站的公司
  • it培训机构都有哪些关键词排名优化易下拉技巧
  • h5页面生成常德自助建站seo
  • 龙溪营销型网站制作如何注册企业
  • 做网站的软件是哪个桂林市工程建设项目招标网站
  • 深圳服装网站建设智慧旅游网站建设方案
  • 网站模板下载带后台网站反链暴增怎么回事
  • 网站建设市场多大脉脉用的什么技术做网站
  • 阳光市往房和城乡规划建设局网站网站制作的困难和解决方案
  • 中国免费最好用建站cms办公室电脑局域网组建
  • 江苏省城乡与建设厅网站期末网页设计学生作业代码
  • 网站反链有好处吗网网站站建建站站
  • 设计本官方网站 网络服务网络管理员网址
  • 旅游网络营销如何做seo手机搜索快速排名
  • 阜阳手机网站制作医院网站可信认证必须做吗
  • 电子商务网站设计的书中心网站建设方法
  • 网站运营需要哪些资质wordpress搜站点网络中断
  • 青岛做网站苏州市建设局网站地址
  • 企业门户网站的安全性企业解决方案参考网站
  • 网站建设初学软件短视频平台