dspy.Code
dspy.Code
dspy.Code는 DSPy의 코드 타입입니다. 코드 생성과 코드 분석에 유용합니다.
출처: 문서
본문
dspy.Code
- Bases:
Type
DSPy의 코드 타입입니다. 코드 생성과 코드 분석에 유용합니다.
예시 1: 코드 생성에서 출력 타입으로 dspy.Code
import dspy
dspy.configure(lm=dspy.LM("openai/gpt-4o-mini"))
class CodeGeneration(dspy.Signature):
'''Generate python code to answer the question.'''
question: str = dspy.InputField(description="The question to answer")
code: dspy.Code["java"] = dspy.OutputField(description="The code to execute")
predict = dspy.Predict(CodeGeneration)
result = predict(question="Given an array, find if any of the two numbers sum up to 10")
print(result.code)
예시 2: 코드 분석에서 입력 타입으로 dspy.Code
import dspy
import inspect
dspy.configure(lm=dspy.LM("openai/gpt-4o-mini"))
class CodeAnalysis(dspy.Signature):
'''Analyze the time complexity of the function.'''
code: dspy.Code["python"] = dspy.InputField(description="The function to analyze")
result: str = dspy.OutputField(description="The time complexity of the function")
predict = dspy.Predict(CodeAnalysis)
def sleepsort(x):
import time
for i in x:
time.sleep(i)
print(i)
result = predict(code=inspect.getsource(sleepsort))
print(result.result)
Methods
description() -> str (classmethod)
dspy.Code의 설명입니다. 코드는 code 필드에 지정된 문자열로 표현됩니다. 출력 필드라면 마크다운 코드 블록 형식(```{cls.language.lower()}```)을 따라야 하며, 프로그래밍 언어가 함께 표시됩니다.
validate_input(data) (classmethod)
dspy.Code 입력을 검증합니다. 이미 Code 객체면 그대로 반환하고, 문자열이면 {"code": _filter_code(data)}로, 딕셔너리면 code 키(문자열)를 검증해 필터링합니다. 그 외 값이면 ValueError를 발생시킵니다.
format()
코드를 f"{self.code}"로 반환합니다.
serialize_model()
표준 커스텀 타입 태그(<<CUSTOM-TYPE-START-IDENTIFIER>>, <<CUSTOM-TYPE-END-IDENTIFIER>>)를 우회하기 위해 override하며, self.format()을 반환합니다.
표준 상속 메서드
adapt_to_native_lm_feature(...), extract_custom_type_from_annotation(annotation), parse_lm_response(...), parse_stream_chunk(...), is_streamable() 등은 모든 커스텀 타입이 공유하는 base_type.py의 표준 메서드입니다.