AI

LangChain:LLM 应用程序开发的通用框架

LangChain 是领先的开源框架,用于构建 LLM 应用程序,提供链、智能体、RAG 和多模型编排工具。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
LangChain:LLM 应用程序开发的通用框架

使用大语言模型构建应用程序与传统软件开发有着根本的不同。LLM 是非确定性的、昂贵的、受限于上下文窗口,并且无法自行访问外部数据或执行计算。LangChain 提供了使 LLM 应用程序开发变得实用、可扩展和生产就绪的架构模式和构建块。

LangChain 已成为最广泛采用的 LLM 应用程序开发框架,拥有数十万开发者和丰富的集成生态系统。它在碎片化的 LLM 领域上提供了统一的抽象层,使开发者能够构建可以切换模型、向量存储和工具的应用程序,而无需重写核心逻辑。

该框架围绕几个核心抽象构建——模型、提示、链、智能体、检索器和内存——这些抽象可以组合成越来越复杂的应用程序。无论是构建简单的问答机器人、多智能体研究系统,还是自主编码助手,LangChain 都提供了组装解决方案的原语和模式。


LangChain 的架构是如何工作的?

LangChain 围绕可组合的抽象构建,这些抽象可以以越来越复杂的方式组合。

graph LR
    A[LLM 模型\nOpenAI, Claude, Llama 等] --> B[提示模板\n动态 + 少样本]
    B --> C[链\n可组合管道]
    D[检索器\n向量数据库、网页搜索] --> E[RAG 链\n文档 + LLM]
    F[工具\nAPI、计算器、代码] --> G[智能体\nReAct、OpenAI 函数]
    G --> H[操作执行\n工具调用 + 观察]
    H --> G
    C --> I[输出解析器\n结构化数据提取]
    E --> I

LCEL(LangChain 表达式语言)提供了一种声明式的、基于管道的语法,用于将这些组件组合成执行图。


LangChain 中的关键抽象是什么?

LangChain 的强大之处在于其精心设计的一组核心抽象。

抽象目的示例
ChatModel模型调用ChatOpenAIChatAnthropicChatOllama
PromptTemplate动态提示构建ChatPromptTemplateFewShotPromptTemplate
Chain可组合执行LLMChainConversationChain、自定义 LCEL 链
Retriever文档检索VectorStoreRetrieverEnsembleRetrieverWebSearchRetriever
Tool外部能力TavilySearchCalculatorPythonREPL、自定义工具
Agent自主推理ReActAgentOpenAIFunctionsAgent、自定义智能体
Memory对话状态ConversationBufferMemoryConversationSummaryMemory
OutputParser结构化输出PydanticOutputParserStructuredOutputParser

每个抽象都独立有用,但设计上能自然地与其他抽象组合。


LangChain 如何支持 RAG 实现?

LangChain 的 RAG 支持覆盖从文档加载到生成答案的完整管道。

RAG 阶段LangChain 组件选项
加载文档加载器PDF、网页、S3、数据库、YouTube、Notion、Slack
分割文本分割器RecursiveCharacter、Semantic、Token、HTML
嵌入嵌入模型OpenAI、HuggingFace、Ollama、Cohere、Voyage
存储向量存储FAISS、Pinecone、Chroma、Weaviate、Qdrant、Milvus
检索检索器相似度、MMR、自查询、集成、上下文
生成文档链Stuff、Map-Reduce、Refine、Map-Rerank

模块化设计允许团队在不更改管道其余部分的情况下交换组件(例如,从 Pinecone 切换到 FAISS)。


LangChain 如何处理模型抽象?

LangChain 为数十个 LLM 提供商和模型类型提供了一致的接口。

提供商LangChain 集成关键模型
OpenAIChatOpenAIGPT-4、GPT-4o、o1、o3
AnthropicChatAnthropicClaude 3.5 Sonnet、Claude 3 Opus
GoogleChatGoogleGenerativeAIGemini 1.5 Pro、Gemini 2.0
MetaChatOllamaLlama 3、CodeLlama
MistralChatMistralAIMistral Large、Mixtral
本地ChatOllamaLlamaCpp任意 GGUF 模型

在提供商之间切换通常只需要更改一行导入和初始化代码。


常见问题

什么是 LangChain? LangChain 是领先的开源框架,用于构建由大语言模型驱动的应用程序。它提供模块化、可组合的架构,包含 LLM 调用(模型无关)、提示管理、链组合、RAG 管道、智能体系统、工具集成和内存管理等抽象。它支持 Python、JavaScript/TypeScript,并与数百个 LLM 提供商、向量存储和外部工具集成。

什么是 LangChain 链? LangChain 中的链是将 LLM 调用或其他操作组合成单个管道的序列。简单链可能涉及提示 LLM 并解析输出。复杂链可以包含多个 LLM 调用、数据转换步骤、条件分支以及外部 API 集成。LCEL(LangChain 表达式语言)提供了一种声明式的方式来组合链。

LangChain 如何实现 RAG? LangChain 提供完整的 RAG(检索增强生成)框架,包括文档加载器(PDF、网页、数据库)、文本分割器(递归、语义、令牌感知)、嵌入模型(OpenAI、Hugging Face、本地)、向量存储(FAISS、Pinecone、Chroma、Weaviate)、检索器(相似度、MMR、集成)以及用于将检索与 LLM 生成集成的文档链组合器。

什么是 LangChain 智能体? LangChain 中的智能体是使用 LLM 作为推理引擎来决定采取何种操作的自主系统。它们可以访问工具(搜索、计算器、API、数据库),并能将复杂问题分解为多步骤计划。LangChain 支持多种智能体类型,包括 ReAct、OpenAI 函数、结构化聊天、XML 和自定义智能体架构。

LangChain 是否支持监控和可观测性? 是的,LangChain 与 LangSmith 集成,后者是专为 LLM 应用程序设计的可观测性平台。LangSmith 提供追踪、评估、测试和监控功能。它跟踪链执行的每一步,测量延迟和令牌使用量,支持提示和模型的 A/B 测试,并能调试复杂的智能体交互。


延伸阅读

TAG
CATEGORIES