애플리케이션 구조
애플리케이션 구조 (Application structure)
LangGraph 애플리케이션은 하나 또는 여러 개의 그래프(graph), 설정 파일(langgraph.json), 의존성을 지정하는 파일, 그리고 환경 변수를 담는 선택적인 .env 파일로 구성돼요. 이 가이드에서는 애플리케이션의 전형적인 구조를 살펴보고, LangSmith Deployment로 배포할 때 필요한 설정을 어떻게 제공하는지 보여드릴게요.
출처: 문서
본문
주요 개념 (Key concepts)
LangSmith를 사용해 배포하려면 다음 정보를 제공해야 해요:
- 애플리케이션에 사용할 의존성, 그래프, 환경 변수를 지정하는 LangGraph 설정 파일 (
langgraph.json). - 애플리케이션의 로직을 구현하는 그래프.
- 애플리케이션 실행에 필요한 의존성을 지정하는 파일.
- 애플리케이션 실행에 필요한 환경 변수.
파일 구조 (File structure)
다음은 애플리케이션 디렉터리 구조의 예시예요.
requirements.txt를 쓰는 Python 구조:
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
├── requirements.txt # package dependencies
└── langgraph.json # configuration file for LangGraph
pyproject.toml을 쓰는 Python 구조:
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
설정 파일 (Configuration file)
langgraph.json 파일은 LangGraph 애플리케이션 배포에 필요한 의존성, 그래프, 환경 변수, 그 밖의 설정을 지정하는 JSON 파일이에요. JSON 파일에서 지원하는 모든 키에 대한 자세한 내용은 LangGraph 설정 파일 레퍼런스를 참고하세요.
예시 (Examples)
다음은 설정 파일의 예시예요:
- 의존성에는 커스텀 로컬 패키지와
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"
}
의존성 (Dependencies)
LangGraph 애플리케이션은 다른 Python 패키지에 의존할 수 있어요. 의존성을 올바르게 설정하려면 보통 다음 정보를 지정해야 합니다:
- 디렉터리에 의존성을 지정하는 파일 (예:
requirements.txt,pyproject.toml,package.json). - LangGraph 애플리케이션 실행에 필요한 의존성을 지정하는 LangGraph 설정 파일의
dependencies키. - 추가 바이너리나 시스템 라이브러리는 LangGraph 설정 파일의
dockerfile_lines키로 지정할 수 있어요.
그래프 (Graphs)
LangGraph 설정 파일의 graphs 키를 사용해 배포된 LangGraph 애플리케이션에서 사용할 그래프를 지정해요. 설정 파일에는 하나 이상의 그래프를 지정할 수 있고, 각 그래프는 (고유해야 하는) 이름과 (1) 컴파일된 그래프 또는 (2) 그래프를 만드는 함수가 정의된 경로로 식별됩니다.
환경 변수 (Environment variables)
로컬에서 배포된 LangGraph 애플리케이션을 작업할 때는 LangGraph 설정 파일의 env 키에서 환경 변수를 구성할 수 있어요. 프로덕션 배포라면 보통 배포 환경에서 환경 변수를 구성하게 됩니다.
더 알아보기 (Learn more)
- LangGraph 설정 파일 레퍼런스 —
langgraph.json의 모든 지원 키. - LangGraph CLI — 설정 파일 기본값.
- LangSmith Deployment — 관리형 호스팅 플랫폼.