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 的对话历史
posted @ 2025-05-16 16:25  代码世界faq  阅读(27)  评论(0)    收藏  举报