备案期间能否做网站解析微分销手机网站制作

张小明 2026/1/10 5:22:21
备案期间能否做网站解析,微分销手机网站制作,百度搜索高级搜索,网站建设优化石家庄简介 本文介绍基于LangChain ReAct Agents和Qdrant构建的RAG问答系统#xff0c;通过思考-行动-观察循环解决大模型在特定领域知识问答中的幻觉问题。系统能检索私有文档信息#xff0c;并通过多步推理获取文档中未直接提及的内容#xff0c;提升回…简介本文介绍基于LangChain ReAct Agents和Qdrant构建的RAG问答系统通过思考-行动-观察循环解决大模型在特定领域知识问答中的幻觉问题。系统能检索私有文档信息并通过多步推理获取文档中未直接提及的内容提升回答质量。文章详细展示了从环境搭建到工具创建的完整实现过程测试结果表明该系统能有效处理复杂问题提供准确答案。在面对特定领域知识时LLM 有时会出现“幻觉”容易胡编乱造。尤其是当针对企业或用户的私有数据如产品使用文档、财务报告提出一些复杂问题时通用模型往往难以满足我们的需求。为了解决这个问题RAGRetrieval-Augmented Generation技术应运而生它可以从外部知识库中实时检索信息辅助回答。然而在回答一些内部文档中没有直接提及的问题时RAG系统往往无法给出准确地答案。为解决这个痛点本文将引入 LangChain ReAct Agents 构建一个RAG问答系统来处理需要进行多步推理分析的问题。LangChain ReAct AgentsLangChain ReAct Agents 是基于 LangChain 框架实现的一种智能代理Agent它采用了 ReActReasoning Acting推理与行动框架。ReAct 是一种提示词技术最初在论文《ReAct: Synergizing Reasoning and Acting in Language Models》中提出旨在通过结合语言模型的推理能力和行动能力提升其在复杂任务中的表现。ReAct 的核心思想是让大型语言模型LLM通过一系列“思考-行动-观察”Thought-Action-Observation的循环来解决问题而不是一次性直接生成最终答案。具体来说Thought思考模型分析问题决定下一步该做什么。Action行动根据思考结果选择并执行一个动作比如调用外部工具、搜索信息等。Observation观察获取行动的结果并反馈给模型用于下一步推理。LangChain ReAct Agents工作流程这种方法模仿了人类解决问题的过程通过逐步推理和与外部环境的交互减少幻觉并提高答案的准确性。RAGRAGRetrieval-Augmented Generation就是“检索增强生成”技术它的作用可以简单理解为让大模型具备‘查资料’的能力。在生成回答前先去指定的外部知识库或数据库里检索到相关内容把检索到的信息和问题一起输入给大模型让它基于这些“新查到的资料”来生成答案。搭建环境本文需要用到的核心组件如下Qdrant向量搜索引擎和数据库可以存储文本的嵌入向量embeddings以实现快速的相似性搜索。LangChain提供了工具来处理文本、创建 Agent并集成外部数据源。ChatGroq: Groq 开发的一个 API 接口用于调用语言模型。项目结构本文的数据集存放在Data文件夹中我使用了2个文件ChatGPT.txt 文件介绍了该产品Google.txt 文件则主要介绍谷歌的用户条款你可以其替换为任意文件。所有代码均在app.ipynb文件中书写。项目结构实现过程导入第三方库import os from langchain_community.vectorstores import Qdrant from langchain_community.document_loaders import TextLoader from langchain_text_splitters import CharacterTextSplitter from langchain.agents import Tool from langchain import hub from langchain.agents import AgentExecutor, create_react_agent from langchain_groq import ChatGroq from fuzzywuzzy import fuzz from fuzzywuzzy import process GROQ_API_KEY # 替换为自己的key切分文件内容directory_path Data txt_files [file for file in os.listdir(directory_path) if file.endswith(.txt)] all_documents {} for txt_file in txt_files: loader TextLoader(os.path.join(directory_path, txt_file)) documents loader.load() # 定义文本切分器 # - 每段 chunk 最大 1200 个字符 # - chunk 之间有 100 个字符的重叠避免语义割裂 text_splitter CharacterTextSplitter(chunk_size1200, chunk_overlap100, separator\n) docs text_splitter.split_documents(documents) for doc in docs: doc.metadata[source] txt_file all_documents[txt_file] docs这段代码的作用就是将源数据按固定大小切分成小块 每块记录来源文件名 存入一个字典方便后续做搜索、向量化、知识库等处理。最终的all_documents结构类似于{ a.txt: [doc1, doc2, doc3, ...], b.txt: [doc4, doc5, doc6, ...], }每个doc对象大概长这样{ content: 具体文本内容..., metadata: { source: a.txt } }引入文本向量模型from langchain_huggingface import HuggingFaceEmbeddings embeddings HuggingFaceEmbeddings( model_namesentence-transformers/all-mpnet-base-v2 )sentence-transformers/all-mpnet-base-v2是 HuggingFace 上一个非常流行的文本向量模型。它可以把一段文本转换为一个向量这个向量可以表示文本的语义特征。例如text1 你好吗 text2 最近怎么样 vec1 embeddings.embed_query(text1) vec2 embeddings.embed_query(text2)vec1 和 vec2 就是两个向量通过计算它们的相似度可以知道这两个文本的语义是否接近。将文本存入向量数据库qdrant_collections {} for txt_file in txt_files: qdrant_collections[txt_file] Qdrant.from_documents( all_documents[txt_file], # 需要存入的文档内容 embeddings, # 使用的文本 embedding 模型 location:memory:, # 存储到内存中 collection_nametxt_file, )把之前切好的文本存储到 Qdrant 向量数据库中。每个 txt 文件对应一个独立的 collection类似于一个表存储在内存中:memory:方便后续做向量检索相似度搜索。创建retriever检索器retriever {} for txt_file in txt_files: retriever[txt_file] qdrant_collections[txt_file].as_retriever()检索器的作用就是输入一个问题返回和问题最相似的内容片段。为ReAct Agents创建工具1根据输入的文档名检索相应的文档内容def get_relevant_document(name : str) - str: # 模糊匹配输入的 name search_name name # 使用 fuzzywuzzy 进行模糊查找找到最接近的 txt 文件 best_match process.extractOne(search_name, txt_files, scorerfuzz.ratio) # 拿到第一个文件名 selected_file best_match[0] # 根据文件名获取对应的 retriever检索器 selected_retriever retriever[selected_file] global query # 获取要查的问题 # 使用向量检索器查找相关文档块 results selected_retriever.get_relevant_documents(query) global retrieved_text total_content \n\n以下是相似度最高的内容: \n\n chunk_count 0 for result in results: chunk_count 1 if chunk_count 4: break total_content result.page_content \n retrieved_text total_content return total_content2对检索到的内容做摘要def get_summarized_text(name : str) - str: from transformers import pipeline summarizer pipeline(summarization, modelFalconsai/text_summarization) global retrieved_text article retrieved_text return summarizer(article, max_length1000, min_length30, do_sampleFalse)[0][summary_text]3定义工具get_relevant_document_tool Tool( nameGet Relevant document, funcget_relevant_document, descriptionUseful for getting relevant document that we need. ) get_summarized_text_tool Tool( nameGet Summarized Text, funcget_summarized_text, descriptionUseful for getting summarized text for any document. )最终这些 Tool 可以直接集成到 LangChain 的 Agent 里自动根据问题决定调用哪个工具自动完成多步骤的知识问答流程。引入ReAct 提示词模板prompt_react hub.pull(hwchase17/react) prompt_react.template prompt_react.template \n请用中文回答最终答案。ReAct Prompt 是 LangChain 官方设计的一种标准 Prompt 格式里面定义了工具调用的规则、思考的方式等。创建ReAct Agentretrieved_text tools [get_relevant_document_tool, get_summarized_text_tool] model ChatGroq(model_namellama3-70b-8192, groq_api_keyGROQ_API_KEY, temperature0) react_agent create_react_agent(model, toolstools, promptprompt_react) react_agent_executor AgentExecutor( agentreact_agent, toolstools, verboseTrue, handle_parsing_errorsTrue )构建了个基于 LangChain 的 ReAct Agent结合多个 Tool工具并用 llama3 大模型做推理。 该 Agent 能自动根据问题调用不同工具如检索知识、总结内容回答问题。功能测试query 给我总结一下Google为用户提供了哪些资源用于帮助和指导用户使用其服务 react_agent_executor.invoke({input: query})该系统的推理过程如下思考过程1思考过程2由上图可知系统在收到提问后进行了2轮“思考-行动-观察”的过程。第1轮思考自己应该获取一份关于谷歌的相关文档以帮助用户行动调用对应工具 get_relevant_document_tool观察获取到了对应文档中相似度最高的内容。第2轮思考自己应该总结下获取的谷歌文档以帮助用户行动调用对应工具 get_summarized_text_tool观察获得了最终答案。结果如下{input: 给我总结一下Google为用户提供了哪些资源用于帮助和指导用户使用其服务, output: Google 提供了多种资源来帮助用户包括服务条款、隐私权政策、联系信息网页、帮助中心、安全和错误测试计划等。这些资源可以帮助用户了解 Google 的服务、隐私权政策、如何联系 Google 以及如何解决问题等信息。}总结基于 LangChain ReAct Agents 和 Qdrant我们构建了一个功能强大的 RAG 系统。这种方法不仅可以检索私有文档的信息还能通过多步推理来获取文档中没有直接提及的内容从而提升 LLM 的回答质量。本文使用的LLM、向量数据库等工具仅供参考你可以根据自己的业务需求选择合适的工具。如何学习AI大模型如果你对AI大模型入门感兴趣那么你需要的话可以点击这里大模型重磅福利入门进阶全套104G学习资源包免费分享这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】这是一份大模型从零基础到进阶的学习路线大纲全览小伙伴们记得点个收藏第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。100套AI大模型商业化落地方案大模型全套视频教程200本大模型PDF书籍学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。LLM面试题合集大模型产品经理资源合集大模型项目实战合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站公司哪家好如何上国外购物网站

GLM-TTS 是智谱 AI(Zhipu AI)CogAudio 团队开发的开源文本到语音(TTS)合成系统,是 GLM 系列的语音扩展,于 2025 年发布。 GLM-TTS 的核心目标是解决传统 TTS 在情感表达、发音准确性和实时性上的瓶颈&…

张小明 2025/12/29 19:28:05 网站建设

太原网站建设案例lamp wordpress主题

第一章:Open-AutoGLM 推理速度优化路径在部署 Open-AutoGLM 模型时,推理速度直接影响用户体验与系统吞吐能力。为提升其性能表现,需从模型结构、计算资源调度和运行时优化三个维度综合施策。模型量化压缩 通过将浮点权重从 FP32 转换为 INT8&…

张小明 2025/12/26 13:40:17 网站建设

惠州市博罗县建设局网站农村电子商务专业就业方向

SQL 中的抽象数据类型与继承机制 1. 操作 LOB 数据 在处理包含文档文本的大对象(LOB)数据时,我们可能需要检索包含 LOB 的行,并更新 LOB 数据中间的部分内容。以下是一个示例代码,展示了如何实现这一操作: declare lob CLOB; textbuf varchar(255); begin /* Put…

张小明 2025/12/26 13:38:15 网站建设

外贸网站建设费用多少云虚拟主机发布wordpress

一、二进制优化的核心思想1. 基本原理把一个正整数 s 拆分成若干个2的幂次方(1, 2, 4, 8, ...)的和,再加上剩余的零头。例如:s 13拆分成:1 2 4 6这样就可以用4个组表示0-13的所有数字2. 数学原理任何一个正整数n都…

张小明 2025/12/26 13:36:13 网站建设

自己做整个网站的流程合肥seo收费

贷款 1 美元的小秘密:藏在银行柜台后的投资理财智慧你或许听过这个流传甚广的金融故事:一位拥有 50 万美元股票和债券的犹太富翁,走进银行却只要求贷款 1 美元。银行经理困惑不已:"您有这么多资产,为什么只借 1 美…

张小明 2025/12/30 11:05:47 网站建设

爱 做 网站app推广视频

基于Excalidraw的AI绘图解决方案,现可免费试用GPU资源 在远程协作成为常态的今天,技术团队开完一场会议却迟迟无法对齐架构图——有人画得太慢,有人表达不清,最终还是靠口述收场。这种场景并不少见。可视化本应是沟通的加速器&…

张小明 2026/1/1 2:49:56 网站建设