LangChain Python SDK 入门实战:从 0 到常见能力全覆盖
1. 先建立正确认知:LangChain 是什么
当你写下这行代码:
from langchain_openai import ChatOpenAI |
本质是在做三件事:
- 通过 LangChain 提供的统一接口调用底层 LLM 服务
- 利用 LangChain 的模块化组件构建复杂 AI 工作流
- 连接外部工具与数据源,让 LLM 真正“动起来”
也就是说,LangChain 是你与 LLM 之间的“智能编排层”,它让你不用手写底层流程细节,而是通过组合模块来构建强大的 AI 应用。
2. 环境准备(最小可用)
2.1 安装依赖
pip install langchain langchain-openai |
2.2 配置 API Key(推荐环境变量)
export OPENAI_API_KEY="sk-xxxx" |
可选:
export OPENAI_MODEL="gpt-4o-mini" |
OPENAI_BASE_URL只在代理或兼容端点场景下使用,标准接入可以不设置。
3. LangChain Python 库核心组件速查表
基于 langchain>=0.2 官方库整理:常用组件、作用与主要参数。
| 组件及作用 | 参数及参数含义 |
|---|---|
PromptTemplate提示模板:标准化、参数化指令 |
① template:必选,模板字符串 ② input_variables:可选,变量列表 ③ partial_variables:可选,部分变量预填充 |
ChatOpenAIOpenAI 聊天模型接口 |
① model:必选,模型名称(如 gpt-4o-mini)② temperature:可选,随机性(约 0~2;越低越稳,越高越发散) ③ max_tokens:可选,生成长度上限(token) ④ base_url:可选,兼容端点 / 代理根 URL |
ConversationBufferMemory对话记忆:缓存对话历史 |
① memory_key:可选,记忆在链中的键名 ② return_messages:可选,是否返回消息对象列表 |
LLMChain基础链式调用:连接 Prompt 与 LLM |
① llm:必选,语言模型实例 ② prompt:必选,提示模板 ③ memory:可选,记忆实例 ④ output_key:可选,输出键名 |
Tool工具定义:供 Agent 调用的外部能力 |
① name:必选,工具名称 ② func:必选,工具函数 ③ description:必选,工具描述(Agent 依赖此描述决定是否调用) |
initialize_agent初始化智能体:组合 LLM 与工具 |
① tools:必选,工具列表 ② llm:必选,语言模型实例 ③ agent_type:必选,智能体类型(如 zero-shot-react-description)④ verbose:可选,是否打印详细日志 |
4. LangChain Python SDK 方法知识字典(按组件分类)
4.1 PromptTemplate:提示模板
- 作用:标准化、参数化提示,避免硬编码
- 常用参数:
template、input_variables - 推荐:使用
from_template快速创建
from langchain import PromptTemplate |
4.2 ChatOpenAI:模型接口
- 作用:统一调用 OpenAI 模型
- 常用参数:
model、temperature、base_url - 推荐:优先用环境变量
OPENAI_API_KEY
import os |
4.3 LLMChain:基础链式调用
- 作用:连接 Prompt 与 LLM,执行基本推理
- 常用参数:
llm、prompt、memory - 常见读取:直接调用
run()或predict()
from langchain import LLMChain |
4.4 Memory:对话记忆
- 作用:维护对话状态,支持多轮交互
- 常用类型:
ConversationBufferMemory、ConversationSummaryMemory - 注意:需要在 Chain 中指定
memory_key
from langchain.memory import ConversationBufferMemory |
4.5 Tool + initialize_agent:智能体与工具
- 作用:让 LLM 调用外部工具,执行复杂任务
- 核心流程:定义工具 → 初始化 Agent → 执行任务
from langchain.agents import initialize_agent, Tool |
4.6 SequentialChain:顺序链式调用
- 作用:组合多个 Chain,按顺序执行
- 适用:复杂工作流,多步骤处理
from langchain.chains import SequentialChain |
4.7 常见参数速查
temperature:控制输出随机性/发散度(低=更稳定,高=更多样)memory_key:记忆在链中的键名,需与 Prompt 中的变量名对应agent_type:智能体类型,决定其推理和调用工具的方式verbose:是否打印详细执行日志,调试时建议开启
temperature 实战建议:
0~0.3:问答、抽取、格式化输出(优先稳定)0.4~0.7:通用助手、改写润色(平衡稳定和表达)0.8~1.0:创意写作、头脑风暴(更发散,需防跑偏)
5. 除了 LangChain ,还有哪些选择?
这篇主线仍是 langchain 库。为了避免“学了一个框架就被技术栈锁死”,你可以了解常见的替代框架与工具:
- LangChain:
langchain(Python 包) - LlamaIndex:
llama-index(专注于 RAG 场景) - Haystack:
farm-haystack(企业级 NLP 框架) - Transformers Agent:
transformers库内置的智能体功能 - 自定义实现:基于原生 SDK 自行封装工作流
各家都提供了官方文档,建议至少收藏这些入口:
- LangChain Docs: https://python.langchain.com/docs/introduction
- LlamaIndex Docs: https://docs.llamaindex.ai/en/stable/
- Haystack Docs: https://docs.haystack.deepset.ai/
- Transformers Docs: https://huggingface.co/docs/transformers/
它们的功能是不是差不多?大方向是相似的,细节并不完全一样。
共同能力(大多数框架都有):
- 提示模板管理
- 模型接口统一
- 记忆机制
- 工具调用
- 链式工作流
常见差异(建议单独关注):
- 生态集成:与外部工具、数据源的集成深度不同
- 性能优化:对大规模 RAG、长上下文的处理能力不同
- 企业特性:部署选项、安全控制、监控能力不同
- 学习曲线:API 设计复杂度和文档完善度不同
实践建议:主教程先用 langchain 跑通,再根据具体场景评估其他框架。
6. 相关阅读(建议收藏)
官方文档(首选)
进阶学习(与工程化更相关)
7. 小结
如果你是新手,建议按这个顺序练习:
PromptTemplate+ChatOpenAI(先把基本提示跑通)LLMChain(构建简单工作流)Memory(支持多轮对话)Tool+Agent(让模型调用外部能力)SequentialChain(构建复杂工作流)
当你把这 5 块串起来时,就已经具备了搭建一个可用 AI 应用的核心能力。LangChain 不只是一个框架,而是一种新的工程范式——让语言模型“理解、推理、行动、协作”。
评论












