Microsoft Dev Blogs

Using JSON Schema for Structured Output in Python for OpenAI Models

thumbnail
  • Introduction: This post discusses implementing JSON Schema for structured output in Python, focusing on guiding an AI math tutor to provide step-by-step solutions using Semantic Kernel.

  • Python-Based Approach with Semantic Kernel: The post outlines importing necessary components for Semantic Kernel and interacting with OpenAI/Azure OpenAI API for solutions.

  • Defining the JSON Schema Using Pydantic: The Pydantic library helps define data models for validating and serializing structured outputs, ensuring responses align with the defined JSON Schema format.

  • Supported Models for Structured Outputs: Azure OpenAI models from version or later, and OpenAI models from version or later, are compatible with this structured output approach.

  • Connecting to OpenAI: The connection to OpenAI or Azure OpenAI services is established, with flags available to specify the service being used.

  • Configuring the Prompt and Settings: A system message instructs the AI to behave as a math tutor, with settings specifying the output format to follow the Reasoning JSON Schema.

  • Output Example: An example output is provided to showcase how the AI-generated response will align with the defined JSON Schema format.

  • Conclusion: Using JSON Schema and Semantic Kernel ensures structured and predictable AI-generated responses, beneficial for applications requiring consistent outputs like educational tools or automated systems. Enjoy using Semantic Kernel? Don't forget to give a star on GitHub!