如何使用 requirements.txt 设置 LangGraph 应用程序¶
LangGraph 应用程序必须配置 LangGraph 配置文件才能部署到 LangGraph Platform(或自托管)。本操作指南讨论使用 requirements.txt 指定项目依赖项来设置 LangGraph 应用程序以进行部署的基本步骤。
本演练基于此存储库,你可以使用它来了解有关如何设置 LangGraph 应用程序以进行部署的更多信息。
使用 pyproject.toml 设置
如果你更喜欢使用 poetry 进行依赖管理,请查看本操作指南,了解如何使用 pyproject.toml 进行 LangGraph Platform 设置。
使用单体仓库设置
如果你有兴趣部署位于单体仓库内的图,请查看此存储库以获取如何执行此操作的示例。
最终的存储库结构将类似于以下内容:
my-app/
├── my_agent # 所有项目代码都在这里
│ ├── utils # 图的实用工具
│ │ ├── __init__.py
│ │ ├── tools.py # 图的工具
│ │ ├── nodes.py # 图的节点函数
│ │ └── state.py # 图的状态定义
│ ├── requirements.txt # 包依赖项
│ ├── __init__.py
│ └── agent.py # 构建图的代码
├── .env # 环境变量
└── langgraph.json # LangGraph 配置文件
每一步之后,都会提供一个示例文件目录来演示如何组织代码。
指定依赖项¶
可以在以下文件之一中可选地指定依赖项:pyproject.toml、setup.py 或 requirements.txt。如果没有创建这些文件,则可以稍后在 LangGraph 配置文件中指定依赖项。
以下依赖项将包含在镜像中,你也可以在代码中使用它们,只要使用兼容的版本范围:
langgraph>=0.3.27
langgraph-sdk>=0.1.66
langgraph-checkpoint>=2.0.23
langchain-core>=0.2.38
langsmith>=0.1.63
orjson>=3.9.7,<3.10.17
httpx>=0.25.0
tenacity>=8.0.0
uvicorn>=0.26.0
sse-starlette>=2.1.0,<2.2.0
uvloop>=0.18.0
httptools>=0.5.0
jsonschema-rs>=0.20.0
structlog>=24.1.0
cloudpickle>=3.0.0
示例 requirements.txt 文件:
示例文件目录:
指定环境变量¶
可以在文件(例如 .env)中可选地指定环境变量。请参阅环境变量参考以配置部署的其他变量。
示例 .env 文件:
示例文件目录:
定义图¶
实现你的图!图可以在单个文件或多个文件中定义。记下要包含在 LangGraph 应用程序中的每个 @[CompiledStateGraph][] 的变量名称。创建 LangGraph 配置文件时将使用变量名称。
示例 agent.py 文件,展示如何从你定义的其他模块导入(此处未显示模块的代码,请参阅此存储库以查看其实现):
# my_agent/agent.py
from typing import Literal
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, END, START
from my_agent.utils.nodes import call_model, should_continue, tool_node # import nodes
from my_agent.utils.state import AgentState # import state
# Define the runtime context
class GraphContext(TypedDict):
model_name: Literal["anthropic", "openai"]
workflow = StateGraph(AgentState, context_schema=GraphContext)
workflow.add_node("agent", call_model)
workflow.add_node("action", tool_node)
workflow.add_edge(START, "agent")
workflow.add_conditional_edges(
"agent",
should_continue,
{
"continue": "action",
"end": END,
},
)
workflow.add_edge("action", "agent")
graph = workflow.compile()
示例文件目录:
my-app/
├── my_agent # 所有项目代码都在这里
│ ├── utils # 图的实用工具
│ │ ├── __init__.py
│ │ ├── tools.py # 图的工具
│ │ ├── nodes.py # 图的节点函数
│ │ └── state.py # 图的状态定义
│ ├── requirements.txt # 包依赖项
│ ├── __init__.py
│ └── agent.py # 构建图的代码
└── .env # 环境变量
创建 LangGraph 配置文件¶
创建名为 langgraph.json 的 LangGraph 配置文件。有关配置文件 JSON 对象中每个键的详细说明,请参阅 LangGraph 配置文件参考。
示例 langgraph.json 文件:
{
"dependencies": ["./my_agent"],
"graphs": {
"agent": "./my_agent/agent.py:graph"
},
"env": ".env"
}
请注意,CompiledGraph 的变量名称出现在顶级 graphs 键中每个子键的值的末尾(即 :<variable_name>)。
配置文件位置
LangGraph 配置文件必须放置在与包含已编译图和相关依赖项的 Python 文件处于同一级别或更高级别的目录中。
示例文件目录:
my-app/
├── my_agent # 所有项目代码都在这里
│ ├── utils # 图的实用工具
│ │ ├── __init__.py
│ │ ├── tools.py # 图的工具
│ │ ├── nodes.py # 图的节点函数
│ │ └── state.py # 图的状态定义
│ ├── requirements.txt # 包依赖项
│ ├── __init__.py
│ └── agent.py # 构建图的代码
├── .env # 环境变量
└── langgraph.json # LangGraph 配置文件
下一步¶
设置项目并将其放置在 GitHub 存储库中后,就该部署应用程序了。