跳到内容

应用程序结构

概述

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

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

关键概念

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

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

文件结构

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

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 your 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
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 your graph
│   │   └── state.py # state definition of your graph
│   ├── requirements.txt # package dependencies
│   ├── __init__.py
│   └── agent.py # code for constructing your graph
├── .env # environment variables
└── 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 your 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

注意

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

配置文件

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

该文件支持指定以下信息

描述
依赖项 必填。LangGraph API 服务器的依赖项数组。依赖项可以是以下之一:(1) ".",将查找本地 Python 包;(2) 应用程序目录 "./local_package" 中的 pyproject.tomlsetup.pyrequirements.txt;或 (3) 包名称。
必填。从图 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 文件的路径或从环境变量到其值的映射。
node_version 默认为 20
dockerfile_lines 在从父镜像导入后,要添加到 Dockerfile 的额外行数组。

提示

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

示例

  • 依赖项将从本地目录中的依赖文件(例如 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"
    }
}
  • 依赖项包括一个自定义本地包和 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"
}

依赖项

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

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

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

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

您可以在配置文件中指定一个或多个图。每个图通过一个名称(必须是唯一的)和一个路径来标识,路径可以是:(1) 已编译的图,或 (2) 定义创建图的函数的路径。

环境变量

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

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

欲了解更多信息,请参阅以下资源