langchain
LangChain 应用方向简述
1. RAG(Retrieval Augmented Generation)
基于 LangChain + 检索 实现内容生成
典型应用:
- RAG Search
- 企业知识库问答
- 垂直行业信息咨询
- 智能聊天机器人(客服)
- 文档摘要
RAG增强检索
文本embedding
DirectoryLoader加载文档 -> RecursiveCharacterTextSplitter(文档分割) -> HuggingFaceEmbeddings(文本转向量模型加载) -> PGVector.from_documents(建立向量数据库) -> vectorstore.as_retriever(创建检索器) -> add_embeddings(文档和向量)
相似检索 -------------------------------------------------
PGVector.from_documents(建立向量数据库) -> vectorstore.as_retriever(创建检索器) -> token加载器 -> HuggingFacePipeline(管理llm模型和tokenizer) -> promptTemplate(提示词模板) -> RetrievalQA.from_chain_type(构建问答链) -> vectordb.similarity_search(向量库检索用户相关内容) -> invoke (将context和question喂给大模型) -> result
优化相似检索:
检索和问答链中间不必重复建库,只需一次建好向量库并持久化。
可在 RetrievalQA 内部自动调用 similarity_search,不必手动拆分。
建议在问答链前后插入 OutputParser,对模型输出做结构化或校验。
更通用的RAG------------------------------------------------
flowchart TD
subgraph 文档处理
A[加载文档: DirectoryLoader、PDFLoader…]
B[分割 Chunk: RecursiveCharacterTextSplitter…]
C[预处理: 清洗、去重、Metadata 标注]
D[嵌入: HuggingFaceEmbeddings…]
E[存储: FAISS/Chroma/Milvus/PGVector]
end
subgraph 检索与问答
F[Retriever: vectorstore.as_retriever]
G[PromptTemplate + Memory]
H[RAG Chain: RetrievalQA / CustomChain]
I[模型调用: LLM(ChatModels/LLMs)]
J[OutputParser]
end
subgraph 运行时 & 监控
K[Logs & Tracing: Callback机制]
L[Metrics: 检索命中率、响应时延]
M[审核 & 安全: 输出校验、敏感词过滤]
end
A --> B --> C --> D --> E
E --> F --> G --> H --> I --> J
H --> K --> L --> M
核心要素说明
-
文档预处理:
- 文档清洗(正则去标签、HTML 转纯文本)
- Metadata 提取(如时间戳、作者、类别)
- 去重策略(相似度阈值去重)
-
向量存储:
- 选择存储方案(本地 FAISS、云端 Milvus、PGVector…)
- 支持动态扩容与定期重建索引
-
检索器 & 检索策略:
- Hybrid Retrieval(向量 + 关键词布尔检索)
- 抽样 top-k 结果,或按照多阶段检索(粗排→细排)
-
Prompt + Memory:
- 短期 Memory:对话上下文(最近消息、检索到的文档)
- 长期 Memory:用户偏好、历史交互、专有知识点
- 将 Memory 与检索结果一起拼入 Prompt,提高连贯性
-
自定义 Chain:
- 可继承
Chain,在调用 LLM 前后插入校验、工具调用、条件分支 - 支持多步骤流程:检索→摘要→二次检索→合成生成
- 可继承
-
OutputParser & 安全审计:
- 结构化输出(JSON Schema 校验)
- 过滤敏感、违法或不符合业务规范的内容
-
监控与评估:
- Callback 记录每次调用的上下文与耗时
- 指标监控(命中率、平均响应时间、用户满意度反馈)
2. Agents(Reasoning Engines)
基于 LLM 的任务理解、拆解与执行系统
核心思想:
- 利用大模型理解和拆解任务,将其视作“打工人”
- 利用工具(Tool)+ 执行器(Executor)完成复杂流程
典型应用:
- 角色扮演:法律助手、订票助手、行业专家
- 数据处理:整理、分析、报表、告警生成
- 编程支持:编码、调试、测试、自动修复
- 创意制作:视频/电影制作
- 商业用途:行业调研、商业决策分析
LangChain 模块与核心要素一览
🔗 Chains(链)
- 串联多个模块形成处理流程
- 如:输入 → 提示 → LLM → 输出解析
⚙️ Executors(执行器)
- 用于执行链或代理流程
🧠 Model I/O(模型输入输出)
Prompt / PromptTemplate
- 提示词模板管理,支持变量插入
Example Selectors
- 根据上下文动态选择示例,优化 few-shot 效果
Chat Models / LLMs
- 支持多种模型接入(OpenAI、Qwen、ChatGLM等)
Output Parsers
- 自定义处理模型输出结果
🔍 Retrieval(检索相关)
Document Loaders
- 加载 PDF、网页、TXT 等文档
Document Transformers
- 文档清洗、切分(chunk)等预处理
Text Embedding Models
- 将文本向量化(如 OpenAI Embeddings、HuggingFace 模型)
Vector Stores
- 向量存储(如 FAISS、Chroma、Milvus)
Retrievers
- 检索器,基于向量进行相似内容查找
Indexing
- 文档索引构建
🧭 Agents(代理)
- 可调用工具的推理引擎,支持多轮任务拆解与执行
🧰 Tools / Toolkits(工具)
- 供 Agent 使用的功能模块,如搜索、计算器、数据库查询等
🧵 Memory(内存)
- 存储对话上下文,实现多轮对话
💬 Chat Message(聊天记录)
- 格式化与管理用户与 AI 的对话历史

浙公网安备 33010602011771号