Alpha Notice: These docs cover the v1-alpha release. Content is incomplete and subject to change.For the latest stable version, see the current LangGraph Python or LangGraph JavaScript docs.
함수형 API에 대한 개념적인 정보는 함수형 API를 참조하세요.
간단한 워크플로우 만들기
entrypoint
를 정의할 때 입력은 함수의 첫 번째 인자로 제한됩니다. 여러 입력을 전달하려면 딕셔너리를 사용할 수 있습니다.
확장 예제: 간단한 워크플로우
확장 예제: 간단한 워크플로우
확장 예제: LLM으로 에세이 작성하기
확장 예제: LLM으로 에세이 작성하기
이 예제는
@task
와 @entrypoint
데코레이터를 구문적으로 사용하는 방법을 보여줍니다.
체크포인터가 제공되면 워크플로우 결과가 체크포인터에 저장됩니다.병렬 실행
작업을 동시에 호출하고 결과를 기다림으로써 병렬로 실행할 수 있습니다. 이는 IO 바운드 작업(예: LLM을 위한 API 호출)의 성능을 향상시키는 데 유용합니다.확장 예제: 병렬 LLM 호출
확장 예제: 병렬 LLM 호출
이 예제는 이 예제는 LangGraph의 동시성 모델을 사용하여 실행 시간을 개선합니다. 특히 작업이 LLM 완성과 같은 I/O를 포함할 때 효과적입니다.
@task
를 사용하여 여러 LLM 호출을 병렬로 실행하는 방법을 보여줍니다. 각 호출은 서로 다른 주제에 대한 단락을 생성하고, 결과는 하나의 텍스트 출력으로 결합됩니다.그래프 호출하기
함수형 API와 그래프 API는 동일한 기본 런타임을 공유하므로 같은 애플리케이션에서 함께 사용할 수 있습니다.확장 예제: 함수형 API에서 간단한 그래프 호출하기
확장 예제: 함수형 API에서 간단한 그래프 호출하기
다른 엔트리포인트 호출하기
entrypoint 또는 task 내에서 다른 entrypoint를 호출할 수 있습니다.확장 예제: 다른 엔트리포인트 호출하기
확장 예제: 다른 엔트리포인트 호출하기
스트리밍
함수형 API는 그래프 API와 동일한 스트리밍 메커니즘을 사용합니다. 자세한 내용은 스트리밍 가이드 섹션을 참조하세요. 업데이트와 사용자 정의 데이터를 모두 스트리밍하는 스트리밍 API 사용 예제입니다.langgraph.config
에서get_stream_writer
를 가져옵니다.- 엔트리포인트 내에서 스트림 라이터 인스턴스를 가져옵니다.
- 계산이 시작되기 전에 사용자 정의 데이터를 출력합니다.
- 결과를 계산한 후 다른 사용자 정의 메시지를 출력합니다.
.stream()
을 사용하여 스트리밍된 출력을 처리합니다.- 사용할 스트리밍 모드를 지정합니다.
Python < 3.11에서 비동기 사용
Python < 3.11을 사용하고 비동기 코드를 작성하는 경우
get_stream_writer()
를 사용하면 작동하지 않습니다. 대신 StreamWriter
클래스를 직접 사용하세요. 자세한 내용은 Python < 3.11에서 비동기를 참조하세요.재시도 정책
작업 캐싱
ttl
은 초 단위로 지정됩니다. 이 시간이 지나면 캐시가 무효화됩니다.
오류 후 재개하기
slow_task
의 결과가 이미 체크포인트에 저장되어 있으므로 다시 실행할 필요가 없습니다.
Human-in-the-loop
함수형 API는interrupt
함수와 Command
프리미티브를 사용하여 human-in-the-loop 워크플로우를 지원합니다.
기본 human-in-the-loop 워크플로우
세 개의 작업을 생성하겠습니다:"bar"
추가하기.- 사용자 입력을 위해 일시 정지. 재개할 때 사용자 입력 추가하기.
"qux"
추가하기.
step_1
과 같은 이전 작업의 결과는 유지되므로 interrupt
이후 다시 실행되지 않습니다.
쿼리 문자열을 보내 보겠습니다:
step_1
이후 interrupt
로 일시 정지했습니다. interrupt는 실행을 재개하기 위한 지침을 제공합니다. 재개하려면 human_feedback
작업에서 예상하는 데이터를 포함하는 Command를 발행합니다.
도구 호출 검토하기
실행 전에 도구 호출을 검토하려면interrupt
를 호출하는 review_tool_call
함수를 추가합니다. 이 함수가 호출되면 재개 명령을 발행할 때까지 실행이 일시 정지됩니다.
도구 호출이 주어지면 함수는 사람의 검토를 위해 interrupt
합니다. 이 시점에서 다음 중 하나를 수행할 수 있습니다:
- 도구 호출 수락
- 도구 호출 수정 및 계속
- 사용자 정의 도구 메시지 생성(예: 도구 호출을 다시 포맷하도록 모델에 지시)
ToolMessage
를 추가하기만 하면 됩니다. 이전 작업의 결과(이 경우 초기 모델 호출)는 유지되므로 interrupt
이후 다시 실행되지 않습니다.
단기 메모리
단기 메모리를 사용하면 동일한 스레드 ID의 서로 다른 호출 간에 정보를 저장할 수 있습니다. 자세한 내용은 단기 메모리를 참조하세요.체크포인트 관리
체크포인터에 저장된 정보를 보고 삭제할 수 있습니다.스레드 상태 보기
스레드 히스토리 보기
반환 값과 저장 값 분리하기
entrypoint.final
을 사용하면 호출자에게 반환되는 값과 체크포인트에 저장되는 값을 분리할 수 있습니다. 다음과 같은 경우에 유용합니다:
- 계산된 결과(예: 요약 또는 상태)를 반환하지만 다음 호출에 사용할 다른 내부 값을 저장하려는 경우.
- 다음 실행에서 previous 매개변수로 전달될 값을 제어해야 하는 경우.
챗봇 예제
함수형 API와InMemorySaver
체크포인터를 사용하는 간단한 챗봇 예제입니다.
봇은 이전 대화를 기억하고 중단한 부분부터 계속할 수 있습니다.
장기 메모리
장기 메모리를 사용하면 서로 다른 스레드 ID 간에 정보를 저장할 수 있습니다. 이는 한 대화에서 특정 사용자에 대한 정보를 학습하고 다른 대화에서 사용하는 데 유용할 수 있습니다.워크플로우
- 함수형 API를 사용하여 워크플로우를 구축하는 방법에 대한 더 많은 예제는 워크플로우와 에이전트 가이드를 참조하세요.
다른 라이브러리와 통합하기
- 함수형 API를 사용하여 다른 프레임워크에 LangGraph 기능 추가하기: 기본적으로 제공하지 않는 다른 에이전트 프레임워크에 영속성, 메모리, 스트리밍과 같은 LangGraph 기능을 추가하세요.