Passer au contenu principal
L’API Realtime expose des conversations texte et audio à faible latence compatibles OpenAI via des sessions websocket, ainsi qu’un point de terminaison HTTP pour les jetons clients à courte durée de vie.

Connexion WebSocket

Ouvrez directement une session websocket en temps réel lorsque votre backend peut conserver la clé API DGrid de manière sécurisée.
WSS wss://api.dgrid.ai/v1/realtime?model={model}
AuthorizationAuthorization: Bearer <DGRID_API_KEY>; OpenAI-Beta: realtime=v1
Requêtewebsocket
Réponsewebsocket events

Paramètres de requête

ParamètreTypeRequisDescription
modelstringOuiIdentifiant du modèle temps réel, tel que gpt-4o-realtime-preview.

Événements client

Type d’événementDescription
session.updateMet à jour les options au niveau de la session.
input_audio_buffer.appendDiffuse des fragments audio vers le serveur.
input_audio_buffer.commitValide l’audio actuellement mis en mémoire tampon.
response.createDéclenche une nouvelle réponse de l’assistant.
conversation.item.createInsère un élément de conversation.

Événements serveur

Type d’événementDescription
session.createdLa session a été créée avec succès.
session.updatedLes paramètres de session ont été mis à jour.
response.text.deltaDelta de jeton de texte en flux continu.
response.audio.deltaDelta de fragment audio en flux continu.
response.doneLa réponse est terminée.
errorCharge utile d’erreur.
const ws = new WebSocket(
  'wss://api.dgrid.ai/v1/realtime?model=gpt-4o-realtime-preview',
  [],
  {
    headers: {
      Authorization: `Bearer ${apiKey}`,
      'OpenAI-Beta': 'realtime=v1'
    }
  }
)

ws.onopen = () => {
  ws.send(JSON.stringify({
    type: 'session.update',
    session: {
      modalities: ['text', 'audio'],
      voice: 'alloy'
    }
  }))
}

ws.onmessage = (event) => {
  const data = JSON.parse(event.data)
  console.log('received event:', data)
}

Créer un jeton de session Realtime

Utilisez l’exemple de point de terminaison realtime ci-dessous lorsque vous avez besoin d’une requête GET authentifiée vers le point d’entrée HTTP realtime.
GET /v1/realtime
AuthorizationAuthorization: Bearer <DGRID_API_KEY>
Requêtenone
Réponse101 · application/json

En-têtes de requête

ChampTypeRequisDescription
AuthorizationstringOuiJeton Bearer utilisé pour authentifier la requête realtime.

Corps de la réponse

ChampTypeDescription
101textRéponse de mise à niveau réussie sans corps JSON.
errorobjectCharge utile d’erreur renvoyée en cas d’échec de la requête.
curl -X GET "https://api.dgrid.ai/v1/realtime" \
  -H "Authorization: Bearer "
Empty

Événements WebSocket

Concevez votre client autour d’un petit ensemble de types d’événements de requête et de réponse pour le streaming conversationnel à faible latence.
WSS wss://api.dgrid.ai/v1/realtime?model={model}
AuthorizationAuthorization: Bearer <DGRID_API_KEY>; OpenAI-Beta: realtime=v1
Requêtewebsocket
Réponseevent stream

Événements client principaux

Type d’événementDescription
session.updateMet à jour les modalités, la voix ou d’autres préférences de session.
input_audio_buffer.appendEnvoie des fragments audio encodés.
input_audio_buffer.commitIndique que l’audio mis en mémoire tampon est prêt.
response.createDemande au serveur de commencer à générer une réponse.
conversation.item.createAjoute un tour de conversation ou un résultat d’outil.

Événements serveur principaux

Type d’événementDescription
session.createdConfirmation initiale que la session websocket existe.
session.updatedConfirmation que les paramètres de session ont changé.
response.text.deltaSortie texte incrémentale.
response.audio.deltaSortie audio incrémentale.
response.doneÉvénement final pour une réponse terminée.
errorCharge utile d’erreur récupérable ou fatale.

Recommandations d’intégration

  1. Mettez en mémoire tampon l’audio côté client en petits fragments et utilisez input_audio_buffer.commit pour signaler les limites de tour.
  2. Écoutez à la fois response.text.delta et response.audio.delta si la session prend en charge une sortie multimodale.
  3. Utilisez le point de terminaison HTTP de jeton de session pour les clients navigateur afin que la clé API à longue durée de vie n’atteigne jamais le client.
{
  "type": "response.text.delta",
  "response_id": "resp_123",
  "delta": "Hello"
}