AI 编程 langchain 知识点

7 阅读2分钟

必须记住(核心概念,决定你会不会用)

模块必须记住
PromptChatPromptTemplate vs PromptTemplate;MessagesPlaceholder 插历史消息;partial() 预填参数
Modelinvoke / batch / stream 三选一看场景;.content 取结果
OutputParser纯文本用 StrOutputParser;结构化用 JsonOutputParser + BaseModel
LCELPrompt / LLM / Parser 管道是核心;本质是上一步输出→下一步输入
Runnable 工具并行多链用 RunnableParallel;RAG 加 context 用 RunnablePassthrough.assign
bind / retry / fallbackbind 预锁参数;retry 应对临时故障;fallback 应对模型不可用
记忆策略Buffer/Window/SummaryBuffer 三种策略选对场景;存哪里用 InMemory/File/DB
记忆接入RunnableWithMessageHistory + session_id 是标准套路
Embeddingembed_query 查询用;embed_documents 建索引用;语义越近向量越近
向量数据库FAISS 本地开发;Pinecone/腾讯云生产;as_retriever() 接入 RAG
文档加载Document = page_content + metadata;不同文件有对应 Loader
文本分割RecursiveCharacterTextSplitter 首选;chunk_size/chunk_overlap 是关键参数;中文加自定义分隔符
RAG 流水线加载→分割→向量化→存库→as_retriever→RunnablePassthrough.assign→PromptLLM
高级检索Multi-Query 多角度;RAG Fusion 融合排名;Step-Back 回退;HyDE 假设答案;问题分解复杂问题
结构化输出with_structured_output + Pydantic = LLM 直接返回对象
混合检索BM25 + FAISS 用 EnsembleRetriever,关键词和语义互补
路由分发逻辑路由走 LLM;语义路由走余弦相似度(快且省)
SelfQuery自然语言自动拆成语义查询 + 元数据过滤
MultiVector文档预生成假设问题做索引,提升匹配率
ParentDocument小块检索,大块返回,兼顾精度和上下文

用时查一下(语法细节,不用背)

callback 的事件方法名、各数据库连接参数、Loader 类名、分隔符配置、import 路径


可以完全忘掉(AI 全包)

所有样板代码、完整类实现、计算公式代码、参数顺序


你真正需要记住的只有三件事

  1. RAG 完整流水线:加载→分割→向量化→存库→检索→注入Prompt→LLM
  2. LCEL 管道Prompt | LLM | Parser,万物皆 Runnable
  3. 召回率不够时的工具箱:Multi-Query / RAG Fusion / HyDE / Step-Back / ParentDocument