dspy.configure

dspy.configure

DSPy의 기본 언어 모델·어댑터·기타 설정을 정하는 함수예요. 스크립트나 노트북의 윗부분에서 한 번만 호출하면, 이후 모든 모듈이 그 기본값을 사용해요.

출처: 문서

본문

DSPy의 기본 언어 모델, 어댑터, 기타 설정을 정해요.

dspy.configure(**kwargs)

dspy.configure(...)를 스크립트나 노트북의 상단에서 한 번 호출하면 돼요. 모든 DSPy 모듈은 dspy.context로 덮어쓰지 않는 한 이 기본값을 사용하고, 값은 다시 dspy.configure(...)를 호출할 때까지 유지돼요.

참고: lm에는 문자열이 아니라 dspy.LM 객체를 넘겨야 해요.

설정 (Settings)

표는 각 설정의 기본값과 설명이에요.

Setting Default Description
lm None 기본 언어 모델. dspy.LM 인스턴스를 넘겨요.
adapter None 프롬프트를 만들고 LM 응답을 파싱해요. None이면 모듈은 dspy.ChatAdapter를 사용해요.
callbacks [] 관찰 가능성·로깅 훅. Observability 문서를 참고하세요.
track_usage False 모든 LM 호출의 토큰 수를 기록해요.
async_max_workers 8 비동기 작업의 최대 동시 워커 수.
num_threads 8 dspy.Parallel의 스레드 수.
max_errors 10 이 횟수만큼 오류가 나면 병렬 실행을 멈춰요.
disable_history False LM 호출 히스토리 기록을 끄기.
max_history_size 10000 저장할 히스토리 항목 수 상한.
allow_tool_async_sync_conversion False 비동기 도구를 동기 코드에서 실행할 수 있게 해요. Async 문서 참고.
provide_traceback False 오류 로그에 Python traceback 포함.
warn_on_type_mismatch True 모듈 입력 타입이 시그니처와 안 맞을 때 경고.
interpreter_factory None 코드 실행 모듈(dspy.RLM, dspy.Flex, dspy.ProgramOfThought, dspy.CodeAct)의 기본 dspy.PythonInterpreter 팩토리를 교체. 모듈 자신의 팩토리가 우선하며, PythonInterpreter가 아닐 때만 적용돼요. 아무것도 설정하지 않으면 모듈은 dspy.PythonInterpreter로 대체돼요.

예시 (Examples)

기본 LM 설정

import dspy

dspy.configure(lm=dspy.LM("openai/gpt-5-mini"))

qa = dspy.Predict("question -> answer")
result = qa(question="What is the capital of France?")
print(result.answer)

LM과 어댑터 설정

import dspy

dspy.configure(
    lm=dspy.LM("anthropic/claude-sonnet-4-6"),
    adapter=dspy.JSONAdapter(),
)

사용량 추적 켜고 동시성 조정

import dspy

dspy.configure(
    lm=dspy.LM("gemini/gemini-3-flash-preview"),
    track_usage=True,
    async_max_workers=4,
)

dspy.configure를 언제 쓰나요

기본값 한 벌이 프로그램 대부분(스크립트, 노트북, 테스트 설정, 앱 시작)에 적용돼야 할 때 dspy.configure(...)를 쓰면 돼요.

한 번의 호출이나 한 블록에만 다른 설정이 필요하다면 dspy.context를 쓰세요.

스레드 안전성

처음 dspy.configure(...)를 호출한 스레드만 다시 호출할 수 있어요. 다른 스레드가 시도하면 RuntimeError가 나요. 비동기 코드에서는 처음 dspy.configure(...)를 호출한 태스크만 계속 호출할 수 있어요.

워커 스레드, 비동기 태스크, dspy.Parallel 블록 안에서의 임시 덮어쓰기는 dspy.context를 쓰세요.

함께 보기 (See Also)

  • dspy.context — 한 블록 동안만 유지되는 임시 설정.
  • dspy.LM — lm으로 넘길 언어 모델 생성.
  • Language Models — LM 설정 개요.
  • Adapters — 어댑터가 프롬프트를 만들고 응답을 파싱하는 방법.

더 알아보기 (Learn more)