Skip to content

Add typed signatures#9494

Open
michaelisaac-dev wants to merge 40 commits intostanfordnlp:mainfrom
michaelisaac-dev:sig-type
Open

Add typed signatures#9494
michaelisaac-dev wants to merge 40 commits intostanfordnlp:mainfrom
michaelisaac-dev:sig-type

Conversation

@michaelisaac-dev
Copy link
Copy Markdown
Contributor

@michaelisaac-dev michaelisaac-dev commented Mar 23, 2026

Adds a typed Signature[TInput, TOutput] API that lets users define modules with input/output contracts using dataclasses or Pydantic models.

    @dataclass
    class InputType:
        question: str = dspy.Field(desc="The question to answer")

    class OutputType:
        answer: str
        confidence: int = dspy.Field(desc="How confident are you in your answer?")

    signature = dspy.Signature(input_type=InputType, output_type=OutputType)
    program = Predict(signature)

    response = program(InputType(question="What is the capital of France?"))

    assert isinstance(response, OutputType)  
    assert isinstance(response.confidence, int)
    assert isinstance(response.answer, str)

@michaelisaac-dev michaelisaac-dev marked this pull request as ready for review March 26, 2026 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant