all-in-rag零散的笔记(自存/持续更新)
2026.3.17原文说的很详尽写这么一篇只是为了让自己背的更顺。------1.让代码只输出contentprint(answer.content)补充其中answer llm.invoke(prompt.format(questionquestion, contextdocs_content))该代码先把question问题和docs_content上下文 / 参考文档填充到预设的prompt提示词模板中再调用大语言模型llm处理填充后的提示词最终将模型返回的结果赋值给answer变量。format方法会把实际的question和docs_content替换到占位符位置生成最终发给模型的完整提示词。例若prompt 基于{context}回答问题{question}question什么是PythoncontextPython是编程语言格式化后得到基于Python是编程语言回答问题什么是Python。llm.invoke(...)invoke是 LangChain 框架中统一的模型调用方法接收格式化后的提示词向模型发送请求并获取返回结果。2.修改Langchain代码中RecursiveCharacterTextSplitter()的参数chunk_size和chunk_overlap观察输出结果有什么变化。chunk_size每个块的目标大小chunk_overlap 每个块之间重叠个字符以缓解语义割裂未修改前输出结果修改后的输出结果其中chunk_size5000, chunk_overlap500总结一、1. 默认参数chunk_size4000, chunk_overlap200输出列举了 8 个例子包括走迷宫、象棋、股票管理、雅达利游戏、Pong游戏、21点、自动驾驶、MountainCar-v0。特点覆盖了文章的主要部分例子比较全面。2. 小参数chunk_size1000, chunk_overlap100输出列举了 3 大类共 10 个例子包括探索与利用的例子选择餐馆、做广告、挖油、玩游戏、强化学习具体应用的例子DeepMind 走路的智能体、机械臂抓取、OpenAI 的机械臂翻魔方、Gym 库交互的例子MountainCar-v0。特点更聚焦于文章的后半部分特别是探索与利用的例子。3. 大参数chunk_size5000, chunk_overlap500输出列举了 3 大类共 9 个例子包括自然界与生活领域羚羊、股票交易、电子游戏雅达利的 Pong 游戏、雅达利的 Breakout 游戏、Gym 库中的具体环境Taxi-v3、Acrobot、CartPole-v0、MountainCar-v0。特点覆盖了文章的前半部分特别是自然界和游戏的例子。二、chunk_size 影响增大如从 50→100文本块数量减少单个块更长减少分割次数但可能包含过多无关内容减小如从 50→20文本块数量剧增单个块更短分割更细但可能导致语义碎片化比如 “Langchain” 被拆成两半。chunk_overlap 影响增大如从 10→20相邻块重叠内容更多上下文连贯性更好但会重复处理字符增加冗余减小如从 10→0无重叠文本块更 “独立”但可能断裂语义比如 “帮助开发者” 只出现在第一块第二块直接从 “快速构建” 开始。chunk_size决定文本块的长度上限值越大块数越少、单块越长值越小块数越多、单块越短。chunk_overlap决定文本块的上下文连贯性值越大重叠越多、连贯性越好但冗余增加值越小重叠越少、冗余降低但可能语义断裂。这个例子更直观一点 正常参数 (chunk_size50, chunk_overlap10) 第1块字符数50Langchain是一个强大的大语言模型应用开发框架它提供了丰富的组件和工具帮助开发者 第2块字符数49开发者快速构建基于LLM的应用程序。无论是文本处理、链调用还是代理开发Langchain都能提 第3块字符数24能提供便捷的解决方案。 增大chunk_size (chunk_size100, chunk_overlap10) 第1块字符数99Langchain是一个强大的大语言模型应用开发框架它提供了丰富的组件和工具帮助开发者快速构建基于LLM的应用程序。无论是文本处理、链调用还是代理开发Langchain都能提 第2块字符数24能提供便捷的解决方案。 减小chunk_size (chunk_size20, chunk_overlap10) 第1块字符数20Langchain是一个强大的大语言 第2块字符数20大语言模型应用开发框架它提供了 第3块字符数20它提供了丰富的组件和工具帮助开 第4块字符数20工具帮助开发者快速构建基于LLM 第5块字符数20于LLM的应用程序。无论是文本处理 第6块字符数20文本处理、链调用还是代理开发Lan 第7块字符数20代理开发Langchain都能提供便捷 第8块字符数13供便捷的解决方案。 增大chunk_overlap (chunk_size50, chunk_overlap20) 第1块字符数50Langchain是一个强大的大语言模型应用开发框架它提供了丰富的组件和工具帮助开发者 第2块字符数50帮助开发者快速构建基于LLM的应用程序。无论是文本处理、链调用还是代理开发Langchain 第3块字符数24能提供便捷的解决方案。 减小chunk_overlap (chunk_size50, chunk_overlap0) 第1块字符数50Langchain是一个强大的大语言模型应用开发框架它提供了丰富的组件和工具帮助开发者 第2块字符数39快速构建基于LLM的应用程序。无论是文本处理、链调用还是代理开发Langchain都能提供 第3块字符数24能提供便捷的解决方案。2.数据加载部分抽取文本-抽取关键信息作为元数据-转换成统一数据结构Unstructured 库加载并解析一个PDF文件from unstructured.partition.auto import partitionelements partition(filenamepdf_path,content_typeapplication/pdf)3.文本分块直接分分割号分语义分文档结构分←一般组合使用总结各个切块的步骤直接分块固定长度分块① 设定固定字符 / 词数长度阈值② 从文本开头按阈值逐段硬切割③ 不考虑语义、标点直接拆分④ 输出分块结果分割号分块分隔符分块① 定位分隔符标点、换行、分隔线、特殊符号等② 以分隔符作为分块边界③ 按边界位置拆分文本④ 清理冗余内容后输出分块语义分块逻辑分块① 识别文本话题、句意、逻辑边界② 按语义完整独立原则划分③ 合并零散短句、拆分过长段落④ 输出语义连贯的分块文档结构分块① 解析文档层级标题、章节、段落、列表等② 按结构标签一级 / 二级标题、正文段划分③ 遵循文档原有结构边界分块④ 保留结构关系输出结构化分块其中语义分块句子分割-上下文感知嵌入-计算语义距离-识别断点-合并成块中langchain_experimental.text_splitter.SemanticChunker 通过buffer_size参数默认为1来捕捉上下文信息。对于列表中的每一个句子这种方法会将其与前后各buffer_size个句子组合起来然后对这个临时的、更长的组合文本进行嵌入。然后计算每对相邻句子的嵌入向量之间的余弦距离。这个距离值量化了两个句子之间的语义差异——距离越大表示语义关联越弱跳跃越明显。余弦距离的发现者真伟大。。。4.实践使用partition_pdf替换当前partition函数并分别尝试用hi_res和ocr_only进行解析观察输出结果有何变化。修改前解析完成: 5 页, 7956 字符 第一页内容: 进⼊词条 全站搜索检索增强生成 帮助 近期有不法分子冒充百度百科官方人员以删除词条为由威胁并敲诈相关企业。在此严正声明百度百科是免费编辑平台绝不存在收费代编服务请勿上当受骗详情 检索增强生成播报 锁定 讨论1 上传视频 ⼤模型前沿技术之⼀ 展开2个同名词条 一分钟了解检索增强生成一分钟了解检索增强生成01:2201:22 RAG 当下大模型应用落地的必杀技RAG 当下大模型应用落地的必杀技02:2302:23 查 中国科学院大学计算机科 中国科学院大学计算机科 术学院是 201... 权威合作编辑 ⽬录 同义词RAG⼤模型内化吸收知识的过程⼀般指检索增强⽣成 本词条由中国科学院大学计算机科学与技术学院、中国科学院计算技术研究所 参与编辑并 审核经科普中国 · 科学百科认证 。 历史沿革 播报 技术定义 播报 检索增强生成 Retrieval-augmented Generation 简称 RAG 是当下热门的大模型 前沿技术之一 [1]。 检索增强生成模型结合了语言模型和信息检索技术。具体来说当模型需要生成文本或者回答问题时它会先从一个庞大的 文档集合中检索出相关的信息然后利用这些检索到的信息来指导文本的生成从而提高预测的质量和准确性 [2]。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2422463.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!