Python: OpenAI Structured Output response_format
ADR
#8656
+220
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation and Context
This PR introduces the design for supporting OpenAI's Structured Outputs
response_format
within the Semantic Kernel Python SDK. While OpenAI’s previous JSON mode improved model reliability, it still lacked strict schema adherence, which led to inefficiencies and the need for custom workarounds.By integrating Structured Outputs, this ADR outlines a design that ensures generated AI outputs will conform to predefined JSON schemas, improving consistency, reducing errors, and eliminating the need for retries or custom tools. This design will provide a more streamlined and reliable approach for developers building schema-compliant AI-driven applications.
In the future we will have a separate ADR around OpenAI's structured outputs for function calling. That is out of scope for this ADR.
Contribution Checklist