跳到内容

应用结构

概述

一个 LangGraph 应用由一个或多个图、一个 LangGraph API 配置文件 (langgraph.json)、一个指定依赖项的文件以及一个可选的指定环境变量的 .env 文件组成。

本指南展示了 LangGraph 应用的典型结构,并说明了如何指定使用 LangGraph 平台部署 LangGraph 应用所需的信息。

关键概念

要使用 LangGraph 平台进行部署,应提供以下信息

  1. 一个 LangGraph API 配置文件 (langgraph.json),用于指定应用使用的依赖项、图和环境变量。
  2. 实现应用逻辑的
  3. 一个指定运行应用所需依赖项的文件。
  4. 运行应用所需的环境变量

文件结构

以下是 Python 和 JavaScript 应用的目录结构示例

my-app/
├── my_agent # all project code lies within here
│   ├── utils # utilities for your graph
│   │   ├── __init__.py
│   │   ├── tools.py # tools for your graph
│   │   ├── nodes.py # node functions for you graph
│   │   └── state.py # state definition of your graph
│   ├── __init__.py
│   └── agent.py # code for constructing your graph
├── .env # environment variables
├── requirements.txt # package dependencies
└── langgraph.json # configuration file for LangGraph
my-app/
├── my_agent # all project code lies within here
│   ├── utils # utilities for your graph
│   │   ├── __init__.py
│   │   ├── tools.py # tools for your graph
│   │   ├── nodes.py # node functions for you graph
│   │   └── state.py # state definition of your graph
│   ├── __init__.py
│   └── agent.py # code for constructing your graph
├── .env # environment variables
├── langgraph.json  # configuration file for LangGraph
└── pyproject.toml # dependencies for your project
my-app/
├── src # all project code lies within here
│   ├── utils # optional utilities for your graph
│   │   ├── tools.ts # tools for your graph
│   │   ├── nodes.ts # node functions for you graph
│   │   └── state.ts # state definition of your graph
│   └── agent.ts # code for constructing your graph
├── package.json # package dependencies
├── .env # environment variables
└── langgraph.json # configuration file for LangGraph

注意

LangGraph 应用的目录结构可能因编程语言和使用的包管理器而异。

配置文件

langgraph.json 文件是一个 JSON 文件,用于指定部署 LangGraph 应用所需的依赖项、图、环境变量和其他设置。

该文件支持指定以下信息

描述
dependencies 必需。LangGraph API 服务器的依赖项数组。依赖项可以是以下之一:(1) ".",它将查找本地 Python 包,(2) 应用目录 "./local_package" 中的 pyproject.tomlsetup.pyrequirements.txt,或 (3) 一个包名。
graphs 必需。从图 ID 到定义已编译图或创建图的函数的路径的映射。示例
  • ./your_package/your_file.py:variable,其中 variablelanggraph.graph.state.CompiledStateGraph 的一个实例
  • ./your_package/your_file.py:make_graph,其中 make_graph 是一个函数,它接受一个配置字典 (langchain_core.runnables.RunnableConfig) 并创建一个 langgraph.graph.state.StateGraph / langgraph.graph.state.CompiledStateGraph 的实例。
env .env 文件的路径或从环境变量到其值的映射。
python_version 3.113.12。默认为 3.11
pip_config_file pip 配置文件的路径。
dockerfile_lines 要添加到 Dockerfile 中(紧随父镜像导入之后)的额外行的数组。

提示

LangGraph CLI 默认使用当前目录中的配置文件 langgraph.json

示例

  • 依赖项包含一个自定义本地包和 langchain_openai 包。
  • 将从文件 ./your_package/your_file.py 中加载一个图,使用变量 variable
  • 环境变量从 .env 文件加载。
{
    "dependencies": [
        "langchain_openai",
        "./your_package"
    ],
    "graphs": {
        "my_agent": "./your_package/your_file.py:agent"
    },
    "env": "./.env"
}
  • 依赖项将从本地目录中的依赖文件加载(例如,package.json)。
  • 将从文件 ./your_package/your_file.js 中加载一个图,使用函数 agent
  • 环境变量 OPENAI_API_KEY 是内联设置的。
{
    "dependencies": [
        "."
    ],
    "graphs": {
        "my_agent": "./your_package/your_file.js:agent"
    },
    "env": {
        "OPENAI_API_KEY": "secret-key"
    }
}

依赖项

LangGraph 应用可能依赖于其他 Python 包或 JavaScript 库(取决于应用所使用的编程语言)。

通常需要指定以下信息才能正确设置依赖项

  1. 目录中指定依赖项的文件(例如,requirements.txtpyproject.tomlpackage.json)。
  2. LangGraph 配置文件中的 dependencies 键,用于指定运行 LangGraph 应用所需的依赖项。
  3. 任何额外的二进制文件或系统库都可以使用 LangGraph 配置文件中的 dockerfile_lines 键指定。

使用 LangGraph 配置文件中的 graphs 键来指定在已部署的 LangGraph 应用中哪些图将可用。

您可以在配置文件中指定一个或多个图。每个图都由一个名称(应该是唯一的)和一个路径标识,该路径指定:(1) 已编译的图或 (2) 定义了创建图的函数的位置。

环境变量

如果您在本地使用已部署的 LangGraph 应用,可以在 LangGraph 配置文件env 键中配置环境变量。

对于生产环境部署,通常会希望在部署环境中配置环境变量。

请参阅以下资源以获取更多信息

评论