The responses API is quite different from old.completions
The old version had
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
The new version is
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4o",
instructions="You are a helpful assistant.", # replaces system message
input="Hello!" # replaces messages array for simple cases
)
print(response.output_text)
So the basic difference is
1. System inputs : Instructions parameter , this is not a message array .
2. Message -input : for single turn calls , it accepts a single plain array , for multiturn , it accepts arrays similar to before .
3. Response shape changed