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

all-in-rag零散的笔记(自存/持续更新)

2026.3.17

原文说的很详尽,写这么一篇只是为了让自己背的更顺。

---

---

1.让代码只输出content?

print(answer.content)

补充:其中,

answer = llm.invoke(prompt.format(question=question, context=docs_content))

该代码先把question(问题)和docs_content(上下文 / 参考文档)填充到预设的prompt(提示词模板)中,再调用大语言模型(llm)处理填充后的提示词,最终将模型返回的结果赋值给answer变量。

format方法会把实际的questiondocs_content替换到占位符位置,生成最终发给模型的完整提示词。例:若prompt = "基于{context}回答问题:{question}"question="什么是Python"context="Python是编程语言",格式化后得到:"基于Python是编程语言回答问题:什么是Python"

llm.invoke(...)

invoke是 LangChain 框架中统一的模型调用方法,接收格式化后的提示词,向模型发送请求并获取返回结果。

2.修改Langchain代码中`RecursiveCharacterTextSplitter()`的参数`chunk_size`和`chunk_overlap`,观察输出结果有什么变化。

chunk_size=每个块的目标大小

chunk_overlap= 每个块之间重叠?个字符,以缓解语义割裂

未修改前输出结果

修改后的输出结果,其中

chunk_size=5000, chunk_overlap=500

总结:

一、

1. 默认参数(chunk_size=4000, chunk_overlap=200)
输出:列举了 8 个例子,包括走迷宫、象棋、股票管理、雅达利游戏、Pong游戏、21点、自动驾驶、MountainCar-v0。
特点:覆盖了文章的主要部分,例子比较全面。
2. 小参数(chunk_size=1000, chunk_overlap=100)
输出:列举了 3 大类共 10 个例子,包括探索与利用的例子(选择餐馆、做广告、挖油、玩游戏)、强化学习具体应用的例子(DeepMind 走路的智能体、机械臂抓取、OpenAI 的机械臂翻魔方)、Gym 库交互的例子(MountainCar-v0)。
特点:更聚焦于文章的后半部分,特别是探索与利用的例子。
3. 大参数(chunk_size=5000, chunk_overlap=500)
输出:列举了 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_size=50, chunk_overlap=10) === 第1块(字符数:50):Langchain是一个强大的大语言模型应用开发框架,它提供了丰富的组件和工具,帮助开发者 第2块(字符数:49):开发者快速构建基于LLM的应用程序。无论是文本处理、链调用还是代理开发,Langchain都能提 第3块(字符数:24):能提供便捷的解决方案。 === 增大chunk_size (chunk_size=100, chunk_overlap=10) === 第1块(字符数:99):Langchain是一个强大的大语言模型应用开发框架,它提供了丰富的组件和工具,帮助开发者快速构建基于LLM的应用程序。无论是文本处理、链调用还是代理开发,Langchain都能提 第2块(字符数:24):能提供便捷的解决方案。 === 减小chunk_size (chunk_size=20, chunk_overlap=10) === 第1块(字符数:20):Langchain是一个强大的大语言 第2块(字符数:20):大语言模型应用开发框架,它提供了 第3块(字符数:20):它提供了丰富的组件和工具,帮助开 第4块(字符数:20):工具,帮助开发者快速构建基于LLM 第5块(字符数:20):于LLM的应用程序。无论是文本处理 第6块(字符数:20):文本处理、链调用还是代理开发,Lan 第7块(字符数:20):代理开发,Langchain都能提供便捷 第8块(字符数:13):供便捷的解决方案。 === 增大chunk_overlap (chunk_size=50, chunk_overlap=20) === 第1块(字符数:50):Langchain是一个强大的大语言模型应用开发框架,它提供了丰富的组件和工具,帮助开发者 第2块(字符数:50):帮助开发者快速构建基于LLM的应用程序。无论是文本处理、链调用还是代理开发,Langchain 第3块(字符数:24):能提供便捷的解决方案。 === 减小chunk_overlap (chunk_size=50, chunk_overlap=0) === 第1块(字符数:50):Langchain是一个强大的大语言模型应用开发框架,它提供了丰富的组件和工具,帮助开发者 第2块(字符数:39):快速构建基于LLM的应用程序。无论是文本处理、链调用还是代理开发,Langchain都能提供 第3块(字符数:24):能提供便捷的解决方案。

2.数据加载部分

抽取文本->抽取关键信息作为元数据->转换成统一数据结构

Unstructured 库加载并解析一个PDF文件

from unstructured.partition.auto import partition

elements = partition(
filename=pdf_path,
content_type="application/pdf"
)

3.文本分块:直接分,分割号分,语义分,文档结构分(←一般组合使用)

总结各个切块的步骤:

  • 直接分块(固定长度分块)① 设定固定字符 / 词数长度阈值② 从文本开头按阈值逐段硬切割③ 不考虑语义、标点,直接拆分④ 输出分块结果

  • 分割号分块(分隔符分块)① 定位分隔符(标点、换行、分隔线、特殊符号等)② 以分隔符作为分块边界③ 按边界位置拆分文本④ 清理冗余内容后输出分块

  • 语义分块(逻辑分块)① 识别文本话题、句意、逻辑边界② 按语义完整独立原则划分③ 合并零散短句、拆分过长段落④ 输出语义连贯的分块

  • 文档结构分块① 解析文档层级(标题、章节、段落、列表等)② 按结构标签(一级 / 二级标题、正文段)划分③ 遵循文档原有结构边界分块④ 保留结构关系,输出结构化分块

