dspy.LM — 언어 모델 클라이언트 구성

dspy.LM — 언어 모델 클라이언트 구성 (LM / Client)

dspy.LM(model: str, model_type: Literal['chat', 'text', 'responses'] = 'chat', temperature: float | None = None, max_tokens: int | None = None, cache: bool = True, callbacks: list[BaseCallback] | None = None, num_retries: int = 3, provider: Provider | None = None, finetuning_model: str | None = None, launch_kwargs: dict[str, Any] | None = None, train_kwargs: dict[str, Any] | None = None, use_developer_role: bool = False, **kwargs)

언어 모델을 DSPy 모듈과 함께 쓰기 위해 만들어진 클라이언트 객체예요. chat 또는 text 완성 요청을 지원하는 언어 모델 인스턴스를 만들어 줘요. DSPy 프로그램에 어떤 LLM을 쓸지는 이 dspy.LM으로 한 곳에서 정해요.

파라미터

이름 타입 설명 기본값
model str 사용할 모델. "llm_provider/llm_name" 형태의 문자열로, LiteLLM이 지원하는 형식이에요. 예: "openai/gpt-4o" 필수
model_type Literal['chat', 'text', 'responses'] 모델의 타입. 예를 들어 "chat", "text", "responses" 'chat'
temperature float | None 응답 생성 시 사용할 샘플링 온도 None
max_tokens int | None 응답당 생성할 최대 토큰 수 None
cache bool 성능 개선과 비용 절감을 위해 응답을 캐시해 재사용할지 True
callbacks list[BaseCallback] | None 각 요청 전후에 실행할 콜백 함수 목록 None
num_retries int 네트워크 오류·속도 제한 등으로 일시 실패 시 재시도할 횟수. 지수 백오프로 재시도해요 3
provider Provider | None 사용할 프로바이더. 지정하지 않으면 모델로부터 추론돼요 None
finetuning_model str | None 파인튜닝할 모델. 일부 프로바이더는 파인튜닝용 모델이 추론용과 달라요 None
rollout_id 같은 요청의 캐시 항목을 구분하기 위한 선택적 정수. 값이 다르면 DSPy의 캐시를 우회하되, 같은 입력·롤아웃 ID의 이후 호출은 계속 캐시돼요. rollout_idtemperature가 0이 아닐 때만 생성에 영향을 줘요. 이 인자는 프로바이더로 보내기 전에 제거돼요 필수
**kwargs 그 외 추가 옵션(최신 BaseLM 인터페이스의 옵션 등)

어떻게 쓰나요

보통 모듈에 서명을 넘길 때, 어떤 LM을 쓸지는 전역 또는 개별 설정으로 지정해요. dspy.LM 인스턴스를 만들어 모듈에 할당하면, 그 모듈의 모든 predictor가 해당 클라이언트로 요청을 보내게 돼요.

import dspy

lm = dspy.LM("openai/gpt-4o-mini")
program = dspy.Predict("question -> answer")
program.set_lm(lm)

여기서 "openai/gpt-4o-mini"처럼 provider/model 형태로만 지정하면 LiteLLM이 프로바이더와 클라이언트를 알아서 연결해 줘요. 프로바이더별 API 키·엔드포인트는 환경 변수나 **kwargs로 넘기게 돼요.

더 알아보기 (Learn more)