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動態 + Few-shot]
    B --> C[鏈\n可組合流程]
    D[檢索器\n向量 DB, Web 搜尋] --> E[RAG 鏈\n文件 + LLM]
    F[工具\nAPI, 計算器, 程式碼] --> G[代理\nReAct, OpenAI Functions]
    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、Web、S3、資料庫、YouTube、Notion、Slack
分割文字分割器RecursiveCharacter、Semantic、Token、HTML
嵌入嵌入模型OpenAI、HuggingFace、Ollama、Cohere、Voyage
儲存向量儲存FAISS、Pinecone、Chroma、Weaviate、Qdrant、Milvus
檢索檢索器相似性、MMR、Self-Query、Ensemble、Contextual
生成文件鏈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? 領先的開源框架,用於構建 LLM 驅動的應用程式,具有模組化、可組合的架構。

什麼是鏈? LLM 調用或其他操作的序列,使用 LCEL 組合成流程。

如何實作 RAG? 提供從文件載入到生成答案的完整框架,包含載入器、分割器、嵌入、向量儲存和檢索器。

什麼是代理? 使用 LLM 作為推理引擎的自主系統,可存取工具並分解問題。

支援監控嗎? 是的,透過 LangSmith 平台進行追蹤、評估和測試。


延伸閱讀

TAG