其中语义分块(句子分割->上下文感知嵌入->计算语义距离->识别断点->合并成块)中:

langchain_experimental.text_splitter.SemanticChunker 通过buffer_size参数(默认为1)来捕捉上下文信息。对于列表中的每一个句子,这种方法会将其与前后各buffer_size个句子组合起来,然后对这个临时的、更长的组合文本进行嵌入。

然后计算每对相邻句子的嵌入向量之间的余弦距离。这个距离值量化了两个句子之间的语义差异——距离越大,表示语义关联越弱,跳跃越明显。

(余弦距离的发现者真伟大。。。)

4.实践:

  • 使用partition_pdf替换当前partition函数并分别尝试用hi_resocr_only进行解析,观察输出结果有何变化。

修改前:

解析完成: 5 页, 7956 字符 第一页内容: 进⼊词条 全站搜索检索增强生成 帮助 近期有不法分子冒充百度百科官方人员,以删除词条为由威胁并敲诈相关企业。在此严正声明:百度百科是免费编辑平台,绝不存在收费代编服务,请勿上当受骗!详情 >> 检索增强生成播报 锁定 讨论1 上传视频 ⼤模型前沿技术之⼀ 展开2个同名词条 一分钟了解检索增强生成一分钟了解检索增强生成01:2201:22 RAG :当下大模型应用落地的必杀技RAG :当下大模型应用落地的必杀技02:2302:23 查 中国科学院大学计算机科 中国科学院大学计算机科 术学院是 201... 权威合作编辑 ⽬录 同义词RAG(⼤模型内化吸收知识的过程)⼀般指检索增强⽣成 本词条由中国科学院大学计算机科学与技术学院、中国科学院计算技术研究所 参与编辑并 审核,经科普中国 · 科学百科认证 。 历史沿革 播报 技术定义 播报 检索增强生成( Retrieval-augmented Generation ),简称 RAG ,是当下热门的大模型 前沿技术之一 [1]。 检索增强生成模型结合了语言模型和信息检索技术。具体来说,当模型需要生成文本或者回答问题时,它会先从一个庞大的 文档集合中检索出相关的信息,然后利用这些检索到的信息来指导文本的生成,从而提高预测的质量和准确性 [2]。
http://www.jsqmd.com/news/495233/

相关文章:

  • IntelliJ IDEA Maven 按钮区别详解:Reload vs Sync
  • 盘点2026年浙江值得选购的轻钢龙骨防火板吊顶,推荐优质施工服务 - 工业设备
  • 盒马鲜生购物卡回收攻略 - 团团收购物卡回收
  • 2026年 油冷机/水冷机厂家推荐排行榜:高效温控与稳定运行,工业冷却设备实力品牌深度解析 - 品牌企业推荐师(官方)
  • 洗地机刷盘电机精准选型指南
  • 2026年防火堵料加工厂价格大揭秘,昊优环保性价比高 - 工业品牌热点
  • 全网最全:万里通积分卡线上回收方法与渠道对比分析5大注意事项 - 团团收购物卡回收
  • 淄博靠谱的别墅加装电梯定制厂家选购要点有哪些? - myqiye
  • AI智能课堂系统源码:AI课程生成与在线教学管理解决方案
  • 参数调优
  • 揭秘京东e卡变现秘诀,这些回收渠道你知道吗? - 团团收购物卡回收
  • 讲讲新疆隧道防火涂料服务商哪个靠谱,价格怎样 - myqiye
  • 替代国外品牌,国内有稳定的变压器厂家吗?
  • 【MySQL】事务:如何使用事务
  • 马斯克点赞,Karpathy 转发!Kimi 一刀拆了 Transformer 十年地基
  • 2026年 硅胶带厂家推荐排行榜,蠕动泵/导电/医用级/食品级/双色/新能源/工业级/阻燃/弹簧/耐高温硅胶带,专业定制与高适配性深度解析 - 品牌企业推荐师(官方)
  • “数字员工”重构企业生产单元
  • Nginx与frp结合实现局域网和公网的双重https服务
  • 山东一卡通线上回收靠谱吗?回收心得分享与平台推荐 - 团团收购物卡回收
  • 2026年辽宁石棉垫片好用品牌排名,专业石棉垫片加工厂推荐 - 工业推荐榜
  • 【ROS2】ROS 2 中 Content Filtering (内容过滤)的简介与使用
  • 告别网络依赖:完全离线的 AI 开发环境搭建指南
  • 【语音去噪】基于matlab融合小波变换和维纳滤波语音信号去噪(含SNR)【含Matlab源码 15192期】
  • 一部中短波发射机的一生——从出厂到退役的全生命周期成本
  • 性能测试时,通过查询数据库获取大量数据会影响整体的性能吗?
  • 搞定2026年生鲜促销图,我的经验是别直接套模板
  • AI 编程4:LangGraph 实战:动态并行 Worker 编排器模式,让 AI 多任务并行生成报告-test7
  • 〘 9-1 〙软考高项 | 第16章:项目采购管理(上)
  • 基于分解的多目标优化算法(MOEA/D) —— Matlab实现 测试函数包括:ZDT、DTL...
  • 电动压铆螺柱:高效安装,稳固可靠新选择