dspy.Module

dspy.Module

dspy.Module(callbacks=None)

  • 기반 클래스(base): BaseModule

모든 DSPy 모듈(프로그램)의 기반 클래스예요. Module은 predictor, 하위 모듈, 그리고 커스텀 로직을 담을 수 있는 DSPy 프로그램의 구성 블록이에요. 모듈들은 서로 조합되어 복잡한 파이프라인을 만들 수 있고, DSPy의 텔레프롬터(옵티마이저)로 최적화될 수 있어요.

모든 DSPy 프로그램은 이 클래스를 상속하고, 프로그램의 로직을 정의하는 forward 메서드를 구현해야 해요.

파라미터

이름 타입 설명 기본값
callbacks 계측·모니터링을 위한 선택적 콜백 핸들러 목록 None

속성 (Attributes)

  • callbacks — 등록된 콜백 핸들러 목록
  • history — 이 모듈의 LM 호출 히스토리 목록

예시

import dspy

class MyProgram(dspy.Module):
    def __init__(self):
        super().__init__()
        self.predictor = dspy.Predict("question -> answer")

    def forward(self, question):
        return self.predictor(question=question)

forward가 받은 입력을 어떻게 처리할지 정의하고, 예가 보여주듯 predictor에 위임하는 게 가장 흔한 패턴이에요.

주요 메서드

  • __call__(*args, **kwargs) -> Prediction — 모듈 호출. 내부적으로 forward를 실행하고 사용 추적(usage)을 처리해요
  • acall(*args, **kwargs) -> Prediction (async) — 비동기 호출
  • forward(**kwargs) — 프로그램의 핵심 로직. 서브클래스가 이 메서드를 구현해요
  • batch(examples, num_threads=None, max_errors=None, return_failed_examples=False, provide_traceback=None, disable_progress_bar=False, timeout=120, straggler_limit=3)dspy.Example 목록을 Parallel 모듈로 병렬 처리. return_failed_examples가 참이면 실패한 예시와 예외를 함께 돌려줘요
  • set_lm(lm) / get_lm() — 모듈 내 모든 predictor에 언어 모델을 재귀적으로 설정/조회. 여러 다른 LM이 쓰이면 get_lmValueError
  • inspect_history(n=1, file=None) — 최근 LM 호출 히스토리를 형식화해 출력. 디버깅에 유용
  • load(path, allow_pickle=False, allow_unsafe_lm_state=False) / save(...) / deepcopy() / dump_state(json_mode=True) — 직렬화·상태 관리

더 알아보기 (Learn more)