外观
LangChain安装与入门
LangChain
LangChain介绍
LangChain 是一个用于构建基于大语言模型(LLM)的应用程序的开源框架,旨在简化将语言模型与外部数据、工具和其他系统集成的过程,帮助开发者更高效地构建复杂的 LLM 应用。
- 数据连接:支持与各种外部数据源(如文档、数据库、API 等)交互,让语言模型能够处理超出其训练数据范围的信息。
- 工具调用:允许语言模型调用外部工具(如搜索引擎、计算器、代码解释器等),扩展模型的能力,使其能完成更复杂的任务(如实时信息查询、数学计算等)。
- 链(Chains):将多个操作步骤(如数据加载、模型调用、工具使用等)组合成一个流程,实现更复杂的功能。例如,先从文档中提取信息,再让模型基于这些信息生成回答。
- 代理(Agents):让语言模型具备自主决策能力,能根据任务需求选择合适的工具或步骤,动态调整处理流程,更灵活地应对复杂任务。
- 记忆(Memory):支持在多轮交互中保留上下文信息,使模型能理解对话历史,提升交互的连贯性。
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.comLangChain入门
通过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)的应用以及自动化工作流等 。 | 120k | GitHub - langchain-ai/langchain |
| LangGraph | LangChain 官方出品,采用图结构管理有状态的、多步骤的智能体工作流,支持循环和条件分支。 | 复杂多轮对话、需动态规划的任务、多智能体系统。 | 21k | GitHub - langchain-ai/langgraph |
| Dify | 低代码/可视化的 LLM 应用开发平台,强调开箱即用和完整的 LLMOps 能力(如监控、评估)。 | 快速构建和部署生产级的 AI 应用(如聊天机器人、RAG 系统),适合追求应用交付效率的团队。 | 119k | GitHub - langgenius/dify |
| Coze(扣子) | 字节跳动推出的低代码平台,注重多模态交互(文本、语音、图像)和丰富的预制组件与插件。 | 开发具备多模态能力的智能体,并快速集成到如豆包等平台。 | GitHub - coze-dev | |
| LlamaIndex | 专精于数据索引和检索,为 RAG 应用提供高效的文档处理、分块和向量检索能力,常与 LangChain 搭配使用。 | 构建高性能的检索增强生成(RAG) 系统,专注于优化知识库的接入和查询。 | 46k | GitHub - jerryjliu/gpt_index |
| AutoGen | 微软推出,专注于多智能体协作,通过多个自主智能体之间的对话来共同解决复杂任务。 | 需要多个 AI 智能体分工协作的复杂场景,如自动化软件开发、复杂问题研究。 | 52k | GitHub - microsoft/autogen |
| Haystack | 一个功能全面的开源问答系统和搜索框架,支持端到端的文档处理、检索和阅读理解流程。 | 构建企业级的知识库问答、智能搜索和语义检索应用。 | 23k | GitHub - deepset-ai/haystack |
| n8n | 基于节点的工作流自动化工具,通过可视化界面连接各种应用和 API,并深度集成 AI 节点。 | 将 AI 能力嵌入到复杂的业务自动化流程中,实现跨系统的工作流。 | 156k | GitHub - n8n-io/n8n |
- 与 LangGraph 的关系:LangGraph 是 LangChain 生态内用于构建复杂、有状态工作流的高阶引擎,可以看作是 LangChain 能力的延伸和专业化 。
- 与专用工具(如 LlamaIndex)的关系:LlamaIndex 在数据索引和检索方面非常专精,常与 LangChain 配合使用,由 LlamaIndex 负责高效检索,LangChain 负责整体的流程编排、记忆管理和工具调用 。
- 如果你旨在将AI能力集成到现有的自动化流程中:n8n 这类工作流工具可能比纯AI框架更合适
- 与低代码平台(如 Dify, Coze)的区别:LangChain 主要面向开发者,通过代码提供高度的灵活性和定制能力;而 Dify 和 Coze 等低代码平台则通过可视化界面降低使用门槛,强调快速应用交付。
补充:
- GraphRAG:动态知识图谱增强,新一代RAG技术