LangChain实战:快速搭建Python开发环境全攻略
摘要
uv用Rust编写,比pip快10-80倍,整合pip、virtualenv等工具链。安装后运行uvinit初始化项目,通过
uv 工具链概览
Python 生态的包管理长期以来碎片化严重,直到 uv 改变了局面。这款基于 Rust 构建的工具,执行效率碾压 pip——实测提速 10 到 80 倍。更关键的是,它不再只解决单一痛点,而是像 Node.js 的 npm 或 pnpm 一样,把 Python 领域里散落的常用工具全部统一到了一套体系内。
核心优势一目了然:
- Rust 驱动下的极致性能,重新定义了 Python 包管理的速度标杆
- 一个命令搞定 pip、virtualenv、pip-tools、pyenv、poetry 等多条工具链的典型操作
- 与 Ruff 同团队出品,技术功底和长期维护都有保障
- 所有配置集中到
pyproject.toml,终结了零散的配置文件和混乱的脚本 - 完全兼容 pip 生态,迁移几乎零成本
日常高频操作浓缩成一张速查表:
| 操作事项 | 对应命令 |
|---|---|
| 创建虚拟环境 | uv venv |
| 在虚拟环境中运行脚本 | uv run main.py |
| 安装第三方包 | uv pip install fastapi |
| 安装并写入 pyproject 依赖 | uv add fastapi |
| 安装指定 Python 版本 | uv python install 3.12 |
| 执行已安装的工具 | uv run uvicorn app:app |
| 锁定依赖版本 | uv pip compile |
安装 uv
安装流程极其简洁,uv 官方提供了统一的脚本。以 Windows 为例,打开终端后直接粘贴下面一行命令,几秒即可完成:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
初始化项目环境
安装完毕后,我们创建一个项目目录来实践 LangChain。新建一个名为 learn-langchain 的文件夹,在终端中进入该目录,执行 uv init。
uv 会快速生成一套初始开发环境文件,其中最核心的是 pyproject.toml——它相当于 Python 项目的“总配置枢纽 + 依赖声明入口”。
[project]
name = "learn-langchain"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []
可以把这份文件类比为前端项目的 package.json。下面拆解每个字段的作用:
[project]:声明项目元数据,uv 据此读取项目信息name:项目的标识名称version:当前版本号description:项目的简要说明readme:指向项目说明文档requires-python:规定项目兼容的 Python 版本范围dependencies:项目运行时依赖清单,后续安装的所有包都会写入这里
安装项目依赖
接下来安装 LangChain 核心库。在项目根目录的终端中执行:
uv add langchain langchain-core langchain-classic langchain-community
安装完成后,项目目录下会多出两个关键产物:
uv.lock:由 uv 自动生成的依赖锁文件,将每个依赖的版本固定下来,确保跨环境一致性.venv:uv 为当前项目创建的虚拟环境目录,用于隔离依赖,避免污染全局 Python 环境
激活虚拟环境
Windows 与 macOS/Linux 的激活命令略有差异,请根据你的操作系统选择对应指令:
- Windows:
.venv\Scripts\activate - macOS / Linux:
source .venv/bin/activate
激活成功后,终端提示符前会出现 (learn-langchain) 字样,表明你已进入该虚拟环境。
创建项目示例
安装额外依赖
基础环境就绪后,我们来搭建第一个真实的 LangChain 项目。在项目根目录继续安装几个必要的扩展包:
uv add python-dotenv langchain-openai langchain-deepseek
python-dotenv:专用于读取.env文件,将敏感的环境变量自动注入运行时,杜绝密钥硬编码langchain-openai:提供与 OpenAI 官方模型交互的接口封装langchain-deepseek:提供与 DeepSeek 平台(兼容 OpenAI 协议)交互的接口封装
配置环境变量
在项目根目录创建 .env 文件,填入以下内容:
OPENAI_API_KEY=sk-c97afa925b1745f79225c904dff53cba
OPENAI_API_BASE=https://api.deepseek.com/v1
学习 LangChain 初期,推荐先用 DeepSeek 作为大语言模型——因为它完全兼容 OpenAI 的 API 协议。只需将你在 DeepSeek 开放平台申请的 API key 赋值给 OPENAI_API_KEY,并将官方提供的兼容 base_url 赋值给 OPENAI_API_BASE 即可。
创建示例脚本
在项目根目录下新建 01-hello-world 文件夹,在其中创建 01-chat.py 文件,编写如下代码:
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
# 初始化聊天模型
llm = ChatOpenAI(
model="deepseek-chat",
temperature=0,
)
# 调用模型
response = llm.invoke("你是谁")
print(response.content)
这段逻辑清晰,拆解为四个步骤:
导入依赖
from langchain_openai import ChatOpenAI—— 从 LangChain 的 OpenAI 适配器引入 ChatOpenAI 类,本质是一个 LLM 客户端,用于与模型对话。from dotenv import load_dotenv—— 从 python-dotenv 导入 load_dotenv,用于读取 .env 文件并注入环境变量。加载环境变量
load_dotenv()—— 读取项目根目录下的 .env 文件,将 OPENAI_API_KEY 和 OPENAI_API_BASE 注入系统环境变量,ChatOpenAI 会自动获取,无需手动传参。初始化 LLM
llm = ChatOpenAI(model="deepseek-chat", temperature=0)创建 ChatOpenAI 实例。model 参数指定所用模型(DeepSeek 兼容 OpenAI API,直接使用
deepseek-chat);temperature=0 保证输出确定性最高,数值越高输出越多样。调用 LLM
response = llm.invoke("你是谁")是核心调用。传入 prompt 后返回响应对象,response.content存储模型返回的文本内容。
结语
所有准备就绪后,在终端执行 python 01-hello-world/01-chat.py,等待几秒,控制台会打印出模型的问候语。这意味着第一个 LangChain 示例已经顺利跑通。接下来,我们将系统性地深入 LangChain 那些真正强大的能力——这仅仅是一个起点。
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。