在使用 LangGraph 构建复杂的智能体应用时,一个稳定且隔离的开发环境至关重要。本文将详细介绍如何使用 Conda 创建 Python 3.13 环境,并在该环境下运行 LangGraph 的 Dev 模式,助你快速上手并高效开发。由于 LangGraph 的依赖环境复杂,避免直接在全局 Python 环境中安装,Conda 创建隔离环境是最佳实践。
问题背景:LangGraph 开发的痛点
在实际开发中,我们经常会遇到以下问题:
- 依赖冲突: LangGraph 依赖于多个第三方库,这些库之间可能存在版本冲突,导致程序无法正常运行。
- 环境污染: 直接在全局 Python 环境中安装依赖库,可能会污染其他项目的环境,导致其他项目出现问题。
- 版本不一致: 团队成员使用的 Python 版本和依赖库版本不一致,导致代码无法在不同环境中运行。
为了解决这些问题,我们需要一个隔离的、可复现的开发环境。Conda 正是为此而生。
Conda 环境搭建:Python 3.13 版本
首先,确保你已经安装了 Conda。如果没有安装,请参考 Conda 官方文档进行安装。
创建 Conda 环境
使用以下命令创建一个名为 langgraph_dev 的 Conda 环境,并指定 Python 版本为 3.13:
conda create -n langgraph_dev python=3.13
激活 Conda 环境
创建完成后,激活该环境:
conda activate langgraph_dev
激活后,你的终端提示符应该会显示环境名称 (langgraph_dev),表示你已经成功进入该环境。
安装 LangGraph 及其依赖
接下来,我们需要安装 LangGraph 及其所需的依赖库。建议使用 pip 安装,并指定版本号,以避免版本冲突:
pip install langgraph==0.0.34 # 示例版本,请根据实际情况调整
pip install langchain==0.1.9
pip install langchain-core==0.1.26
pip install -U --pre langchain-community # 安装最新的 langchain-community
建议在安装过程中留意是否有报错信息,如有报错,根据错误提示解决依赖关系。
LangGraph Dev 模式运行
安装完成后,就可以开始运行 LangGraph 的 Dev 模式了。Dev 模式可以提供更友好的调试体验,例如自动重载代码、实时显示日志等。
编写 LangGraph 应用
首先,我们需要编写一个简单的 LangGraph 应用。例如:
# example.py
from langgraph.graph import StateGraph, MessageGraph
from langchain_core.messages import BaseMessage, HumanMessage
from typing import List, TypedDict, Dict, Any
class GraphState(TypedDict):
messages: List[BaseMessage]
def add_message(state: GraphState, message: BaseMessage) -> GraphState:
print('AddMessage')
print(f'{state=}')
return {"messages": state['messages'] + [message]}
def route(state: GraphState) -> str:
print('Route')
print(f'{state=}')
messages = state['messages']
if len(messages) > 3:
return 'exit'
return 'add_message'
graph_builder = StateGraph(GraphState)
graph_builder.add_node('add_message', lambda state, message: add_message(state, message.get('messages')[0]))
graph_builder.add_node('exit', lambda state: state)
graph_builder.add_edge('add_message', 'exit', condition=lambda state: len(state['messages']) > 3)
graph_builder.add_edge('add_message', 'add_message')
graph = graph_builder.compile()
for output in graph.stream({"messages": []}, {"messages": [HumanMessage(content='hello')] }):
print(output)
启动 Dev 模式
要启动 Dev 模式,可以使用以下命令:
python example.py
如果一切正常,你应该能看到 LangGraph 应用的输出结果。
实战避坑经验
- 版本锁定: 在
requirements.txt文件中锁定所有依赖库的版本,以确保环境的可复现性。 - 缓存清理: 如果遇到奇怪的问题,可以尝试清理 Conda 的缓存:
conda clean --all。 - 代理设置: 如果你位于国内网络环境,可能需要配置 Conda 的代理,才能正常下载依赖库。
- 环境导出: 可以使用
conda env export > environment.yml命令导出当前环境的配置,方便在其他机器上重建环境。 - GPU 支持: 如果需要使用 GPU 加速,请确保安装了 CUDA 和相应的驱动程序。
国内常用技术名词关联
在实际部署 LangGraph 应用时,通常需要使用服务器。如果使用 Linux 服务器(例如 CentOS 或 Ubuntu),可以考虑使用宝塔面板简化服务器管理。同时,可以使用 Nginx 作为反向代理服务器,实现负载均衡和高可用性。配置 Nginx 时,需要关注并发连接数和请求超时时间等参数,以确保服务器的性能和稳定性。
冠军资讯
代码一只喵