DSPy 설치하고 언어 모델 연결하기

DSPy 설치하고 언어 모델 연결하기

DSPy를 처음 시작할 때는 두 가지만 하면 돼요. 프레임워크를 설치하고, 작업을 처리할 언어 모델을 하나 연결하는 거죠. 설치는 pipuv로 아주 간단하고, 모델은 dspy.LM 클래스로 지정해 전역 기본값으로 설정합니다.

출처: 공식문서

설치

DSPy 설치는 한 줄이면 끝나요. 가상 환경을 쓰는 프로젝트라면 uv add dspy로 추가해도 됩니다. DSPy는 Python 3.10+ 환경에서 동작해요.

pip install dspy

언어 모델 연결하기

DSPy는 dspy.LM 클래스로 언어 모델에 연결해요. 모델을 "provider/model" 형식의 문자열과 API 키로 지정하면 되는데, 키를 명시적으로 넘길 수도 있고요.

import dspy

# Pass the key explicitly...
lm = dspy.LM("openai/gpt-5-nano", api_key="YOUR_OPENAI_API_KEY")

dspy.configure(lm=lm)

내부적으로 DSPy는 LiteLLM 라이브러리를 사용해 다양한 추론 제공자를 하나의 형식으로 정규화해요. 그래서 LiteLLM 모델 문자열만 있으면 거의 모든 모델과 제공자에 연결할 수 있습니다. 전체 목록은 이곳에서 찾아볼 수 있어요.

이 튜토리얼에서는 "openai/gpt-5-nano" 모델 문자열과 OpenAI API 키를 Anthropic, Google, OpenRouter 등의 옵션으로 바꿔 써도 돼요. 아래 예시는 모두 코드 변경 없이 어떤 LiteLLM 모델 문자열에서든 동작합니다.

LM을 만든 뒤 dspy.configure(lm=lm)을 호출하면 그 프로세스 안의 모든 DSPy 프로그램에서 이 LM이 기본 제공자로 설정돼요. 이건 전역으로 적용되지만, 더 세밀한 제어가 필요할 때는 dspy.context를 이용해 특정 영역만 덮어쓸 수 있습니다.

설정이 잘 됐는지 모델을 직접 호출해 확인해 볼까요.

messages = [
    {
        "role": "system",
        "content": "You are a helpful assistant"
    },
    {
        "role": "user",
        "content": "What is the capital of France?"
    }
]

print(lm(messages = messages))

그러면 이런 답이 돌아와요.

['The capital of France is Paris.']

LM 하나가 설정되면 이제 첫 프로그램을 작성할 준비가 끝났어요.

더 알아보기 (Learn more)