Working with the OpenAI Responses API
James Chapman
AI Curriculum Manager, DataCamp
Prompts as Strings
response = client.responses.create(
model="gpt-5-mini"
input="How old is the Earth?",
instructions="Answer concisely."
)
input → user inputsinstructions → behavior + requirementsRole-Based Prompts
response = client.responses.create(
model="gpt-5-mini"
input=[
{"role": "system",
"content": "Answer concisely."},
{"role": "user",
"content": "How old is the Earth?"}
]
)
response = client.responses.create( model="gpt-5-mini" input=[ {"role": "system", "content": "Answer concisely."},{"role": "user", "content": "How old is the Sun?"},{"role": "assistant", "content": "4.603 billion years"},{"role": "user", "content": "How old is the Earth?"}] )
sys_prompt = "You are a helpful Teacher who provides concise, personalized explanations."
latest_response_id = None
while True:
user_input = input("You: ").strip()
if user_input.lower() == "exit":
break
response = client.responses.create(
model="gpt-5-mini",
instructions=sys_prompt,
input=user_input,
previous_response_id=latest_response_id
)
print(f"\nAssistant: {response.output_text}\n")
latest_response_id = response.id
messages = [{"role": "system"}, {"content": "You are a helpful Teacher who provides concise, personalized explanations."}]while True: user_input = input("You: ").strip() if user_input.lower() == "exit": break messages.append({"role": "user", "content": user_input})response = client.responses.create( model="gpt-5-mini", input=messages )print(f"\nAssistant: {response.output_text}\n") messages.append({"role": "assistant", "content": response.output_text})

response = client.responses.create( model="gpt-5-mini", input=[{"role": "user", "content": [ {"type": "input_text", "text": "Briefly interpret this stock plot."}, {"type": "input_image", "image_url": "https://...stock_performance.jpg"}]}] )print(response.output_text)
- Summary: A mild down day - closed at
277.18, down about 0.26% from the previous
close; after-hours ticked slightly lower to
276.94.

import base64
# Encode binary data as ASCII text characters
with open(image_path, "rb") as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
response = client.responses.create( model="gpt-5-mini", input=[ {"role": "user", "content": [ {"type": "input_text", "text": "Briefly interpret this stock plot."},{"type": "input_image", "image_url": f"data:image/jpeg;base64,{image_base64}"}]}] )
Working with the OpenAI Responses API