Basically, you take the reasoning element in the response.output and pass it as a json to the already existing conversation.
In this example I just tossed the entire output as the python SDK can handle it, but if you need to do a REST request you must use an equivalent JSON.
Here is a short example.
inputs = [{ "role": "user", "content": "Explain why is the sky blue." } ]
response_1 = client.responses.create(
model="o4-mini",
reasoning= {"effort":"low"},
input=inputs,
include=['reasoning.encrypted_content'],
store=False,
)
print('#1 First output')
for o in response_1.output:
print(o.type,o.to_dict())
#follow up
inputs.extend(response_1.output)
inputs.append({ "role": "user", "content": "Can you summarize it in one sentence?" })
response_2 = client.responses.create(
model="o4-mini",
reasoning= {"effort":"low"},
input=inputs,
include=['reasoning.encrypted_content'],
store=False,
)
print('#2 Second output')
for o in response_2.output:
print(o.type,o.to_dict())