LangChain模块架构

42 阅读2分钟

v2-d383877a7a4301018ca65f929ee9fe20_1440w.png

Model/IO

Prompt

提示词工程,给大模型提供上下文,输出目标,输出格式,例子集合,指导大模型应该输出什么

Language Models

LLM 模型主要是理解人类语言,通用文本生成(如写代码、翻译、单轮问答) Chat 模型是基于 LLM 模型的专精多轮对话的上下文维护,多轮对话

Output Parsers

对结果进行结构化输出,JSON 输出,支持多种结构化输出(如XML、YAML),同时处理格式校验和错误重试

Data Connection

用于实时处理用户输入的外部数据(如加载PDF、抓取网页)

Document Loaders

Folder, File 等 Loader 加载本地数据,也可以通过 Web 从外部检索数据

Document Splitters

数据需要转换成向量,才能被大模型高效检索,数据转换成向量时,需要大模型转换,输入到大模型的数据每次只支持10-100k,数据太大时,就要进行分割。咱们可以通过 Text,Code,Token 等不同策略进行分割,分割同时考虑语义完整性(如按段落分割保留上下文)和特定场景需求(代码按函数分割)

Vector Stores

存储和管理向量数据的工具
Embedding: 将数据转换成向量的工具
Vector DB: 专用向量数据库 Memory: 短期记忆管理(如对话上下文向量缓存) Self Host: 部署私有化向量存储方案

Vector Retrievers

为了解决大模型问题,金额提通过 Vector DB 通过向量近似度匹配, 通过 Web API 搜索引擎匹配, 通过云服务 Bass 检索其他向量数据

Memory

管理对话历史记录,方便上下文管理 Buffer: 临时存储高频访问的向量(缓存机制,如内存)
Vector DB: 专用向量数据库
KV DB: 传统 KEY - VALUE 数据库
SQL DB:传统关系型数据库

Chains

预定义任务流程(如:文档加载→分割→向量化→检索→生成回答),支持顺序/条件/循环执行

Agent

根据输入动态选择工具(如先检索知识库,再调用计算器),通过ReAct模式(Reason→Act)自主决策步骤。组合不同功能的 Chains,使用 function call 定义函数,告诉大模型什么时候调用这个函数

Callback

记录大模型思考过程,还支持实时干预(如修改生成中的文本)和性能监控(记录token消耗、响应延迟)