애플리케이션 구조

애플리케이션 구조

LangGraph 애플리케이션은 하나 이상의 그래프, 설정 파일(langgraph.json), 의존성을 지정하는 파일, 그리고 선택적으로 환경 변수를 지정하는 .env 파일로 구성돼요.

이 가이드는 애플리케이션의 일반적인 구조를 보여주고, LangSmith Deployment로 애플리케이션을 배포하는 데 필요한 설정을 어떻게 제공하는지 알려드릴게요.

LangSmith Deployment는 LangGraph 에이전트를 배포·확장하기 위한 관리형 호스팅 플랫폼이에요. 인프라, 확장, 운영 문제를 처리해서, 상태 저장·장기 실행 에이전트를 저장소에서 바로 배포할 수 있게 해줘요. 자세한 내용은 [Deployment 문서](/langsmith/deployment)를 보세요.

출처: 애플리케이션 구조 - 공식 문서

핵심 개념

LangSmith로 배포하려면 다음 정보를 제공해야 해요:

  1. 애플리케이션에 쓸 의존성·그래프·환경 변수를 지정하는 LangGraph 설정 파일(langgraph.json).
  2. 애플리케이션의 로직을 구현하는 그래프.
  3. 애플리케이션 실행에 필요한 의존성을 지정하는 파일.
  4. 애플리케이션 실행에 필요한 환경 변수.

파일 구조

아래는 애플리케이션 디렉토리 구조의 예시예요:

```plaintext my-app/ ├── my_agent # 모든 프로젝트 코드는 여기 안에 있음 │ ├── utils # 그래프용 유틸리티 │ │ ├── __init__.py │ │ ├── tools.py # 그래프용 툴 │ │ ├── nodes.py # 그래프용 노드 함수 │ │ └── state.py # 그래프의 상태 정의 │ ├── __init__.py │ └── agent.py # 그래프 구축 코드 ├── .env # 환경 변수 ├── requirements.txt # 패키지 의존성 └── langgraph.json # LangGraph용 설정 파일 ``` ```plaintext my-app/ ├── my_agent # 모든 프로젝트 코드는 여기 안에 있음 │ ├── utils # 그래프용 유틸리티 │ │ ├── __init__.py │ │ ├── tools.py # 그래프용 툴 │ │ ├── nodes.py # 그래프용 노드 함수 │ │ └── state.py # 그래프의 상태 정의 │ ├── __init__.py │ └── agent.py # 그래프 구축 코드 ├── .env # 환경 변수 ├── langgraph.json # LangGraph용 설정 파일 └── pyproject.toml # 프로젝트 의존성 ``` LangGraph 애플리케이션의 디렉토리 구조는 프로그래밍 언어와 사용하는 패키지 매니저에 따라 달라질 수 있어요.

설정 파일

langgraph.json 파일은 LangGraph 애플리케이션을 배포하는 데 필요한 의존성, 그래프, 환경 변수 및 기타 설정을 지정하는 JSON 파일이에요.

JSON 파일에서 지원하는 모든 키는 LangGraph 설정 파일 레퍼런스에서 확인할 수 있어요.

[LangGraph CLI](/langsmith/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"
}

의존성

LangGraph 애플리케이션은 다른 Python 패키지에 의존할 수 있어요.

의존성을 올바르게 설정하려면 일반적으로 다음 정보를 지정해야 해요:

  1. 디렉토리 안에서 의존성을 지정하는 파일(예: requirements.txt, pyproject.toml, 또는 package.json).
  2. LangGraph 설정 파일dependencies 키로, LangGraph 애플리케이션 실행에 필요한 의존성을 지정해요.
  3. 추가 바이너리나 시스템 라이브러리는 LangGraph 설정 파일dockerfile_lines 키로 지정할 수 있어요.

그래프

LangGraph 설정 파일graphs 키로 배포된 LangGraph 애플리케이션에서 사용할 수 있는 그래프를 지정해요.

설정 파일에 하나 이상의 그래프를 지정할 수 있어요. 각 그래프는 이름(고유해야 함)과 다음 중 하나의 경로로 식별되는데, (1) 컴파일된 그래프 또는 (2) 그래프를 만드는 함수가 정의된 곳이에요.

환경 변수

로컬에서 배포된 LangGraph 애플리케이션으로 작업할 때는 LangGraph 설정 파일env 키로 환경 변수를 설정할 수 있어요.

프로덕션 배포에서는 일반적으로 배포 환경에서 환경 변수를 설정하고 싶을 거예요.

더 알아보기 (Learn more)