Struggling with paying subscriptions for too many AI platforms? Anakin AI is the all-in-one platform where you can acess: Claude 3.5 Sonnet, GPT-4, Google Gemini Flash, Uncensored LLM, DALLE 3, Stable Diffusion, in one place, with API Support for easy intergration!
Get Started and Try it Now!๐๐๐
![](https://assets.anakin.ai/blog/2024/07/1721358871.webp)
OpenAI has once again pushed the boundaries of artificial intelligence with the release of GPT-4o-2024-08-06, introducing Structured Outputs to the API. This groundbreaking feature marks a significant leap forward in the reliability and usability of AI-generated content, particularly for developers and businesses relying on structured data generation.
GPT-4o-2024-08-06: What's New?
Historically, large language models (LLMs) have excelled at generating human-like text but struggled with consistently producing structured data adhering to specific formats. GPT-4o-2024-08-06 addresses this challenge head-on with the introduction of Structured Outputs, ensuring model-generated outputs exactly match JSON Schemas provided by developers.
GPT-4o-2024-08-06 Is Really Good At JSON Schema
First things first:
- The performance improvement of GPT-4o-2024-08-06 with Structured Outputs is remarkable.
- In OpenAI's evaluations of complex JSON schema following, this new model achieves a perfect score of 100%, compared to its predecessor, GPT-4-0613, which scored less than 40% on the same tests.
GPT-4o-2024-08-06 Is Better, And Cheaper Than GPT-4O
![](https://assets.anakin.ai/blog/2024/08/Screenshot-2024-08-07-at-10.25.31-PM.png)
Let's compare GPT-4o-2024-08-06 with its predecessors and the more compact GPT-4o-mini:
MMLU (Massive Multitask Language Understanding)
- GPT-4o-2024-08-06: 88.7% (5-shot)
- GPT-4o: 88.7% (5-shot)
- GPT-4o-mini: 82.0% (5-shot)
- GPT-4 (June 2023 version): 86.4% (5-shot)
MMMU (Massive Multitask Multimodal Understanding)
- GPT-4o-2024-08-06: 69.1%
- GPT-4o: 69.1%
- GPT-4o-mini: 59.4%
- GPT-4 (June 2023 version): 34.9%
Pricing (per million tokens)
- GPT-4o-2024-08-06: $5.00 input, $15.00 output
- GPT-4o: $5.00 input, $15.00 output
- GPT-4o-mini: $0.15 input, $0.60 output
- GPT-4 (June 2023 version): $30.00 input, $60.00 output
Context Window
- GPT-4o-2024-08-06: 128K tokens
- GPT-4o: 128K tokens
- GPT-4o-mini: 128K tokens
- GPT-4 (June 2023 version): 8,192 tokens
These benchmarks demonstrate that GPT-4o-2024-08-06 maintains the high performance of GPT-4o while introducing the new Structured Outputs feature. GPT-4o-mini, while not as powerful, offers a more cost-effective solution for many applications.
Structured Outputs: The New Trick from OpenAI
OpenAI has introduced Structured Outputs in two primary forms within the API:
- Function Calling
- Response Format Parameter
Let's explore how to use these features with step-by-step guides and sample codes.
Step-by-Step Guide: Using Structured Outputs
1. Function Calling with Structured Outputs
Step 1: Define your function with a strict schema
import openai
function_schema = {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"temperature_unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "temperature_unit"]
},
"strict": True # This enables Structured Outputs
}
client = openai.OpenAI()
response = client.chat.completions.create(
model="gpt-4o-2024-08-06",
messages=[
{"role": "user", "content": "What's the weather like in Boston?"}
],
functions=[function_schema],
function_call={"name": "get_current_weather"}
)
print(response.choices[0].message.function_call)
2. Response Format Parameter with Structured Outputs
Step 1: Define your JSON schema
json_schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
"cities_visited": {
"type": "array",
"items": {"type": "string"}
}
},
"required": ["name", "age", "cities_visited"]
}
response = client.chat.completions.create(
model="gpt-4o-2024-08-06",
messages=[
{"role": "user", "content": "Generate a profile for a world traveler named John who is 30 years old."}
],
response_format={"type": "json_object", "json_schema": json_schema}
)
print(response.choices[0].message.content)
3. Using Structured Outputs with SDKs
OpenAI has updated its Python and Node SDKs with native support for Structured Outputs. Here's an example using the Python SDK with Pydantic:
from pydantic import BaseModel, Field
from typing import List
from openai import OpenAI
class Traveler(BaseModel):
name: str
age: int
cities_visited: List[str] = Field(min_items=1)
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-2024-08-06",
messages=[
{"role": "user", "content": "Generate a profile for a world traveler named Sarah who is 28 years old."}
],
response_format={"type": "json_object", "schema": Traveler.model_json_schema()}
)
traveler = Traveler.model_validate_json(response.choices[0].message.content)
print(f"Name: {traveler.name}, Age: {traveler.age}, Cities visited: {', '.join(traveler.cities_visited)}")
Best Practices for Using Structured Outputs
- Define Clear Schemas: Ensure your JSON schemas are well-defined and cover all possible outputs.
- Handle Refusals: Implement logic to handle cases where the model refuses to generate output due to safety concerns.
- Validate Outputs: Although Structured Outputs guarantees schema compliance, always validate the content for accuracy.
- Optimize for Performance: Cache preprocessed schemas to reduce latency on subsequent requests.
- Combine with Function Calling: Use Structured Outputs in conjunction with function calling for more complex applications.
Limitations and Considerations
Despite its advancements, GPT-4o-2024-08-06 and Structured Outputs have some limitations:
- Only a subset of JSON Schema is supported.
- The first API response with a new schema incurs additional latency.
- While structure is guaranteed, content accuracy is not.
- Structured Outputs is not compatible with parallel function calls.
- JSON Schemas used are not eligible for Zero Data Retention (ZDR).
Conclusion
GPT-4o-2024-08-06 and its Structured Outputs feature represent a significant advancement in AI-generated content reliability. By solving the challenge of consistently producing structured data, OpenAI has unlocked new possibilities for developers and businesses. As the AI landscape continues to evolve, GPT-4o-2024-08-06 sets a new standard for precision and structure in AI-powered applications, paving the way for more sophisticated and dependable AI systems across various industries.
Struggling with paying subscriptions for too many AI platforms? Anakin AI is the all-in-one platform where you can acess: Claude 3.5 Sonnet, GPT-4, Google Gemini Flash, Uncensored LLM, DALLE 3, Stable Diffusion, in one place, with API Support for easy intergration!
Get Started and Try it Now!๐๐๐
![](https://assets.anakin.ai/blog/2024/07/1721358871.webp)