How to beginner · 3 min read

How to retrieve assistant response in OpenAI

Quick answer
Use the OpenAI Python SDK v1 by calling client.chat.completions.create with your messages array. The assistant's reply is in response.choices[0].message.content.

PREREQUISITES

  • Python 3.8+
  • OpenAI API key (free tier works)
  • pip install openai>=1.0

Setup

Install the official OpenAI Python SDK and set your API key as an environment variable.

  • Run pip install openai>=1.0 to install the SDK.
  • Set your API key in your shell: export OPENAI_API_KEY='your_api_key_here' (Linux/macOS) or setx OPENAI_API_KEY "your_api_key_here" (Windows).
bash
pip install openai>=1.0

Step by step

Use the OpenAI SDK v1 to send a chat completion request and retrieve the assistant's response from the returned object.

python
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello, how are you?"}]
)

assistant_reply = response.choices[0].message.content
print("Assistant response:", assistant_reply)
output
Assistant response: I'm doing great, thank you! How can I assist you today?

Common variations

You can use different models like gpt-4o-mini or enable streaming for partial responses. Async calls are supported with asyncio and the SDK's async methods.

python
import asyncio
import os
from openai import OpenAI

async def main():
    client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
    response = await client.chat.completions.acreate(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": "Hello asynchronously!"}]
    )
    print("Async assistant response:", response.choices[0].message.content)

asyncio.run(main())
output
Async assistant response: Hello asynchronously! How can I help you today?

Troubleshooting

  • If you get an authentication error, verify your OPENAI_API_KEY environment variable is set correctly.
  • If the response is empty, check your message format and model name.
  • For rate limit errors, consider adding retries with exponential backoff.

Key Takeaways

  • Always retrieve the assistant's reply from response.choices[0].message.content using the OpenAI SDK v1.
  • Use environment variables for API keys to keep credentials secure and avoid hardcoding.
  • The OpenAI Python SDK supports both synchronous and asynchronous calls for flexibility.
  • Verify model names and message structure to avoid empty or error responses.
  • Handle common errors like authentication and rate limits proactively in production.
Verified 2026-04 · gpt-4o, gpt-4o-mini
Verify ↗