dspy.context
dspy.context
하나의 with 블록 안에서만 DSPy 설정을 덮어쓰는 도구예요. 프로그램 전체 기본값은 그대로 두고, 특정 구간만 다른 LM·어댑터·플래그를 쓰고 싶을 때 유용해요.
출처: 문서
본문
하나의 with 블록 안에서 DSPy 설정을 덮어써요.
with dspy.context(**kwargs):
... # overrides active here
# original settings restored
dspy.configure가 정한 프로세스 전역 기본값을 바꾸지 않고 프로그램 일부에서만 다른 LM·어댑터·플래그가 필요할 때 dspy.context(...)를 쓰세요. 블록은 현재 설정을 전부 상속하고, 넘긴 키만 덮어쓴 뒤, 블록을 빠져나오면 원래 값으로 복원해요.
dspy.context(...)는 dspy.configure와 같은 설정을 받아요.
예시 (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("default:", result.answer)
with dspy.context(lm=dspy.LM("anthropic/claude-sonnet-4-6")):
result = qa(question="What is the capital of France?")
print("temporary:", result.answer)
print("restored:", dspy.settings.lm.model) # openai/gpt-5-mini
한 블록에서 다른 어댑터 사용
import dspy
dspy.configure(lm=dspy.LM("gemini/gemini-3-flash-preview"))
qa = dspy.Predict("question -> answer")
with dspy.context(adapter=dspy.JSONAdapter()):
result = qa(question="What is the capital of France?")
print(result.answer)
비동기 도구 변환 임시 활성화
import asyncio
import dspy
async def async_tool(x: int) -> int:
await asyncio.sleep(0.1)
return x * 2
tool = dspy.Tool(async_tool)
with dspy.context(allow_tool_async_sync_conversion=True):
print(tool(x=5))
중첩 블록
안쪽 블록이 바깥쪽 블록을 덮어써요. 각 블록은 빠져나올 때 깨끗이 복원돼요.
import dspy
dspy.configure(lm=dspy.LM("openai/gpt-5-mini"))
with dspy.context(lm=dspy.LM("anthropic/claude-sonnet-4-6")):
print(dspy.settings.lm.model) # anthropic/claude-sonnet-4-6
with dspy.context(track_usage=True):
print(dspy.settings.lm.model) # anthropic/claude-sonnet-4-6 (inherited)
print(dspy.settings.track_usage) # True
print(dspy.settings.track_usage) # False (restored)
print(dspy.settings.lm.model) # openai/gpt-5-mini (restored)
스레드 안전성
dspy.configure와 달리, dspy.context(...)는 어떤 스레드나 비동기 태스크에서도 호출할 수 있어요. 그래서 dspy.Parallel, asyncio.gather, 그 외 동시성 코드 안의 덮어쓰기에 잘 맞아요.
dspy.context(...) 블록 안의 설정은 다른 스레드나 태스크로 새어 나가지 않아요.
함께 보기 (See Also)
dspy.configure— 프로세스 전역 기본값 설정.dspy.LM—lm으로 넘길 언어 모델 생성.- Language Models — LM 설정 개요.
- Adapters — 어댑터가 프롬프트를 만들고 응답을 파싱하는 방법.
더 알아보기 (Learn more)
- dspy.configure — 전역 기본 설정
- dspy.Parallel — 병렬 실행