第一章、LangChain概述与环境准备上4、环境准备4.1 基本要求4.4.1 系统与软件版本1Windows 系统Win10 20H2 及以上 / Win11内置 PowerShell 5.12Python固定使用 3.10、3.11、3.12 版本不支持 3.10 以下、3.13 及以上版本3编辑器推荐 VS Code安装 Python 官方插件提升开发体验。4.1.2 硬件配置最低学习配置双核 CPU、4GB 内存、10GB 以上空闲磁盘推荐配置8GB 及以上内存、SSD 固态硬盘运行本地大模型建议 16GB 内存。4.1.3 路径与权限规范1项目存放路径禁止中文、空格、特殊符号防止 uv、Python 解析路径异常2安装 uv、切换 winget 镜像时需要管理员 PowerShell日常开发普通用户权限即可3不建议将项目放在 C 盘系统目录缓存依赖会占用大量存储空间。4.1.4 网络与平台前置1网络二选一合规海外网络可直连 Github、OpenAI 官方国内普通网络使用 CloseAI、DeepSeek 国内中转平台无需梯子2提前注册大模型平台准备 API Key后续代码需要读取密钥调用模型3Github 资源下载缓慢时可使用中科大 winget 镜像、ghproxy 加速。4.1.5 前置认知所有项目均使用独立虚拟环境隔离依赖不污染系统全局 Python全程使用 uv 统一管理环境与包无需手动使用 pip、conda、venv。4.2 conda、uv、pip、venv 到底是什么关系在正式搭建环境之前先花一分钟理清这几个工具的关系——很多同学在这里被绕晕。1、 内建的模块 不需要你手动的安装只要你有python 的sdk 可以。 time /os…2、第三方的模块需要手动的安装用什么 安装什么…可控 lanchain/langchain-deepseek/langchain-openai/langchain-an…3、自己的模块不需要手动安装只需要引入就可以。开发 Python 项目你需要解决两个问题① 环境隔离不同项目用不同的 Python 版本和依赖互不干扰和 ② 包安装把 numpy、langchain 这些库装进来。市面上的工具就是围绕这两件事做的只不过各自覆盖的范围不同4.2.1 Python工具对比环境隔离与包安装环境隔离(Python版本虚拟环境)包安装(安装第三方库)venv√能建虚拟环境✗不能管Python版本✗不能装包(需搭配pip)Python自带,最基础pip✗不管环境√从PyPI装包Python自带,最传统conda√管Python版本√能建虚拟环境√从conda仓库装包√也能装pip的包全能瑞士军刀还能装C库(CUDA等)uv√管Python版本√能建虚拟环境√从PyPI装包(比pip快10-100倍)新一代,Rust编写专注Python生态简单说venv pip 是 Python 自带的原始组合能用但体验一般conda 是什么都管的瑞士军刀功能全但体积大、速度慢uv 是新一代替代品速度极快、功能覆盖 venv pip 的全部能力还能管理 Python 版本。4.2.2 本课程为什么选 uv 而不是 conda对比维度condauv安装包速度较慢(依赖解析复杂)极快(Rust 编写,快 10-100 倍)管理 Python 版本(uv python install 3.12)虚拟环境(uv init 自动创建)依赖锁定environment.yml (不精确)uv.lock(精确锁定,可复现)包来源conda 仓库 PyPIPyPI(LangChain 全生态都在这里)安装非 Python 库(CUDA等)√ 这是 conda 的独特优势✗ 只管 Python 包体积较大(Anaconda ~3GB)极小(单个二进制文件)结论LangChain 的所有包都在 PyPI 上不需要 conda 仓库。uv 在速度、依赖管理、环境复现上全面优于 conda。本课程统一使用 uv不再需要 conda/pip/venv。什么时候还需要 conda 如果你做深度学习项目需要安装 CUDA、cuDNN 等非 Python 的C/C 库conda 仍然有价值。但这不在本课程范围内遇到时再单独处理即可。4.3 LangChain 包结构在安装之前先了解一下 LangChain 的包是怎么组织的——它不是一个大而全的单一包而是按职责拆分成多个小包按需安装分类包名说明核心包langchain核心包(必须安装)langchain-core核心抽象和基础类(随 langchain 自动安装)langchain-cli命令行工具(可选)模型集成langchain-openaiOpenAI 集成(GPT-4 等)langchain-anthropicAnthropic 集成(Claude 系列)langchain-google-genaiGoogle Gemini 集成langchain-ollamaOllama 本地模型集成langchain-deepseekDeepSeek 集成langchain-community社区维护的集成包功能扩展langchainhub提示词和链的共享仓库langchain-chromaChroma 向量数据库集成langchain-elasticsearchElasticsearch 集成langchain-redisRedis 缓存集成原则只安装你用到的包。uv 的依赖解析很快随时 uv add 新包即可不用一次装全。4.4 安装 uv# Windows (PowerShell)powershell-ExecutionPolicyByPass-cirm https://astral.sh/uv/install.ps1 | iex# macOS / Linuxcurl-LsSfhttps://astral.sh/uv/install.sh|sh如果觉得安装慢可以用这招#不用梯子的最优提速方案推荐不用开代理步骤 1 管理员 PowerShell 执行替换国内源 #这个是Windows版本的 winget source remove winget winget source add winget https://mirrors.ustc.edu.cn/winget-source #步骤 2 直接执行安装命令 winget install --id astral-sh.uv -e安装完成后验证uv--version也可以用 pip install uv 快速安装但推荐上面的官方方式更快、不依赖已有 Python。4.5 创建项目环境并安装 LangChain4.5.1 命令行# 1. 创建项目目录mkdirlangchain-coursecdlangchain-course# 2. 用 uv 初始化项目自动创建虚拟环境 pyproject.tomluv init# 3. 指定 Python 版本推荐 3.12uv python pin3.12# 4. 安装 LangChain 核心包uvaddlangchain# 5. 按需安装模型提供商集成选你要用的uvaddlangchain-openai# OpenAIGPT-4 等uvaddlangchain-anthropic# AnthropicClaude 系列uvaddlangchain-google-genai# Google Geminiuvaddlangchain-deepseek# DeepSeekuvaddlangchain-ollama# Ollama 本地模型# 6. 按需安装功能扩展包uvaddlangchain-chroma# Chroma 向量数据库uvaddpython-dotenv# .env 环境变量加载为什么用 uv add 而不是 uv pip install uv add 会自动将依赖写入 pyproject.toml 并生成 uv.lock 锁文件方便团队协作和环境复现。uv pip install 也能用但不会记录依赖关系。项目创建图示如下1.创建项目2.选择uv后创建项目然后按照需要在终端输入上面的命令即可4.6 理解项目文件pyproject.toml 和 uv.lock执行完上面的命令后你会发现项目目录里多出了几个文件langchain-course/ ├─ .venv/ # 虚拟环境uv 自动创建 ├─ pyproject.toml # 项目配置 依赖清单你手动管理 ├─ uv.lock # 依赖锁文件uv 自动生成 └─ main.py # 入口文件4.6.1 这三个东西各自的角色用一个比喻来理解pyproject.toml uv.lock .venv/ 购物清单 收银小票 冰箱 你写的我要牛奶≥3瓶 uv算的牛奶3.2瓶 实际安装的包 酸奶1.1瓶牛奶的依赖 糖0.5袋酸奶的依赖 你手动管理 uv 自动生成 uv 自动安装 ✓ 提交到 git ✓ 提交到 git ✗ 不提交加进 .gitignore4.6.2 pyproject.toml — “我需要什么”这是项目的配置文件记录了项目名称、Python 版本要求、以及你手动安装的依赖列表。每次执行 uvadd langchain 时uv 就往这个文件的 dependencies 里加一条记录[project] name langchain-demo version 0.1.0 requires-python 3.10 dependencies [ langchain1.2.15, langchain-openai1.1.15, langchain-anthropic1.4.1, langchain-ollama1.1.0, openai2.32.0, python-dotenv1.1.0, notebook7.5.5 ]版本号后面的 1.2.15 表示至少要这个版本是一个宽松的约束。你不需要手动编辑这个文件 uvadd / uv remove 会自动维护它。4.6.3 uv.lock — “我实际装了什么”这是 uv 自动生成的锁文件记录了每个包及其所有间接依赖的精确版本号。你永远不需要手动编辑它。它解决的核心问题是可复现性——把 pyproject.toml 和 uv.lock 发给同事同事执行一条命令就能得到和你完全一致的环境# 同事拿到你的项目后一条命令还原环境uvsync不会再出现在我电脑上能跑、在你电脑上报错的问题。常见小坑 python-dotenv 和 dotenv 是两个不同的包。代码里 from dotenv importload_dotenv 实际依赖的是 python-dotenv。如果你不小心装成了 dotenv 用以下命令修正uv remove dotenv uvaddpython-dotenv4.7 验证安装# 在项目目录下运行uv run python-cimport langchain;print(langchain.__version__)或进入 Python 交互环境importlangchainprint(langchain.__version__)# 应显示版本号4.8 常用大模型服务平台LangChain 的核心优势之一是模型无关性——切换模型只需改一行配置。但前提是你得有一个能用的API。下面按使用场景整理了主流平台帮你快速找到适合自己的方案。海外模型官方平台需科学上网 海外支付平台地址代表模型说明OpenAIhttps://platform.openai.com/GPT-4o、GPT-4.1、o3最主流的闭源模型,需Visa/Master 信用卡Anthropichttps://console.anthropic.com/Claude Sonnet 4、Claude Opus 4长上下文、代码能力强,需海外信用卡Google AI Studiohttps://aistudio.google.com/Gemini 2.5 Pro/Flash免费额度较多,注册门槛低4.8.1 国内代理/中转平台国内直连、支付宝付费如果你没有海外支付手段或者网络环境不方便直连可以使用以下代理平台。它们提供与官方完全兼容的 API 接口只需替换 base_url 即可代码无需任何修改平台地址可用模型特点CloseAIhttps://platform.closeai-asia.com/OpenAI、Claude、Gemini 全系列亚洲最大的 API 中转平台,企业级稳定性,支持支付宝,100% 官方转发OpenRouterhttps://openrouter.ai/350 模型(闭源开源)统一接口切换任意模型,美元计费,部分免费模型可用4.8.2 国产模型平台国内直连、部分有免费额度平台地址代表模型特点DeepSeekhttps://platform.deepseek.com/DeepSeek-V3、DeepSeek-R1性价比极高,推理能力强,兼容OpenAI接口格式阿里云百炼https://bailian.console.aliyun.com/通义千问 Qwen 系列一站式大模型开发平台,企业级服务硅基流动https://www.silonflow.cn/DeepSeek、Qwen、GLM等50开源模型开源模型推理加速平台,新用户送2000万Token,兼容OpenAI接口格式智谱 AIhttps://open.bigmodel.cn/GLM-4、GLM-5系列GLM-4-Flash永久免费,中文能力强4.8.3 如何选择你的情况是 有科学上网 海外信用卡 直连 OpenAI / Anthropic 官方延迟最低、最稳定 国内网络 只有支付宝 CloseAI 代理本课程推荐方案改一行 base_url 搞定 想省钱 / 学习用途 DeepSeek超便宜或 硅基流动有免费额度 想用国产模型 阿里云百炼Qwen或 智谱AIGLM4.9 配置环境变量使用时只需要注册、充值并创建API-Key之后即可使用API-Key与BASE_URL来调用平台提供的相应的模型的服务。4.9.1 通过.env文件配置适用于实际项目当中在项目根目录中创建.env文件添加环境变量以OPENAI_BASE_URL和OPENAI_API_KEY为例# OpenAI配置使用CloseAI代理 OPENAI_API_KEYsk-your-api-key OPENAI_BASE_URLhttps://api.closeai-asia.com/v1 # Anthropic配置可选 ANTHROPIC_API_KEYsk-ant-your-api-key # DeepSeek配置可选 DEEPSEEK_API_KEYsk-your-deepseek-key在代码中读取环境变量# pip install python-dotenvfromdotenvimportload_dotenvimportos# 加载.env文件load_dotenv()# 读取环境变量api_keyos.getenv(OPENAI_API_KEY)base_urlos.getenv(OPENAI_BASE_URL)print(api_key)注意不要将.env放在git管理目录当中避免数据泄露。建议将.env添加到.gitignore文件中。4.9.2 通过Windows全局环境变量配置适用于学习环境下经常需要使用到的某些环境变量。1.设置步骤右键此电脑 → “属性” → “高级系统设置”点击环境变量在用户变量中新建○ 变量名OPENAI_API_KEY变量值你的API密钥2.在代码中使用环境变量importosfromlangchain_openaiimportChatOpenAI# 从环境变量读取配置llmChatOpenAI(modelgpt-4,api_keyos.getenv(OPENAI_API_KEY),base_urlos.getenv(OPENAI_BASE_URL))5、快速上手第一个LangChain程序5.1 简单的模型调用# pip install langchain-openaiimportosfromlangchain_openaiimportChatOpenAI# 创建模型实例确保已设置环境变量llmChatOpenAI(modelgpt-4,api_keyos.getenv(OPENAI_API_KEY),base_urlos.getenv(OPENAI_BASE_URL,https://api.openai.com/v1))# 调用模型responsellm.invoke(你好请用一句话介绍Python)print(response.content)6、课程预览接下来我们将深入学习以下内容6.1 第一部分基础篇章节内容核心概念Model I/O如何调用各种大模型Models, Messages, PromptsOutput Parsers解析和验证模型输出StrOutputParser, JsonOutputParserPrompts提示词工程PromptTemplate, ChatPromptTemplate6.2 第二部分进阶篇章节内容核心概念Chains组合多个组件形成完整流程LCEL (LangChain Expression Language)Memory为对话添加记忆ConversationBufferMemory, SummaryMemoryTools扩展模型能力自定义工具、内置工具6.3 第三部分高级篇章节内容核心概念RAG检索增强生成VectorStore, Retriever, DocumentLoaderAgents构建智能代理ReAct, Tool Calling, AgentExecutorLangGraph复杂工作流编排StateGraph, 条件边6.4 学习路径建议入门 → Model I/O → Prompts → Chains \text { 入门 } \rightarrow \text { Model I/O } \rightarrow \text { Prompts } \rightarrow \text { Chains }入门→Model I/O→Prompts→Chains进阶 → M e m o r y → T o o l s → R A G \mathrm{进阶} \rightarrow \mathrm{Memory} \rightarrow \mathrm{Tools} \rightarrow \mathrm{RAG}进阶→Memory→Tools→RAG高级 → Agents → LangGraph → 部署7、推荐学习资源官方文档https://docs.langchain.com/LangSmithhttps://www.langchain.com/langsmith调试追踪GitHub仓库https://github.com/langchain-ai/langchain示例库https://github.com/langchain-ai/langgraph/tree/main/examplesLangChain Academy官方教程和课程