请按以下强制规范处理书籍内容,生成无冗余、可直接导入思维导图软件(XMind / MindMaster / 幕布 / Notion)的 mindmap 格式 Markdown 大纲。用户提供了思维导图样式时,以其层级与措辞为准;未提供时,以本规范为唯一样式基准,不得自行发挥。
零、工作模式总览
| 模式 | 触发条件 | 动作 | 输出物 |
|---|---|---|---|
| A 索引模式 | 输入整本书或多章内容,或用户指令「建索引」 | 解析全书结构,建立章节索引 | 章节索引表 |
| B 检索模式 | 用户指定章节号、提问或给主题 | 查索引定位目标章节,命中后进入直提模式 | 定位结果,或 mindmap 大纲 |
| C 直提模式 | 输入为单一章节原文,或检索已命中 | 按「章→节→子节→核心要点」四层提炼 | mindmap 大纲 |
- 三种模式输出物互不混装:索引模式不输出要点,检索模式定位完成前不输出大纲。
- 模式 B 命中后自动衔接模式 C,大纲输出遵守本规范全部格式与提炼规则。
一、输入材料规范
- 输入获取优先级(按序执行): a. 用户直接粘贴或上传的章节文本:直接使用,跳过提取步骤。 b. 本地 PDF 文件:使用 pymupdf 提取文本;库缺失时先执行 pip install pymupdf 再提取;禁止手写 PDF 解析器。 c. 提取失败或中文乱码:最多重试 2 次(含切换提取工具);仍失败则立即停止技术攻关,提示用户直接粘贴章节文字。
- 内容忠实原则:所有要点必须提炼自用户提供的原文,禁止凭模型自身知识补全、改编或拓展书籍内容。
- 仅提供目录时:按目录搭建完整骨架,每个四级位置统一标注「- 待补充:需提供章节正文」,不得凭空生成要点。
- 代码密集章节:不保留完整代码块,将代码压缩为关键 API 名称、命令或执行流程写入要点说明。
- 缺失标识区分:「待补充」指用户未提供正文(输入侧缺失),「内容空缺」指原文本就无内容(原书侧缺失),二者不得混用。
二、索引构建规范
- 触发时机:输入为整本书或多章内容且用户未指定单章时,先建索引并输出,随后等待用户指令。
- 生成方式:优先从书籍目录页解析生成,必要时抽样正文校准位置;禁止为建索引而逐页解析全书。
- 索引条目字段:编号(复刻原书编号)、标题(复刻原书标题)、关键词(2~4 个,供主题检索)、位置(PDF 物理页码;无法确定时用章节序号)。
- 索引格式:Markdown 表格。索引为定位工具,其表格格式是本模式专属,不受大纲输出格式规范约束。
- 覆盖要求:索引必须覆盖全部章节,无遗漏、无调序;标题与编号复刻规则与大纲输出一致。
- 复用规则:索引生成后驻留当前会话;脚本模式下保存为「书名_index.md」,后续任务优先读取已有索引,禁止重复解析全书。
- 职责边界:索引仅用于定位,不做内容提炼,不输出任何要点。
索引输出示例(节选):
【章节索引】单干:成为超级个体的49个关键动作
| 编号 | 标题 | 关键词 | PDF页码 |
| ---- | ---- | ---- | ---- |
| 00 | 认知篇 | 单干认知、财富自由、三大趋势 | 10 |
| 01 | 变现篇 | 极简变现法 | 23 |
| 1.1 | 认真琢磨挣钱不丢人 | 商业常识、琢磨挣钱 | 24 |
| 1.2 | 像经营公司一样经营自己 | 觉醒、五部门框架 | 27 |
| 1.3 | 一人公司 | 人效、小而美、信任 | 31 |
三、检索定位规范
- 指令识别:
- 「阅读第X章」「提取X.X」「对X.X做思维导图」:定位后进入直提模式,输出该章或节的大纲。
- 「XX在哪」「哪些章节讲XX」及内容类提问:仅返回定位结果(编号 + 标题 + 位置),并列出相关章节,询问是否生成大纲;不擅自提取。
- 「继续」「下一节」:按索引顺序处理下一节,直至用户停止。
- 匹配规则:优先按编号精确匹配;无编号时按关键词与标题匹配索引条目。
- 歧义处理:命中多个候选时,列出候选(编号 + 标题)请用户选择,禁止擅自猜测。
- 无匹配:明确告知未找到,给出最接近的索引条目供参考,禁止编造章节。
- 范围控制:单次提取不超过一章;整章超长时按节分批输出,每批结束暂停等待「继续」。
- 全量禁令:任何模式下禁止将全书内容一次性提取并全量输出,必须经索引定位后按需处理。
四、输出格式规范(严格执行)
1. 层级定义与格式(必须与原书目录完全对应)
| 层级 | 格式 | 示例 |
|---|---|---|
| 章(一级) | ## 第X章 章标题 | ## 第03章 LangChain使用之Chains |
| 节(二级) | ### N 节标题 | ### 1 Chains的基本使用 |
| 子节(三级) | #### N.M 子节标题 | #### 1.1 Chain的基本概念 |
| 核心要点(四级) | - 要点名:精炼说明 | - 链:串联组件形成可复用AI工作流 |
2. 编号规则
- 章编号 X 跟随原书真实章节号:原书第03章即写「## 第03章」。
- 章号归一化:原书为中文数字(第三章)或英文(Chapter 3)时,统一转为两位阿拉伯数字(第03章),保持全文视觉统一。
- 节编号 N 在章内从 1 重新计数,与章号无关:### 1、### 2、### 3。
- 子节编号 N.M 跟随所属节号:#### 2.3 表示第 2 节下第 3 个子节。
- 篇级映射例外:原书顶层为「篇」时,篇映射为一级标题(# 第X篇 篇标题),章顺延为 ##,详见边界情况处理。
3. 核心要求(必须满足)
- 四级要点名禁止使用空泛元描述(如「关键词」「重要概念」「相关数据」「本章介绍」),须为实义术语或指代性标识;「案例:」「代码示例:」「环境依赖:」等含具体内容的标识允许使用。
- 不允许跳过层级,不允许添加 Emoji、加粗、引用块等额外 Markdown 语法,仅使用标题 + 无序列表。
- 必须完整覆盖全部目录节点:不遗漏、不合并、不调换顺序;禁止为凑数编造低质要点。
- 章节标题完全复刻原书标题文字,不得擅自缩写、删减或改写。
- 专业名词、函数名、类名、库名必须与原文一字不差(如 LCEL、create_sql_query_chain、numexpr)。
- 层级弹性:子节核心要点较复杂或较多时,可增设更深一级子目录(如 ##### N.M.K)分组展开要点,不必死板局限于「子节+要点」两级;仅在内容确需展开时使用,禁止为分层而分层。
五、内容提炼与节点构建规则
1. 要点提炼规则
- 要点名称为章节核心术语,说明为该术语的极简定义/作用,冒号直接连接。
- 优先提炼:工具名称、核心特性、关键流程、适用场景、版本说明。
- 代码示例 / 数据直接融入要点说明(如 - LCEL:使用|管道符串联组件)。
2. 要点数量规则(硬性分档)
| 子节内容量 | 要点数量 | 处理方式 |
|---|---|---|
| 常规 | 3~5 条 | 覆盖该子节全部核心信息 |
| 极少 | 1~2 条 | 有多少提炼多少,禁止凑数 |
| 极多 | 上限 7 条 | 精选合并;仍超载时拆分为两个子节 |
3. 要点字数规则
- 说明默认控制在 20 字以内;含技术名词、代码指令时最长不超过 30 字。
- 说明部分避免术语堆砌,优先使用动宾/偏正结构,如「整合文档文本内容」「实现批量任务执行」。
4. 特殊信息处理
- 环境依赖、安装命令、参数说明、步骤流程:作为独立要点节点(如 - 环境依赖:需安装numexpr库)。
- 案例:融入对应要点说明,不单独成段(如 - 案例查询:员工数量、薪资、部门信息)。
- 表格/图表:提炼核心结论为要点(如 - 性能对比:表格列出三种模型准确率)。
- 公式:用文字描述含义,不照抄符号(如 - 注意力机制:Q与K点积缩放后求权重)。
- 原文无实质内容:添加「- 内容空缺:本节无相关阐述」(区别于输入侧缺失的「待补充」)。
5. 重复概念处理
- 同一术语跨章节出现时允许重复保留,说明按本章语境提炼,不跨章合并、不标注“同前文”。
六、边界情况处理
| 情况 | 处理方式 |
|---|---|
| 原书含「篇/部分」更高层级 | 篇映射为一级标题(# 第X篇 篇标题),章顺延为 ##,以下层级不变 |
| 章或节下无子节 | 仅当原书目录本身无子节标题时,方可跳过子节层,在上一级标题下直接书写要点列表;禁止凭空跳过层级或产生悬空列表 |
| 问答体/访谈体原文 | 以问题或主题为子节标题,答案核心提炼为要点 |
| 一次输入多章 | 按原书顺序连续输出全部章节,章间不加分隔语、总结语 |
| 输入整本书但仅要求单章 | 先建索引(若会话中尚无),定位后仅提取目标章节,禁止全量输出 |
| 会话中已有索引 | 直接复用并检索,禁止重复建索引 |
| 目录页与正文标题不一致 | 以正文标题为准修正索引条目 |
七、示例参考(大纲样式唯一对齐基准)
以下为带 Markdown 标记的完整大纲示例,可直接对照模仿:
## 第03章 LangChain使用之Chains
### 1 Chains的基本使用
#### 1.1 Chain的基本概念
- 链:串联组件形成可复用AI工作流
- 组件连接:组合提示模板、LLM、记忆、工具等
- 工作流:实现复杂任务的模块化执行流程
- 模块化:拆分功能单元,灵活组合调用
- 复杂任务:依靠多组件协作完成高阶需求
#### 1.2 LCEL及其基本构成
- LCEL:LangChain表达式语言,声明式构建流程
- 管道符:使用|串联各个功能组件
- 组件链接:按顺序传递输入与输出数据
- 执行流程:输入→提示模板→模型→解析器
- 声明式:简洁定义AI工作流,无需冗余代码
#### 1.3 Runnable
- 抽象接口:LCEL组件统一遵循的标准协议
- 统一调用:所有组件共用invoke等方法
- 批量处理:batch方法实现批量任务执行
- 流式输出:stream方法逐段返回结果
- 异步调用:ainvoke提供异步执行能力
#### 1.4 使用举例
- 分步调用:逐个执行组件,手动传递结果
- 链式调用:通过管道符一键组装完整链路
- StrOutputParser:通用字符串输出解析器
- 代码示例:提供两种调用方式完整代码
- 效果对比:对比分步与链式写法优劣
### 2 传统Chain的使用
#### 2.1 基础链:LLMChain
- 基础链:传统体系中最原始的链结构
- 弃用提示:0.1.17版本后官方不再推荐
- 单次问答:适用于单轮简单问答场景
- 无记忆:无法自动留存历史对话内容
- 参数配置:支持模型、提示、回调等参数
#### 2.2 顺序链之SimpleSequentialChain
- 顺序执行:多个子链按先后顺序串行运行
- 单入单出:整条链路仅有一组输入输出
- 自动传参:上链输出自动作为下链输入
- 流水线:搭建线性执行的业务流程
- 多链串联:整合多个LLMChain协同工作
#### 2.3 顺序链之SequentialChain
- 多变量:支持多个独立输入、输出变量
- 显式映射:手动指定变量传递对应关系
- 灵活传参:自定义链路间数据流转规则
- 复杂流程:适配多分支、多数据源场景
- 多输入输出:链路可留存多个阶段结果
#### 2.4 数学链 LLMMathChain
- 数学计算:专门处理自然语言数学问题
- 表达式转换:文本问题转为可执行算式
- 代码执行:调用numexpr库运行表达式
- 数值运算:完成加减、乘方等数学计算
- 解析问题:理解自然语言描述的计算题
#### 2.5 路由链 RouterChain
- 动态路由:根据内容自动分配执行子链
- 需求识别:识别用户问题所属业务类型
- 分支选择:匹配对应场景的专属链路
- 子链分发:将请求转发至目标处理链
- 默认链路:设置兜底链处理未知请求
#### 2.6 文档链 StuffDocumentsChain
- 文档合并:把多篇文档内容整合为整体
- 内容填充:将文档塞入提示模板变量中
- 全局理解:模型一次性读取全部文档内容
- 文档摘要:基于合并内容生成简短总结
- 文档问答:依托完整文档解答相关问题
### 3 基于LCEL构建的Chains的类型
#### 3.1 create_sql_query_chain
- SQL链:面向数据库查询的专用链路
- 自然语言转SQL:文本问题自动生成查询语句
- 数据库查询:对接数据库完成数据检索
- 表限定:指定仅使用部分数据表执行查询
- 语句生成:输出标准可执行SQL代码
#### 3.2 create_stuff_documents_chain
- 新版文档链:LCEL风格的文档处理链路
- 文档拼接:整合多篇文档文本内容
- LCEL风格:遵循表达式语言开发规范
- 内容整合:统一处理多份文档信息
- 问答提取:从文档中抽取答案与关键信息
八、补充约束
- 大纲输出(模式 C 最终产物)仅包含 Markdown 大纲,无任何额外说明、解释或对话内容。
- 要点说明须与原文核心内容一致,不添加主观推断或拓展内容。
- 大纲输出即为 mindmap 导入格式:带 Markdown 标记(## / ### / #### / -)的大纲文本,可导入 XMind、MindMaster、幕布、Notion;禁止输出 Mermaid 等无法被上述软件直接导入的其他 mindmap 语法。
- 索引表与检索定位结果为中间输出,按各自格式执行,不适用大纲输出约束。
九、输出自检清单(输出前逐项核对)
- 章标题为「## 第X章 章标题」,章号为两位阿拉伯数字,与原书章号对应
- 节编号在章内从 1 计数,子节编号跟随所属节号
- 章节标题文字与原书完全一致,无缩写、删减、改写
- 四级要点均为「要点名:说明」格式,无空泛元描述
- 无 Emoji、加粗、代码块、引用块等额外语法
- 层级无跳跃、无悬空列表,章节顺序与目录完全一致,无遗漏节点
- 专业名词、函数名、库名与原文一字不差
- 每个子节至少 1 条要点,数量符合分档规则
- 「待补充」与「内容空缺」按场景正确使用,未混用
- 纯文本校验:复制为纯文本后层级依然清晰可读,不依赖渲染效果
- 输出为 mindmap 导入用 Markdown 大纲,未混入 Mermaid 或其他语法
- 输出无任何前言、解释、总结等对话内容
- 索引覆盖全部章节且位置可定位(索引模式适用)
- 检索命中后仅含目标章节内容,未混入未请求章节(检索模式适用)
- PDF 提取使用 pymupdf,未手写解析器;失败时已按止损规则降级处理
详细示例与压测用例见 examples.md。