跳到内容

应用结构

概述

一个 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 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
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
│   ├── 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 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

注意

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 文件的路径或从环境变量到其值的映射。
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 键中配置环境变量。

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

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