GPT Realtime API
# example requires websocket-client library:
# pip install websocket-client
import os
import json
import websocket
url = "ws://4zapi.com/v1/realtime?model=gpt-realtime-2025-08-28"
headers = [
"Authorization: Bearer sk-xxx" ,
"OpenAI-Beta: realtime=v1"
]
def decode_unicode_string(s):
"""Decode Unicode so non-ASCII text is readable"""
try:
if isinstance(s, bytes):
return s.decode('utf-8')
return s.encode('latin1').decode('utf-8')
except Exception as e:
print(f"Decode failed: {e}")
return s
def on_error(ws, error):
print("\n=== Error ===")
print(f"{error}")
def on_close(ws, close_status_code, close_msg):
print("\n=== Connection closed ===")
print(f"Status: {close_status_code}")
print(f"Message: {close_msg}")
def on_open(ws):
print("\n=== Connected ===")
event = {
"type": "response.create",
"response": {
"modalities": ["text"],
"instructions": "Please assist the user."
}
}
print("\n=== Sending ===")
print(json.dumps(event, ensure_ascii=False, indent=2))
ws.send(json.dumps(event))
def on_message(ws, message):
print("\n=== Message received ===")
try:
data = json.loads(message)
if 'error' in data and 'message' in data['error']:
data['error']['message'] = decode_unicode_string(data['error']['message'])
print(json.dumps(data, ensure_ascii=False, indent=2))
if data.get('type') == 'error':
print("\n=== Error summary ===")
print(f"Type: {data['error'].get('type', 'unknown')}")
print(f"Code: {data['error'].get('code', 'unknown')}")
error_message = decode_unicode_string(data['error'].get('message', 'unknown'))
print(f"Message: {error_message}")
except json.JSONDecodeError as e:
print(f"Failed to parse message: {message}")
print(f"Error: {e}")
# Enable websocket logging only for key info
websocket.enableTrace(False)
ws = websocket.WebSocketApp(
url,
header=headers,
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close
)
print("\n=== Connecting ===")
print(f"URL: {url}")
ws.run_forever()