import promptlayer
from datetime import datetime
promptlayer.api_key = "your_api_key"
# Make your OpenAI call with structured outputs
response = openai.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Generate a recipe for chocolate cake"}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "Recipe",
"description": "A structured recipe format",
"schema": {
"type": "object",
"properties": {
"recipe_name": {"type": "string"},
"ingredients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"amount": {"type": "string"}
},
"required": ["name", "amount"]
}
},
"instructions": {
"type": "array",
"items": {"type": "string"}
}
},
"required": ["recipe_name", "ingredients", "instructions"],
"additionalProperties": False
},
"strict": True
}
}
)
# Log the request to PromptLayer
promptlayer.log_request(
provider="openai",
model="gpt-4",
input={
"type": "chat",
"messages": [{"role": "user", "content": "Generate a recipe for chocolate cake"}]
},
output={
"type": "chat",
"messages": [{"role": "assistant", "content": response.choices[0].message.content}]
},
request_start_time=datetime.now(),
request_end_time=datetime.now(),
parameters={
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "Recipe",
"description": "A structured recipe format",
"schema": {
"type": "object",
"properties": {
"recipe_name": {"type": "string"},
"ingredients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"amount": {"type": "string"}
},
"required": ["name", "amount"]
}
},
"instructions": {
"type": "array",
"items": {"type": "string"}
}
},
"required": ["recipe_name", "ingredients", "instructions"],
"additionalProperties": False
},
"strict": True
}
}
},
tags=["structured-output", "recipe-generation"]
)