1. LangChain入门:为什么从模型调用开始?
第一次接触LangChain时,我被它繁杂的组件搞得晕头转向——记忆(Memory)、链(Chains)、代理(Agents)这些概念一股脑涌来。直到我意识到:所有高级功能都建立在稳定的模型调用基础上。就像盖房子要先打地基,模型调用就是LangChain的地基。
在实际项目中,我见过太多因为基础不牢导致的问题:API超时没有重试机制、token计算错误引发账单爆炸、流式输出处理不当让用户体验卡顿...这些坑我都踩过。所以这个系列教程,我决定从最基础也最重要的模型调用讲起。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备:Python工具链的选择
2.1 Python环境管理
新手常犯的第一个错误是直接使用系统Python。我强烈推荐使用专门的Python环境管理工具。目前主流选择有:
| 工具 | 特点 | 适用场景 |
|---|---|---|
| virtualenv | 传统方案,兼容性好 | 老项目维护 |
| pipenv | 整合了依赖管理 | 小型项目 |
| poetry | 强大的依赖解析和发布功能 | 开源库开发 |
| uv | 极速安装,Rust编写 | 新项目/追求效率的场景 |
我选择uv作为演示环境,因为它安装依赖的速度比传统pip快10倍以上。安装命令:
bash复制curl -LsSf https://astral.sh/uv/install.sh | sh
注意:如果系统提示权限问题,可以在命令前加上
sudo,或者使用--user参数进行用户级安装
2.2 依赖安装
创建项目目录后,初始化虚拟环境:
bash复制mkdir langchain-demo && cd langchain-demo
uv venv # 创建虚拟环境
source .venv/bin/activate # 激活环境
接着安装核心依赖:
bash复制uv pip install langchain-core langchain-community
我特意拆分了langchain-core和langchain-community的安装,因为完整包langchain会包含大量你可能暂时用不到的组件。这种按需安装的方式能保持环境干净。
3. 模型调用的四种基础模式
3.1 直接调用API
最简单的调用方式是使用LangChain提供的ChatModel类。以OpenAI为例:
python复制from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-3.5-turbo",
temperature=0.7,
max_tokens=500,
api_key="your_key_here" # 实际项目应该用环境变量
)
response = llm.invoke("请用中文解释量子计算")
print(response.content)
这里有几个关键参数需要理解:
temperature:控制输出的随机性(0-2之间)max_tokens:限制响应长度(注意:输入+输出不能超过模型上下文窗口)streaming:是否启用流式输出(后面会详细讲)
3.2 异步调用
当需要并发处理多个请求时,同步调用会成为性能瓶颈。LangChain原生支持异步:
python复制import asyncio
from langchain_openai import Ch
