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_lm은ValueErrorinspect_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)
- 모듈로 추론 전략 바꾸기 — 같은 서명을 다른 모듈에 넘기는 실전 예
- 모듈: 직접 조합하기(Modules: composing your own) — 나만의 모듈을 조합하는 방법
- dspy.Predict — Module의 대표적인 predictor 서브클래스
- dspy.ChainOfThought — 추론 전략을 얹은 또 다른 모듈