如果你已经会用某一家大模型的 API,却在换模型、做流式输出、批量跑任务时被各家 SDK 的差异折磨过,那么 LangChain 大概率就是你要找的东西。这是本系列的第一篇,从“为什么需要它”讲起,带你走完初始化模型、四种消息写法、同步/异步、流式输出、批量调用和提示词模板这条主线;第二篇会继续讲输出解析与链式编排。

一、为什么需要 LangChain#

直接用官方 SDK 调大模型当然可行,OpenAI、Anthropic、Google 都提供了自己的 Python 库。但只要项目稍微认真一点,你很快会撞上两类问题:

第一类:接口不统一。 每家厂商的 SDK 参数名、返回结构、流式协议都不一样。今天用 GPT,明天想切换到 DeepSeek 或 Gemini 对比效果,业务代码就得跟着改一遍。模型能力迭代很快,“随时可以换模型”应该是架构能力,而不是重构任务。

第二类:模型本身有短板。 裸模型不会联网搜索、不会调用外部工具、不会记住上一轮对话。这些能力都需要在模型之外用工程手段补齐——提示词拼装、工具调用循环、对话历史管理……每一件事都不难,但每一件事都要自己写,就很难了。

LangChain 解决的正是这两件事:

  1. 统一异构模型的 API——一套调用语法适配所有主流模型厂商,切换模型基本只改一个字符串;
  2. 提供任务编排能力——把提示词、模型、工具、记忆、知识库串成一条可维护的链路。

从学习路线的角度,LangChain 通常被拆成四大模块,也正好是循序渐进的四个阶段:

模块解决什么问题
Model I/O构建输入(提示词模板)、调用模型、解析输出
Chains把多个步骤编排成链,实现多步任务
RAG检索增强生成,让模型基于你的私有文档回答问题
Agents让模型自主决策调用哪些工具、如何完成任务

本文聚焦在 Model I/O——它是一切的地基,后面三个模块都建立在“会调模型”这件事之上。

二、准备工作:安装与密钥管理#

安装很简单,按你要用的厂商装对应的扩展即可:

Shell
pip install -U "langchain[openai]"    # OpenAI 及兼容 OpenAI 协议的模型
pip install -U "langchain[anthropic]" # Anthropic Claude
pip install -U "langchain[google-genai]" # Google Gemini

API Key 这类敏感信息不要写死在代码里。推荐的做法是放进环境变量,有两种常见方案:

  • 系统环境变量:适合生产环境,配置后记得重启 IDE 才能生效;
  • 项目内的 .env 文件:适合开发环境,配合 python-dotenv 读取。注意 .env 要加入 .gitignore,另外维护一份脱敏的 .env.example 提交到仓库,方便协作者知道需要配置哪些变量。
Python
from dotenv import load_dotenv

# 读取 .env 文件中的 OPENAI_API_KEY、OPENAI_BASE_URL 等配置
# 默认系统环境变量优先;override=True 则让 .env 文件优先
load_dotenv(override=True)