Справочник API
Реальное время
Пока ни одна модель это не поддерживает
/v1/realtimeИспользуйте эндпоинт Realtime, когда текст и аудио нужно передавать через одно постоянное соединение. Он защищён тем же API-ключом, областью действия ключа, правами на модели и ограничениями частоты запросов, что и HTTP API.
#Подключайтесь со своего сервера
Открывайте WebSocket из доверенного серверного процесса и передавайте Authorization: Bearer с API-ключом во время рукопожатия. Не размещайте долгоживущий API-ключ в браузерном JavaScript: браузер не может безопасно добавить этот заголовок, а встроенный в код ключ может извлечь кто угодно.
import WebSocket from "ws";
const socket = new WebSocket("wss://YOUR_DOMAIN/v1/realtime", {
headers: { Authorization: "Bearer sk-YOUR_KEY" },
});
socket.on("open", () => {
// Send standard Realtime session and conversation events here.
});
socket.on("message", (event) => {
// Forward text / audio deltas to your client.
});#Сессия и поток событий
После подключения отправляйте стандартные события Realtime для сессии и диалога выбранной модели. Пересылайте серверные события в браузер через собственный краткосрочный канал — так ключ платформы и WebSocket к провайдеру остаются под вашим контролем.
1
Подключение
Откройте одно аутентифицированное соединение на сервере.
2
Настройка
Отправьте настройки сессии и входные данные диалога.
3
Пересылка
Пересылайте дельты клиенту и закройте сессию по завершении.
#Переподключайтесь осознанно
WebSocket хранит состояние. Если соединение закрылось, создайте новую сессию и восстановите только то состояние приложения, которое вы намеренно сохранили. Считайте 401, 403, 402 и 429 сигналами о проблеме с аккаунтом или ключом, требующей действий; временные сетевые ошибки и 5xx повторяйте с ограниченной задержкой.
Если живое аудио не нужно, начните с HTTP
Проблема не решена?
Пришлите нам ID запроса или текст ошибки, и мы разберёмся.