이 튜토리얼에서는 그래프 기반 추론 경로를 구성하기 위한 프레임워크인 LangGraph와 이 구조를 보완하는 강력한 모델인 IBM® Granite 모델이라는 두 가지 주요 도구를 사용하여 이러한 AI 에이전틱 워크플로를 구축하는 방법을 살펴봅니다. '노드'라고 하는 워크플로의 각 단계는 일반적으로 대규모 언어 모델을 기반으로 하는 에이전트에 의해 처리됩니다. 이러한 에이전트는 모델 아웃풋 또는 조건부 논리를 기반으로 상태 간에 이동하여 동적인 의사 결정 중심 그래프를 형성합니다.
이러한 에이전틱 워크플로를 실현하기 위해 LangGraph와 Granite 모델이라는 두 가지 필수 구성 요소를 자세히 살펴보겠습니다.
LangGraph는 계산 그래프 내에서 AI 모델을 상태 저장 에이전트로 표현하여 AI 기반 워크플로 개발을 간소화하도록 설계된 강력한 프레임워크입니다. 이를 통해 개발자는 각 동작 또는 의사 결정 지점이 그래프의 노드로 정의되는 확장 가능한 모듈식 시스템을 구축할 수 있습니다.
LangGraph를 사용하면 다음을 수행할 수 있습니다.
LangGraph와 같은 다중 에이전트 시스템 및 프레임워크는 생성형 AI 작업에 적용될 때 일반적으로 작업 실행을 순차적 또는 조건부 워크플로로 구성합니다. LangChain, IBM Granite, OpenAI의 GPT 모델 또는 기타 인공 지능 도구를 사용하든 관계없이 LangGraph는 워크플로를 최적화하여 확장성과 성능을 향상시킵니다.
LangGraph는 복잡한 워크플로를 모듈식 지능형 구성 요소로 세분화하여 AI를 조율하는 기술에 대한 최신 접근 방식을 소개합니다. 기존 자동화나 RPA(Robotic Process Automation)와 달리 LangGraph는 실시간 논리와 메모리를 사용하여 동적이고 상황에 맞는 작업 실행을 가능하게 합니다. 이 프레임워크를 구동하는 4가지 주요 구성 요소는 다음과 같습니다.
LangGraph는 이러한 구성 요소를 함께 사용하여 조직이 AI 기반 워크플로를 설계하고 실행하는 방식을 혁신하여 AI 도구와 실제 비즈니스 프로세스 간의 격차를 해소할 수 있습니다.
IBM® Research에서 개발한 Granite-4.0-Tiny-Preview는 복잡한 문제와 실용적인 자연어 처리(NLP) 작업을 해결하기 위해 설계된 가볍지만 성능이 뛰어난 오픈 소스 언어 모델입니다. Granite는 GPT-4와 같은 상용 모델보다 크기는 작지만 빠르고 효율적이며 Hugging Face와 완벽하게 호환됩니다. 따라서 성능을 희생하지 않고도 운영 효율성을 추구하는 개발자에게 훌륭한 선택입니다.
Granite는 다음과 같은 이점을 제공합니다.
이 튜토리얼에서 Granite 모델은 에이전틱 워크플로의 다양한 단계에서 중요한 역할을 하며 문제 해결과 콘텐츠 생성을 모두 지원합니다. 경량 설계로 인해 인간의 개입이 제한될 수 있고 확장 가능한 설계 패턴이 다양한 데이터 세트 및 공급자에 걸쳐 강력한 AI 솔루션을 구축하는 데 필수적인 실제 애플리케이션에 적합합니다.
이 튜토리얼에서는 짧은 애니메이션 시나리오를 작성하기 위한 크리에이티브 어시스턴트 역할을 하는 워크플로를 구축합니다.
사용자의 스토리 아이디어가 주어지면 에이전트는 다음을 수행합니다.
이 사용 사례는 LangGraph의 구성 워크플로를 통해 구조화된 언어 모델의 추론 및 생성 기능을 모두 보여주기 위해 설계되었습니다.
다음 각 단계는 LangGraph 노드로 구현됩니다.
이러한 노드는 LangGraph에 순차적으로 연결되며 모델은 변경 가능한 상태 사전을 전달하면서 노드를 통과합니다.
이 워크플로는 창의적인 생성과 구조 계획 사이의 균형을 유지합니다. 이는 다음을 보여줍니다.
또한 확장성이 뛰어나며 개정 단계, 여러 장면 생성기 또는 캐릭터 기반 분기를 추가하여 쉽게 확장할 수 있습니다.
watsonx.ai 프로젝트를 생성하려면 IBM® Cloud 계정이 필요합니다.
여러 툴 중에서 선택할 수 있지만, 이 튜토리얼에서는 Jupyter Notebook을 사용하기 위해 IBM 계정을 설정하는 방법을 안내합니다.
이 단계에서는 이 튜토리얼의 코드를 복사할 수 있는 Notebook 환경이 열립니다. 또는 이 노트북을 로컬 시스템에 다운로드하여 watsonx.ai 프로젝트에 에셋으로 업로드할 수 있습니다. 더 많은 Granite 튜토리얼을 보려면 IBM Granite 커뮤니티를 확인하세요. 이 튜토리얼은 GitHub에서도 보실 수 있습니다.
이 셀은 Hugging Face에 호스팅된 IBM Granite 모델을 사용하는 데 필요한 핵심 라이브러리를 설치합니다.
이러한
참고: 가상 환경에서 이 튜토리얼을 실행 중이고 langgrapg가 사전 설치되어 있지 않은 경우 pip install langgraph를 사용하여 로컬 환경에 설치하세요.
이 셀은 워크플로를 빌드하고 실행하는 데 필요한 모든 핵심 라이브러리를 가져옵니다.
이러한 가져오기를 통해 모델 상호 작용, 워크플로 구조화 및 아웃풋 프레젠테이션을 위한 환경을 준비할 수 있습니다.
이 셀은 Hugging Face에서 가져온 IBM의
이러한
이 단계에서는 Granite 모델을 에이전트 워크플로 뒤에 있는 "추론 엔진"으로 효과적으로 초기화합니다.
이
주요 세부 정보:
이 함수는 워크플로 전반에 걸쳐 재사용되어 다양한 의사 결정 또는 생성 노드에서 Granite 모델을 호출합니다.
이
입력:
프롬프트 구성: 프롬프트는 모델에 다음을 요청합니다.
텍스트 생성: 프롬프트가
아웃풋 구문 분석: 간단한 루프를 통해 라인 접두사를 기반으로 모델의 응답에서 장르와 어조를 추출합니다(
상태 업데이트: 추출된
이 노드는 창의적인 분류기 역할을 하여 후속 노드가 장르와 어조을 기본 매개변수로 사용하여 상황에 맞게 정렬된 개요, 구조 및 장면을 생성할 수 있도록 합니다.
이러한
입력: 함수는 다음을 포함하는 상태 사전을 수신합니다.
프롬프트 구성: 모델에 다음을 지시합니다.
텍스트 생성: 프롬프트가
상태 업데이트: 생성된 플롯 개요가 키
이 노드는 추상적인 창작 의도를 내러티브 스케치로 변환하여 뒤에 이어지는 세부적인 3막 구조를 위한 발판을 제공합니다. 이를 통해 다운스트림 노드가 일관되고 상상력이 풍부한 기준선에서 작동하도록 보장합니다.
이러한
입력: 노드는 이제 다음을 포함하는 상태 사전을 사용합니다.
프롬프트 구성: 모델에 다음을 지시합니다.
장면 요구 사항:
텍스트 생성:
상태 업데이트: 생성된 장면은
워크플로에 내러티브 몰입과 시각적 스토리텔링을 도입합니다. 이 노드는 단순히 스토리를 요약하는 대신 애니메이션 단편 스크립트 제작에 필수적인 감각적이고 감정적인 디테일로 스토리에 생동감을 불어넣습니다.
이러한
입력: 노드는 상태
프롬프트 구성: 모델은 다음과 같이 안내됩니다.
대화 지침:
생성:
상태 업데이트: 대화가 향후 단계(예: 표시 또는 편집)를 위해
이 헬퍼 함수
함수 목적: 다음을 기록하는 데코레이터로 노드(예: generate_scene_node)를 래핑합니다.
매개변수:
내부 래퍼:
반환: 진행 메시지를 추가하지만 그 외에는 동일하게 동작하는 함수의 수정된 버전입니다.
워크플로가 증가함에 따라, 특히 생성이나 편집과 같은 일부 단계가 더 오래 걸리거나 메모리 과부하와 같은 문제를 일으킬 수 있는 경우 어떤 단계가 실행되고 있는지 추적하는 것이 중요해집니다. 이 진행 래퍼는 투명성을 보장하고 디버깅 및 런타임 진단에 유용합니다.
이 셀은 LLM 워크플로용으로 설계된 컴포지션 그래프 기반 프로그래밍 프레임워크인 LangGraph를 사용하여 짧은 애니메이션 스토리를 생성하기 위한 워크플로 논리를 정의합니다. 그래프의 각 단계는 창의적인 작업을 나타내며 최종 시나리오를 생성하기 위해 특정 순서로 실행됩니다.
워크플로의 구성 요소:
진행 상황 추적이 있는 노드 등록: 각 단계(장르 선택, 개요 생성, 장면 작성, 대화 작성)는 with_progress() 래퍼가 있는 노드로 추가됩니다.
이 접근 방식은 각 노드가 실행될 때 런타임과 진행 상황을 기록하도록 합니다.
워크플로 엣지(노드 시퀀싱): 크리에이티브 파이프라인의 순서는 다음과 같이 명확하게 정의되어 있습니다.
이 구조는 모듈식이고 읽기 쉽고 디버깅 가능한 LLM 워크플로를 가능하게 합니다. 크리에이티브 프로세스의 각 단계는 개별적으로 프로파일링할 수 있으며 나중에 교체하거나 확장할 수 있습니다(예: '장면 수정' 단계 또는 '아웃풋 요약' 노드 추가).
이 최종 코드 셀은 전체 크리에이티브 워크플로를 실행하고 스토리 생성의 각 단계별 결과를 표시하는 곳입니다.
결과 표시: 최종 상태 사전에 다양한 노드가 포함된 키가 포함됩니다.
이 섹션에서는 단계별 모듈식 LLM 워크플로를 통해 사용자 의도가 완전한 미니스크립트로 변환되는 과정을 보여줍니다. 이는 대화형, 해석 및 사용자 지정이 가능한 엔드투엔드 크리에이티브 파이프라인입니다.
참고: GPU 또는 TPU를 사용하는 경우 코드를 실행하는 데 약 15~17분이 소요됩니다. 로컬 가상 환경에서 cede를 실행하는 데 사용된 인프라를 기반으로 아웃풋을 실행하고 생성하는 데 약 65~70분이 걸립니다.
"잃어버린 용이 집을 찾는다는 어린이용 기발한 판타지 스토리를 쓰고 싶어요"라는 사용자의 프롬프트를 시스템이 어떻게 완전한 애니메이션 스토리로 변환하는지 알아봅시다. 각 단계는 이전 단계를 기반으로 하며, 워크플로의 크리에이티브 노드에 의해 안내되고 Granite 모델에 의해 구동됩니다.
1. 장르 및 어조. 워크플로는 길을 잃은 용이 집을 찾는 기발한 판타지 이야기를 어린이를 위해 쓰고 싶습니다라는 내용의 사용자의 원래 프롬프트를 해석하는 것으로 시작됩니다. 이 입력에 따라 select_genre_node는 내러티브를 기발한 판타지로 올바르게 분류하고 적절한 매혹적이고 따뜻한 어조를 식별합니다. '기발한', '어린이를 위한 ', '길을 잃은 용이 집을 찾는'과 같은 문구의 사용이 마법적이면서도 부드러운 스토리텔링 스타일을 분명히 나타내기 때문에 정확하고 상황에 맞게 조정됩니다. 장르와 어조는 워크플로의 모든 후속 생성 단계를 형성하는 기본 매개변수 역할을 합니다.
2. 플롯 개요와 등장인물 설명. 다음 단계에서 모델은 식별된 장르, 톤 및 사용자의 독창적인 아이디어를 기반으로 플롯 개요를 작성하도록 요청받습니다. 아웃풋에는 3~5문장의 스토리 요약뿐만 아니라 프롬프트 누수 또는 이전 반복의 지침 형식 유지로 인한 보너스 캐릭터 설명도 포함됩니다.
줄거리 개요는 릴리라는 소녀가 상처 입은 용을 발견하고 늙은 약초꾼의 안내를 받아 마법에 걸린 숲으로 돌아가도록 도와준다는 내용입니다. 이 스토리라인은 치유, 소속감, 우정에 대한 감성적인 요소가 가미된 어린이 친화적인 마법 여행에 초점을 맞춘 사용자의 의도를 정확히 반영합니다. 용, 릴리, 약초꾼의 캐릭터 스케치는 막연한 아이디어를 역할, 성격, 내러티브 책임이 명확한 구조화된 콘셉트로 전환하여 깊이를 더합니다. 이 단계는 스토리가 추상적인 의도에서 화면 각색에 적합한 구체적인 구조로 전환되도록 합니다.
3. 주요 장면. 전체 플롯 개요를 고려할 때
선택한 순간은 릴리가 마법에 걸린 숲에서 부상당한 용을 돌보는 장면으로, 캐릭터 간의 감정적 교감과 상호 이해를 구축하는 장면입니다. 이 순간은 용의 귀환을 향해 스토리의 중심을 잡는 중요한 순간입니다. 이 장면은 풍부한 이미지와 감정으로 '기발하고' '따뜻한' 제약 조건을 고수하는 동시에 시각적 표현이 풍부하여 짧은 애니메이션 형식에 완벽하게 적합합니다.
단계 전반에 걸쳐 어조와 장르 일관성을 유지하는 모델의 능력은 LangGraph의 상태 전달 워크플로와 Granite 모델의 추론 기능의 가치를 보여줍니다.
4. 시나리오 형식의 대화. 마지막으로,
워크플로의 각 단계에서는 원래 프롬프트인 "길 잃은 용이 집을 찾는 어린이를 위한 기발한 판타지 스토리"를 체계적이고 창의적이며 표현력이 풍부한 내러티브 결과물로 변환합니다. 장르 선택부터 대화 형식에 이르기까지 시스템은 일관된 스토리텔링 아크를 점진적으로 구축합니다. LangGraph 프레임워크는 작업 간의 전환이 논리적으로 연결되도록 하며, IBM Granite 모델은 일관된 어조로 상황에 맞는 텍스트를 생성할 수 있도록 합니다. 그 결과 한 줄의 사용자 입력만으로 화면에서 바로 볼 수 있는 짧은 단편 애니메이션 스토리가 탄생하여 창의적인 AI 애플리케이션에서 에이전트 워크플로의 실질적인 힘을 보여줍니다.
스토리텔링 경험을 더욱 매력적으로 만들기 위해 생성된 스토리 요소(장르, 어조, 플롯, 장면 및 대화)를 아름답게 포맷하는 간단한 HTML 기반 시각화가 있습니다. 또한, 클릭 한 번으로 전체 스크립트를 텍스트 파일로 다운로드하여 나중에 사용하거나 공유할 수 있습니다. 스토리를 화면으로 생생하게 전달해 보세요!
이 튜토리얼은 텍스트 생성을 위해 Granite-4.0-Tiny-Preview 모델을 사용합니다. Granite 제품군의 소규모 모델 중 하나이지만, 특히 LangGraph 워크플로에서 여러 노드를 실행할 때 효율적으로 실행하려면 여전히 GPU 지원 환경이 필요합니다.
권장 설정:
성능 참고 사항:
이 튜토리얼을 호스팅된 노트북 환경(예: IBM watsonx.ai 또는 Google Colab Pro)에서 실행하는 경우 런타임 설정에서 GPU가 활성화되어 있는지 확인하세요.
리소스가 부족한 환경의 경우 다음을 고려합니다.
이 튜토리얼에서는 LangGraph와 IBM의 granite-4.0-Tiny-Preview 언어 모델을 사용하여 모듈식 에이전트 스토리텔링 워크플로를 구축했습니다. 간단한 크리에이티브 프롬프트에서 시작하여 장르와 어조를 분류하고 줄거리 개요를 생성하고 주요 장면을 작성하고 시나리오 스타일의 대화로 마무리하는 단계별 파이프라인을 구축했습니다. 그 과정에서 방법을 시연해 보았습니다.
이 에이전트 프레임워크는 시나리오 작성에 강력할 뿐만 아니라 광범위한 창의적 또는 작업 라우팅 사용 사례로 확장될 수 있습니다. 단 몇 개의 노드만으로 기발한 아이디어를 대본에 바로 사용할 수 있는 스토리로 바꿀 수 있는 미니어처 글쓰기 어시스턴트를 구축했습니다.
개발자, 스토리텔러, 연구원이든 이 튜토리얼을 통해 크리에이티브 영역에서 LLM 기반 워크플로 엔지니어링을 살펴볼 수 있는 실용적인 기초를 다질 수 있습니다.
자체 에이전트를 구축할 준비가 되셨나요? IBM Granite 모델과 IBM watsonx Orchestrate를 사용하여 창의성을 마음껏 발휘해 보세요.
생성형 AI로 워크플로와 프로세스를 자동화하는 강력한 AI 어시스턴트 및 에이전트를 구축, 배포, 관리하세요.
믿을 수 있는 AI 솔루션으로 비즈니스의 미래를 설계하세요.
IBM Consulting AI 서비스는 기업이 AI 활용 방식을 재구상하여 혁신을 달성하도록 지원합니다.
1 Lang Cao. 2024년. GraphReason: Enhancing Reasoning Capabilities of Large Language Models through A Graph-Based Verification Approach. In Proceedings of the 2nd Workshop on Natural Language Reasoning and Structured Explanations (@ACL 2024), 1~12페이지, 태국 방콕. Association for Computational Linguistics.