Skip to content

LangChain安装与入门

LangChain

LangChain介绍

LangChain 是一个用于构建基于大语言模型(LLM)的应用程序的开源框架,旨在简化将语言模型与外部数据、工具和其他系统集成的过程,帮助开发者更高效地构建复杂的 LLM 应用。

  • 数据连接:支持与各种外部数据源(如文档、数据库、API 等)交互,让语言模型能够处理超出其训练数据范围的信息。
  • 工具调用:允许语言模型调用外部工具(如搜索引擎、计算器、代码解释器等),扩展模型的能力,使其能完成更复杂的任务(如实时信息查询、数学计算等)。
  • 链(Chains):将多个操作步骤(如数据加载、模型调用、工具使用等)组合成一个流程,实现更复杂的功能。例如,先从文档中提取信息,再让模型基于这些信息生成回答。
  • 代理(Agents):让语言模型具备自主决策能力,能根据任务需求选择合适的工具或步骤,动态调整处理流程,更灵活地应对复杂任务。
  • 记忆(Memory):支持在多轮交互中保留上下文信息,使模型能理解对话历史,提升交互的连贯性。

LangChain官方文档

LangChain主要组件

组件类别核心功能关键子组件/示例
模型(Models)提供基础的文本生成、理解和向量转换能力- 语言模型(LLMs):GPT-4、Claude、Llama 等
- 聊天模型(Chat Models):基于消息格式的对话模型
- 嵌入模型(Embedding Models):OpenAI Embeddings、Sentence-BERT 等
提示(Prompts)优化输入到模型的提示词,实现动态生成和结构化输出- 提示模板(Prompt Templates):动态插入变量的文本模板
- 示例选择器(Example Selectors):动态选择少样本示例
- 输出解析器(Output Parsers):将模型输出转为 JSON/列表等结构化格式
链(Chains)将多个步骤组合成流程,实现复杂功能- LLMChain:提示模板 + 模型的基础组合
- SequentialChain:多链按顺序执行(前序输出作为后序输入)
- RouterChain:根据输入动态选择子链
- RetrievalQA:结合检索与模型生成回答
智能体(Agents)赋予模型自主决策能力,动态选择工具和步骤处理任务- 智能体类型(Agent Type):如 zero-shot-react-description(基于工具描述决策)
- 工具(Tools):搜索引擎、代码解释器、API 等
- 执行器(Agent Executor):运行决策循环(思考→调用工具→处理结果)
记忆(Memory)保留多轮交互的上下文信息,提升对话连贯性- 短期记忆:ConversationBufferMemory(存储完整历史)
- 摘要记忆:ConversationSummaryMemory(压缩历史)
- 实体记忆:EntityMemory(跟踪实体属性)
- 向量存储记忆:基于向量检索相关历史
检索(Retrieval)连接外部数据,让模型基于私有/最新数据生成回答(支持 RAG 场景)- 文档加载器:加载 PDF、数据库、网页等来源的数据
- 文档分割器:将长文档拆分为适配模型窗口的片段
- 向量存储:Chroma、Pinecone、FAISS 等(存储文本向量)
- 检索器:根据查询返回最相关的文档片段

LangChain安装

shell
pip install -U langchain langchain-openai langchain-community -i https://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com

LangChain入门

通过LangChain调用百炼模型API

python
from langchain.chat_models import init_chat_model
from langchain.messages import HumanMessage, AIMessage, SystemMessage

# 配置阿里云百炼参数
API_KEY = "sk-"
BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"

# 初始化模型
model = init_chat_model(
    model="qwen3-max",
    model_provider="openai",
    api_key=API_KEY,
    base_url=BASE_URL
)

# 创建消息
system_msg = SystemMessage("You are a helpful assistant.")
human_msg = HumanMessage("你是谁?")
messages = [system_msg, human_msg]

# 调用并输出结果
response = model.invoke(messages)
print("模型回复:", response.content)

热门开源项目

框架名称核心特点 / 定位主要适用场景GitHub Star 数量 (约)项目地址
LangChain基于 Python/JavaScript 的开源编排框架,采用模块化设计,提供统一的LLM接口、提示模板、链(Chains)、代理(Agents)、记忆(Memory)和检索(RAG)等组件,简化大模型应用开发 。构建聊天机器人、智能问答系统、文档分析与总结、基于检索增强生成(RAG)的应用以及自动化工作流等 。120kGitHub - langchain-ai/langchain
LangGraphLangChain 官方出品,采用图结构管理有状态的、多步骤的智能体工作流,支持循环和条件分支。复杂多轮对话、需动态规划的任务、多智能体系统。21kGitHub - langchain-ai/langgraph
Dify低代码/可视化的 LLM 应用开发平台,强调开箱即用和完整的 LLMOps 能力(如监控、评估)。快速构建和部署生产级的 AI 应用(如聊天机器人、RAG 系统),适合追求应用交付效率的团队。119kGitHub - langgenius/dify
Coze(扣子)字节跳动推出的低代码平台,注重多模态交互(文本、语音、图像)和丰富的预制组件与插件。开发具备多模态能力的智能体,并快速集成到如豆包等平台。GitHub - coze-dev
LlamaIndex专精于数据索引和检索,为 RAG 应用提供高效的文档处理、分块和向量检索能力,常与 LangChain 搭配使用。构建高性能的检索增强生成(RAG) 系统,专注于优化知识库的接入和查询。46kGitHub - jerryjliu/gpt_index
AutoGen微软推出,专注于多智能体协作,通过多个自主智能体之间的对话来共同解决复杂任务。需要多个 AI 智能体分工协作的复杂场景,如自动化软件开发、复杂问题研究。52kGitHub - microsoft/autogen
Haystack一个功能全面的开源问答系统和搜索框架,支持端到端的文档处理、检索和阅读理解流程。构建企业级的知识库问答、智能搜索和语义检索应用。23kGitHub - deepset-ai/haystack
n8n基于节点的工作流自动化工具,通过可视化界面连接各种应用和 API,并深度集成 AI 节点。将 AI 能力嵌入到复杂的业务自动化流程中,实现跨系统的工作流。156kGitHub - n8n-io/n8n
  • 与 LangGraph 的关系:LangGraph 是 LangChain 生态内用于构建复杂、有状态工作流的高阶引擎,可以看作是 LangChain 能力的延伸和专业化 。
  • 与专用工具(如 LlamaIndex)的关系:LlamaIndex 在数据索引和检索方面非常专精,常与 LangChain 配合使用,由 LlamaIndex 负责高效检索,LangChain 负责整体的流程编排、记忆管理和工具调用 。
  • 如果你旨在将AI能力集成到现有的自动化流程中:n8n 这类工作流工具可能比纯AI框架更合适
  • 与低代码平台(如 Dify, Coze)的区别:LangChain 主要面向开发者,通过代码提供高度的灵活性和定制能力;而 Dify 和 Coze 等低代码平台则通过可视化界面降低使用门槛,强调快速应用交付。

补充:

  • GraphRAG:动态知识图谱增强,新一代RAG技术