LangChain:LLM 大语言模型编程框架
概述
基本介绍
LangChain 是一个基于语言模型(LLM)开发应用程序的框架。它旨在简化 LLM 应用程序的生命周期,提供组件化、模块化的解决方案。
- 数据感知:将语言模型连接到其他数据源。
- 自主性:允许语言模型与其环境进行交互。
- 生命周期管理:
- 开发:使用开源组件和第三方集成构建应用程序。
- 产品化:使用 LangSmith 检查、监控和评估应用程序。
- 部署:使用 LangGraph 平台将应用转变为生产就绪的 API 和助手。
LangChain 的主要价值在于组件化和现成的链(Chains)。它为使用语言模型提供了抽象层,使得开发人员无需从零开始构建基础功能,从而减少工作量。需要注意的是,LangChain 本身并不是 LLM,需要配合具体的 LLM 模型或在线 API 使用。
核心组成模块
LangChain 包含丰富的模块,涵盖了从输入处理到输出解析的全流程:
- 提示模板 (Prompts)
- 示例选择器 (Example Selectors)
- 聊天模型 (Chat Models)
- LLMs
- 输出解析器 (Output Parsers)
- 文档加载器 (Document Loaders)
- 文本拆分器 (Text Splitters)
- 嵌入模型 (Embeddings)
- 向量存储 (Vector Stores)
- 检索器 (Retrievers)
- 索引 (Indexes)
- 工具 (Tools)
- 代理 (Agents)
- 多模态 (Multimodal)
- 回调 (Callbacks)
这些模块整合了以往分散的工具,显著节省了开发时间。
生态架构
LangChain 框架由多个开源库组成:
- langchain-core:聊天模型和其他组件的基本抽象。
- 集成包:如
langchain-openai,langchain-anthropic等,重要的集成已被拆分为轻量级包。 - langchain:构成应用程序认知架构的链、代理和检索策略。
- langchain-community:由社区维护的第三方集成。
- langgraph:编排框架,用于组合 LangChain 组件以构建具有持久化、流式处理功能的生产就绪型应用程序。
新兴 LLM 技术栈
大语言模型技术栈主要由四个部分组成:
- 数据预处理流程:包括与数据源的连接(如 S3、CRM)、数据转换层及下游连接器。由于涉及的数据源繁杂(PDF、PPTX、HTML 等),此步骤通常涉及大量的清洗工作,需使用 OCR、脚本等方式提取关键信息并转换为 JSON 格式供后续处理。
- 嵌入端点和向量存储:利用嵌入端点生成向量,并通过向量数据库存储和检索。这种方法支持高效的数据检索和处理大型数据集。
- LLM 终端:接收输入数据并生成输出的接口,负责资源管理和可扩展性。
- LLM 编程框架:协调各种组件(LLM 提供商、嵌入模型、向量存储等)的工具集。
关键组件解释
Prompts/提示词
Prompts 是管理 LLM 输入的工具。在获得所需输出前,通常需要对提示进行大量调整。最终的 Prompt 可以是单句或多句组合,包含变量和条件语句。


