必须记住(核心概念,决定你会不会用)
| 模块 | 必须记住 | |
|---|---|---|
| Prompt | ChatPromptTemplate vs PromptTemplate;MessagesPlaceholder 插历史消息;partial() 预填参数 | |
| Model | invoke / batch / stream 三选一看场景;.content 取结果 | |
| OutputParser | 纯文本用 StrOutputParser;结构化用 JsonOutputParser + BaseModel | |
| LCEL | Prompt / LLM / Parser 管道是核心;本质是上一步输出→下一步输入 | |
| Runnable 工具 | 并行多链用 RunnableParallel;RAG 加 context 用 RunnablePassthrough.assign | |
| bind / retry / fallback | bind 预锁参数;retry 应对临时故障;fallback 应对模型不可用 | |
| 记忆策略 | Buffer/Window/SummaryBuffer 三种策略选对场景;存哪里用 InMemory/File/DB | |
| 记忆接入 | RunnableWithMessageHistory + session_id 是标准套路 | |
| Embedding | embed_query 查询用;embed_documents 建索引用;语义越近向量越近 | |
| 向量数据库 | FAISS 本地开发;Pinecone/腾讯云生产;as_retriever() 接入 RAG | |
| 文档加载 | Document = page_content + metadata;不同文件有对应 Loader | |
| 文本分割 | RecursiveCharacterTextSplitter 首选;chunk_size/chunk_overlap 是关键参数;中文加自定义分隔符 | |
| RAG 流水线 | 加载→分割→向量化→存库→as_retriever→RunnablePassthrough.assign→Prompt | LLM |
| 高级检索 | Multi-Query 多角度;RAG Fusion 融合排名;Step-Back 回退;HyDE 假设答案;问题分解复杂问题 | |
| 结构化输出 | with_structured_output + Pydantic = LLM 直接返回对象 | |
| 混合检索 | BM25 + FAISS 用 EnsembleRetriever,关键词和语义互补 | |
| 路由分发 | 逻辑路由走 LLM;语义路由走余弦相似度(快且省) | |
| SelfQuery | 自然语言自动拆成语义查询 + 元数据过滤 | |
| MultiVector | 文档预生成假设问题做索引,提升匹配率 | |
| ParentDocument | 小块检索,大块返回,兼顾精度和上下文 |
用时查一下(语法细节,不用背)
callback 的事件方法名、各数据库连接参数、Loader 类名、分隔符配置、import 路径
可以完全忘掉(AI 全包)
所有样板代码、完整类实现、计算公式代码、参数顺序
你真正需要记住的只有三件事
- RAG 完整流水线:加载→分割→向量化→存库→检索→注入Prompt→LLM
- LCEL 管道:
Prompt | LLM | Parser,万物皆 Runnable- 召回率不够时的工具箱:Multi-Query / RAG Fusion / HyDE / Step-Back / ParentDocument