跳到主要内容

01-outline — unlocking-data-genai-rag 拆解切分

原书 19 章(3 部),约 111 万字符。我们的拆解 14 章,对应关系见各行括号。 自查记录:每行「出去时知道」互不重复;03(安全)与 01(动机里的幻觉话题)分工——01 只说「RAG 减少幻觉」的现象,03 讲幻觉的机制与攻防。

章节切分(14 章)

  • 01-rag-what-and-why — RAG 是什么、企业为什么需要它(原 ch1 + ch3 应用面)
    • 进来时以为:RAG 是 ChatGPT 的一个功能。 → 出去时知道:RAG 是「检索外部数据再生成」的模式,与直接用 LLM、微调是三条不同的路;微调教任务、RAG 管事实;索引/检索/生成三阶段;企业里客服/报告/电商/知识库的真实用法。
  • 02-first-pipeline — 十一步搭出第一条 RAG 管道(原 ch2 代码实验室 + ch4 组件拆解 + ch3 末的出处代码)
    • 进来时以为:RAG 很抽象,不知道从哪下手。 → 出去时知道:从装包到 invoke 的完整 11 步;每一步对应的代码长什么样;检索在索引阶段建、查询阶段用;给答案附带出处只需把链改成并行;GPT-3.5 把 RAG 理解成「红绿灯状态报告」的实验证明检索不可省。
  • 03-security — 安全:RAG 既是盾也是靶(原 ch5)
    • 进来时以为:RAG 的安全问题就是「别把 API key 泄露」。 → 出去时知道:RAG 本身是安全手段(限权/溯源/幻觉有据可查);幻觉为什么发生(低概率 token 串成可信句)、四个真实赔偿判例;红队如何用一个「换个标点」的提示词套出系统提示词,蓝队如何用第二个 LLM 打相关性分挡住它。
  • 04-vectors-embeddings — 向量:让「意思」可以被计算(原 ch7)
    • 进来时以为:向量就是一串数。 → 出去时知道:向量有方向和量级,1536 维怎么来的、为什么长短文本维度一样;50 年向量化技术史(TF-IDF→Word2Vec→BERT→OpenAI)各自强在哪;查询与文档必须同一模型嵌入;Matryoshka/自适应检索;向量库选型。
  • 05-similarity-search — 相似检索:距离、混合搜索与索引(原 ch8)
    • 进来时以为:检索就是「找最像的」一句话。 → 出去时知道:距离度量/相似算法/向量搜索是三层;三种距离怎么算(拿两条毯子评论算到底);语义搜索查序列号会失灵,所以 sparse/hybrid 存在;RRF 只用排名不用分数;k-NN 反而比 ANN 准、只是不扩展;HNSW 的六度分隔原理。
  • 06-evaluation — 评测:不测就不知道改了什么(原 ch9)
    • 进来时以为:RAG 好不好,肉眼看看回答就行。 → 出去时知道:基准榜单只管初选,自己的系统要自建评测;ground truth 四种来源;ragas 的检索/生成/端到端六指标,以及一套真实数字(dense 与 hybrid 谁赢了);没有标准答案时 reference-free 指标怎么用;评测本身也烧钱($2-2.5/轮)。
  • 07-langchain-toolbox — LangChain:可换零件的管道(原 ch10 + ch11)
    • 进来时以为:LangChain 是必须整套装的框架。 → 出去时知道:三大件(vector store/retriever/LLM)在 LangChain 里都是可替换接口,换后端只改一两行;检索器层有 score threshold/MMR/ensemble/kNN 这些真正影响结果的旋钮;loaders/splitters/parsers 三个配套件各自解决什么;CharacterTextSplitter 用错分隔符会「永不切分」。
  • 08-agents-langgraph — 给 RAG 装上循环:agent 与 LangGraph(原 ch12)
    • 进来时以为:agent 是玄乎的智能体概念。 → 出去时知道:agent = LLM 调用 + 一个完成才退出的循环;LangGraph 用节点/边/条件边描述这个循环;工具是给 LLM 的说明书;一次真实运行里 agent 怎么决定「查本地库还是搜网」、检索结果不合格时怎么改写问题重来。
  • 09-ontologies — 本体:把领域知识写成机器能推理的形式(原 ch13)
    • 进来时以为:知识图谱就是画一堆连线。 → 出去时知道:本体是类/属性/关系的正式规格,RDFS 与 OWL 的推理能力差在哪;competency questions 先行的方法论;Protégé 里从层级到实例到 SKOS 注释的完整流程;domain/range 约束让机器能查出建模错误。
  • 10-graph-based-rag — 知识图谱进 RAG(原 ch14)
    • 进来时以为:GraphRAG 是这类做法的统称。 → 出去时知道:GraphRAG 特指微软那套 LLM 自动建图管线,本书是更简单的「本体→Neo4j」路线;循环图与本体 DAG 是两种图;hybrid embeddings 把图上下文拍平进文本再嵌入,是图检索能接住自然语言的关键;KG 上下文用 Python 字典格式给 LLM,多跳推理准确率远超 JSON;五个验收问题全答对。
  • 11-semantic-caches — 语义缓存:一次推理服务一千次提问(原 ch15)
    • 进来时以为:缓存就是 key-value 存答案。 → 出去时知道:语义缓存拦截的是 agent 的规划步骤,存的是 solution path;长尾分布决定该缓存什么;四层增强(实体遮蔽/交叉编码器/自适应阈值/自动回填)各自治什么病;填充与驱逐策略;EBITDA≠earnings 这类域约束为什么不能省。
  • 12-agentic-memory — 记忆:从无状态到有状态(原 ch16)
    • 进来时以为:上下文窗口够大就不需要记忆。 → 出去时知道:窗口再大也贵、慢、丢中间信息;CoALA 四记忆类型+社区/个人两范围;三代框架(Mem0/LangMem/Zep-Graphiti)各自的取舍,bi-temporal 时间戳是什么;记忆系统怎么评测与怎么腐化(bloat/sclerosis)。
  • 13-memory-in-code — 记忆落地:episodic、semantic 与 procedural(原 ch17 + ch18 前半)
    • 进来时以为:记忆=把聊天记录存数据库。 → 出去时知道:episodic 怎么存取(带时间戳的整段对话+类型过滤);semantic 怎么从对话抽事实;procedural 存的是「怎么做事」的策略,分层作用域(user/community/task/global)决定模式该在哪层生效;域无关核心+域目录的架构分离。
  • 14-learning-agents — 会自己变好的 agent:三算法、域指标与完整 CoALA(原 ch19 + ch18 后半)
    • 进来时以为:agent 部署完就定死了。 → 出去时知道:LangMem 三算法(prompt_memory/gradient/metaprompt)各管一种学习、怎么组合;domain_metrics 权重是目标间的汇率(50/30/20 的换算),agent 会精确优化你告诉它的目标;域转换框架;四记忆合一的完整认知架构与书里的诚实声明。

主线(总纲第 3 节的骨架)

LLM 不知道你公司的事 → RAG 用「检索+生成」补上(01) → 一条 11 步管道落地(02) → 它会胡说、会被攻击,要安全层(03) → 检索的根基是向量(04)与相似搜索(05) → 好不好要靠评测说了算(06) → LangChain 让每个零件可换(07) → 零件之上加循环=agent(08) → 向量之外的第二条检索路:图,先写本体(09)再上图(10) → 生产化的两个放大器:语义缓存省钱省时(11)、记忆让 agent 有状态(12) → 记忆落地成代码(13) → 程序性记忆让 agent 自己变好(14)。