랭체인(LangChain)의 Callbacks 모듈은 비동기 작업의 진행 상황을 추적하고, 특정 이벤트에 대한 반응을 처리할 수 있는 기능을 제공합니다.
이 모듈은 주로 모델의 실행 과정에서 발생하는 다양한 이벤트에 대해 사용자 정의 동작을 수행할 수 있도록 도와줍니다.
Callbacks 모듈은 다음과 같은 주요 역할을 수행합니다
Callbacks 모듈은 다음과 같은 구성 요소로 이루어져 있습니다.
다음은 Callbacks 모듈을 사용하여 특정 이벤트에 대한 동작을 정의하는 간단한 예입니다.
from langchain.callbacks import Callback
class MyCustomCallback(Callback):
def on_input(self, input_data):
print(f"입력 데이터: {input_data}")
def on_output(self, output_data):
print(f"출력 데이터: {output_data}")
# 콜백 인스턴스 생성
my_callback = MyCustomCallback()
# 모델 실행 시 콜백 사용
model.run(input_data="Hello, World!", callbacks=[my_callback])
Callbacks는 다양한 고급 시나리오에서 유용하게 활용될 수 있습니다.
import time
from langchain.callbacks import Callback
class TimingCallback(Callback):
def __init__(self):
self.start_time = None
def on_input(self, input_data):
self.start_time = time.time()
def on_complete(self):
execution_time = time.time() - self.start_time
print(f"실행 시간: {execution_time:.2f}초")
import logging
from langchain.callbacks import Callback
class LoggingCallback(Callback):
def __init__(self):
logging.basicConfig(level=logging.INFO)
self.logger = logging.getLogger("LangChain")
def on_input(self, input_data):
self.logger.info(f"입력: {input_data}")
def on_output(self, output_data):
self.logger.info(f"출력: {output_data}")
def on_error(self, error):
self.logger.error(f"오류: {error}")
from tqdm import tqdm
from langchain.callbacks import Callback
class ProgressCallback(Callback):
def __init__(self, total_steps):
self.progress_bar = tqdm(total=total_steps)
def on_step(self, step):
self.progress_bar.update(1)
def on_complete(self):
self.progress_bar.close()
LangChain의 Callbacks 모듈은 비동기 작업의 진행 상황을 추적하고, 특정 이벤트에 대해 사용자 정의 동작을 수행할 수 있는 강력한 도구입니다.
이를 통해 보다 유연하고 효율적인 애플리케이션을 개발할 수 있으며, 디버깅과 모니터링을 통해 작업의 안정성을 높일 수 있습니다.
LLM 기반 애플리케이션 개발에서 Callbacks는 모델의 동작을 세밀하게 제어하고 모니터링하는 데 필수적인 요소이므로, 이를 효과적으로 활용하면 복잡한 AI 파이프라인도 안정적으로 구축할 수 있습니다.