Partage via


Informations de référence sur l’API en temps réel (préversion)

Remarque

Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service, nous la déconseillons dans des charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

L’API Realtime est une API webSocket qui vous permet d’interagir avec le service Azure OpenAI en temps réel.

L’API Realtime (via /realtime) repose sur l’API WebSockets pour faciliter la communication en continu entièrement asynchrone entre l’utilisateur final et le modèle. Les détails de l’appareil, tels que la capture et le rendu des données audio, sont en dehors de l’étendue de l’API Realtime. Elle doit être utilisée dans le contexte d’un service intermédiaire approuvé qui gère les connexions aux utilisateurs finaux et aux connexions de point de terminaison de modèle. Ne l’utilisez pas directement à partir d’appareils d’utilisateurs finaux non approuvés.

Conseil

Pour bien démarrer avec l’API Realtime, consultez le guide de démarrage rapide et le guide pratique.

Connexion

L’API en temps réel nécessite un point de terminaison de ressource Azure OpenAI existant dans une région prise en charge. L’API est accessible via une connexion WebSocket sécurisée au point de terminaison /realtime de votre ressource Azure OpenAI.

Vous pouvez construire un URI de requête complet en concaténant :

  • Le protocole (wss://) WebSocket sécurisé
  • Votre nom d’hôte de point de terminaison de ressource Azure OpenAI, par exemple, my-aoai-resource.openai.azure.com
  • Le chemin d’accès de l’API openai/realtime
  • Un paramètre de chaîne de requête api-version pour une version d’API prise en charge, telle que 2024-10-01-preview
  • Un paramètre de chaîne de requête deployment avec le nom de votre modèle de déploiement gpt-4o-realtime-preview

L’exemple suivant est un URI de requête /realtime bien construit :

wss://my-eastus2-openai-resource.openai.azure.com/openai/realtime?api-version=2024-10-01-preview&deployment=gpt-4o-realtime-preview-1001

Authentification

Pour s’authentifier :

  • Microsoft Entra (recommandé) : utilisez l’authentification basée sur des jetons avec l’API /realtime pour une ressource Azure OpenAI Service avec l’identité managée activée. Appliquez un jeton d’authentification récupéré à l’aide d’un jeton Bearer avec l’en-tête Authorization.
  • Clé API : une api-key peut être fournie de deux manières :
    • En utilisant un en-tête de connexion api-key sur la connexion de pré-établissement de liaison. Cette option n’est pas disponible dans l’environnement de navigateur.
    • En utilisant un paramètre de chaîne de requête api-key sur l’URI de requête. Les paramètres de chaîne de requête sont chiffrés lors de l’utilisation de https/wss.

Événements du client

Il existe neuf événements clients qui peuvent être envoyés du client au serveur :

Événement Description
RealtimeClientEventConversationItemCreate L’événement client conversation.item.create est utilisé pour ajouter un nouvel élément au contexte de la conversation, y compris des messages, des appels de fonction et des réponses aux appels de fonction.
RealtimeClientEventConversationItemDelete L’événement client conversation.item.delete est utilisé pour supprimer un élément de l’historique de la conversation.
RealtimeClientEventConversationItemTruncate L’événement client conversation.item.truncate est utilisé pour tronquer l’audio d’un message précédent de l’assistant.
RealtimeClientEventInputAudioBufferAppend L’événement client input_audio_buffer.append est utilisé pour ajouter des octets audio à la mémoire tampon audio d’entrée.
RealtimeClientEventInputAudioBufferClear L’événement client input_audio_buffer.clear est utilisé pour effacer les octets audio dans la mémoire tampon.
RealtimeClientEventInputAudioBufferCommit L’événement client input_audio_buffer.commit est utilisé pour valider la mémoire tampon audio d’entrée utilisateur.
RealtimeClientEventResponseCancel L’événement client response.cancel est utilisé pour annuler une réponse en cours.
RealtimeClientEventResponseCreate L’événement client response.create est utilisé pour indiquer au serveur qu’il doit créer une réponse via l’inférence du modèle.
RealtimeClientEventSessionUpdate L’événement client session.update est utilisé pour mettre à jour la configuration par défaut de la session.

RealtimeClientEventConversationItemCreate

L’événement client conversation.item.create est utilisé pour ajouter un nouvel élément au contexte de la conversation, y compris des messages, des appels de fonction et des réponses aux appels de fonction. Cet événement peut être utilisé pour remplir un historique de la conversation et ajouter de nouveaux éléments au milieu du flux. Actuellement, cet événement ne peut pas remplir les messages audio de l’Assistant.

En cas de réussite, le serveur répond avec un événement conversation.item.created, sinon un événement error est envoyé.

Structure d’événements

{
  "type": "conversation.item.create",
  "previous_item_id": "<previous_item_id>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.item.create.
previous_item_id string ID de l’élément précédent après lequel le nouvel élément est inséré. S’il n’est pas défini, le nouvel élément est ajouté à la fin de la conversation. S’il est défini, il permet à un élément d’être inséré au milieu de la conversation. Si l’ID est introuvable, une erreur est retournée et l’élément n’est pas ajouté.
item RealtimeConversationRequestItem Élément à ajouter à la conversation.

RealtimeClientEventConversationItemDelete

L’événement client conversation.item.delete est utilisé pour supprimer un élément de l’historique de la conversation.

Le serveur répond avec un événement conversation.item.deleted, sauf si l’élément n’existe pas dans l’historique des conversations, auquel cas le serveur répond avec une erreur.

Structure d’événements

{
  "type": "conversation.item.delete",
  "item_id": "<item_id>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.item.delete.
item_id string ID de l’élément à supprimer.

RealtimeClientEventConversationItemTruncate

L’événement client conversation.item.truncate est utilisé pour tronquer l’audio d’un message précédent de l’assistant. Le serveur produit de l’audio plus rapidement que en temps réel, de sorte que cet événement est utile lorsque l’utilisateur interrompt la troncation de l’audio qui a été envoyé au client mais qui n’a pas encore été lu. La compréhension du serveur de l’audio avec la lecture du client est synchronisée.

La troncation audio supprime la transcription de texte côté serveur pour s’assurer qu’il n’y a pas de texte dans le contexte auquel l’utilisateur ne sait pas.

Si l’événement client réussit, le serveur répond avec un événement conversation.item.truncated.

Structure d’événements

{
  "type": "conversation.item.truncate",
  "item_id": "<item_id>",
  "content_index": 0,
  "audio_end_ms": 0
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.item.truncate.
item_id string ID de l’élément de message assistant à tronquer. Seuls les éléments de message assistant peuvent être tronqués.
content_index entier Index de la partie de contenu à tronquer. Définit cette propriété sur « 0 ».
audio_end_ms entier Durée inclusive jusqu’à laquelle l’audio est tronqué, en millisecondes. Si le audio_end_ms est supérieur à la durée audio réelle, le serveur répond avec une erreur.

RealtimeClientEventInputAudioBufferAppend

L’événement client input_audio_buffer.append est utilisé pour ajouter des octets audio à la mémoire tampon audio d’entrée. La mémoire tampon audio est un stockage temporaire que vous pouvez écrire dans et valider ultérieurement.

En mode VAD du serveur (détection d’activité vocale), la mémoire tampon audio est utilisée pour détecter la voix et le serveur décide de la validation. Quand le VAD serveur est désactivé, le client peut choisir la quantité d’audio à placer dans chaque événement, jusqu’à un maximum de 15 Mio. Par exemple, la diffusion en continu de blocs plus petits depuis le client peut permettre au VAD d’être plus réactif.

Contrairement à la plupart des événements clients, le serveur n’envoie pas de réponse de confirmation à l’événement client input_audio_buffer.append.

Structure d’événements

{
  "type": "input_audio_buffer.append",
  "audio": "<audio>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être input_audio_buffer.append.
audio string Octets audio codés en base64. Cette valeur doit être au format spécifié par le champ input_audio_format dans la configuration de session.

RealtimeClientEventInputAudioBufferClear

L’événement client input_audio_buffer.clear est utilisé pour effacer les octets audio dans la mémoire tampon.

Le serveur répond avec un événement input_audio_buffer.cleared.

Structure d’événements

{
  "type": "input_audio_buffer.clear"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être input_audio_buffer.clear.

RealtimeClientEventInputAudioBufferCommit

L’événement client input_audio_buffer.commit est utilisé pour valider la mémoire tampon audio d’entrée utilisateur, qui crée un élément de message utilisateur dans la conversation. L’audio est transcrit si input_audio_transcription est configuré pour la session.

Lorsqu’il est en mode VAD du serveur, le client n’a pas besoin d’envoyer cet événement, le serveur valide automatiquement la mémoire tampon audio. Sans VAD serveur, le client doit valider la mémoire tampon audio pour créer un élément de message utilisateur. Cet événement client génère une erreur si la mémoire tampon audio d’entrée est vide.

La validation de la mémoire tampon audio d’entrée ne crée pas de réponse à partir du modèle.

Le serveur répond avec un événement input_audio_buffer.committed.

Structure d’événements

{
  "type": "input_audio_buffer.commit"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être input_audio_buffer.commit.

RealtimeClientEventResponseCancel

L’événement client response.cancel est utilisé pour annuler une réponse en cours.

Le serveur répond avec un événement response.cancelled ou une erreur s’il n’y a aucune réponse à annuler.

Structure d’événements

{
  "type": "response.cancel"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.cancel.

RealtimeClientEventResponseCreate

L’événement client response.create est utilisé pour indiquer au serveur qu’il doit créer une réponse via l’inférence du modèle. Quand la session est configurée en mode VAD serveur, le serveur crée des réponses automatiquement.

Une réponse inclut au moins un item et peut en avoir deux, auquel cas la seconde est un appel de fonction. Ces éléments sont ajoutés à l’historique des conversations.

Le serveur répond avec un événement response.created, un ou plusieurs événements d’élément et de contenu (comme conversation.item.created et response.content_part.added), et enfin un événement response.done pour indiquer que la réponse est terminée.

Remarque

L’événement client response.create inclut la configuration d’inférence, comme instructions et temperature. Ces champs peuvent remplacer la configuration de la session seulement pour cette réponse.

Structure d’événements

{
  "type": "response.create"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.create.
response RealtimeResponseOptions Options de la réponse.

RealtimeClientEventSessionUpdate

L’événement client session.update est utilisé pour mettre à jour la configuration par défaut de la session. Le client peut envoyer cet événement à tout moment pour mettre à jour la configuration de session, et n’importe quel champ peut être mis à jour à tout moment, à l’exception de la voix.

Seuls les champs qui sont présents sont mis à jour. Pour effacer un champ (comme instructions), passez une chaîne vide.

Le serveur répond avec un événement session.updated qui contient la configuration effective complète.

Structure d’événements

{
  "type": "session.update"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être session.update.
session RealtimeRequestSession Configuration de la session.

Événements de serveur

Il existe 28 événements serveur qui peuvent être reçus du serveur :

Événement Description
RealtimeServerEventConversationCreated L’événement serveur conversation.created est retourné juste après la création de la session. Une seule conversation est créée par session.
RealtimeServerEventConversationItemCreated L’événement serveur conversation.item.created est retourné quand un élément de conversation est créé.
RealtimeServerEventConversationItemDeleted L’événement serveur conversation.item.deleted est retourné quand le client a supprimé un élément dans la conversation avec un événement conversation.item.delete.
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted L’événement serveur conversation.item.input_audio_transcription.completed est le résultat de la transcription audio pour le message écrit dans la mémoire tampon audio.
RealtimeServerEventConversationItemInputAudioTranscriptionFailed L’événement serveur conversation.item.input_audio_transcription.failed est retourné quand la transcription audio de l’entrée est configurée et qu’une demande de transcription pour un message utilisateur a échoué.
RealtimeServerEventConversationItemTruncated L’événement serveur conversation.item.truncated est retourné quand le client tronque un élément de message audio antérieur de l’assistant avec un événement conversation.item.truncate.
RealtimeServerEventError L’événement serveur error est retourné quand une erreur se produit, qui peut être un problème client ou un problème serveur.
RealtimeServerEventInputAudioBufferCleared L’événement serveur input_audio_buffer.cleared est retourné quand le client efface la mémoire tampon audio d’entrée avec un événement input_audio_buffer.clear.
RealtimeServerEventInputAudioBufferCommitted L’événement serveur input_audio_buffer.committed est retourné quand une mémoire tampon audio d’entrée est validée par le client ou automatiquement en mode VAD serveur.
RealtimeServerEventInputAudioBufferSpeechStarted L’événement serveur input_audio_buffer.speech_started est retourné en mode server_vad quand un message est détecté dans la mémoire tampon audio.
RealtimeServerEventInputAudioBufferSpeechStopped L’événement serveur input_audio_buffer.speech_stopped est retourné en mode server_vad quand le serveur détecte la fin de du message dans la mémoire tampon audio.
RealtimeServerEventRateLimitsUpdated L’événement serveur rate_limits.updated est émis au début d’une réponse pour indiquer les limites de débit mises à jour.
RealtimeServerEventResponseAudioDelta L’événement serveur response.audio.delta est retourné quand l’audio généré par le modèle est mis à jour.
RealtimeServerEventResponseAudioDone L’événement serveur response.audio.done est retourné quand l’audio généré par le modèle est produit.
RealtimeServerEventResponseAudioTranscriptDelta L’événement serveur response.audio_transcript.delta est retourné quand la transcription générée par le modèle de la sortie audio est mise à jour.
RealtimeServerEventResponseAudioTranscriptDone L’événement serveur response.audio_transcript.done est retourné quand la transcription générée par le modèle de la sortie audio a fait l’objet d’une diffusion en continu.
RealtimeServerEventResponseContentPartAdded L’événement serveur response.content_part.added est retourné quand une nouvelle partie de contenu est ajoutée à un élément de message de l’assistant.
RealtimeServerEventResponseContentPartDone L’événement serveur response.content_part.done est retourné lorsqu’un composant de contenu a fait l’objet d’une diffusion en continu.
RealtimeServerEventResponseCreated L’événement serveur response.created est retourné quand une nouvelle réponse est créée. C’est le premier événement de création d’une réponse, où la réponse est dans l’état initial in_progress.
RealtimeServerEventResponseDone L’événement serveur response.done est retourné quand une réponse a fait l’objet d’une diffusion en continu.
RealtimeServerEventResponseFunctionCallArgumentsDelta L’événement serveur response.function_call_arguments.delta est retourné quand les arguments d’appel de fonction générés par le modèle sont mis à jour.
RealtimeServerEventResponseFunctionCallArgumentsDone L’événement serveur response.function_call_arguments.done est retourné quand les arguments d’appel de fonction générés par le modèle ont fait l’objet d’une diffusion en continu.
RealtimeServerEventResponseOutputItemAdded L’événement serveur response.output_item.added est retourné quand un nouvel élément est créé lors de la génération de la réponse.
RealtimeServerEventResponseOutputItemDone L’événement serveur response.output_item.done est retourné quand un élément a fait l’objet d’une diffusion en continu.
RealtimeServerEventResponseTextDelta L’événement serveur response.text.delta est retourné quand le texte généré par le modèle est mis à jour.
RealtimeServerEventResponseTextDone L’événement serveur response.text.done est retourné quand le texte généré par le modèle a fait l’objet d’une diffusion en continu.
RealtimeServerEventSessionCreated L’événement serveur session.created est le premier événement serveur quand vous établissez une nouvelle connexion à l’API Temps réel. Cet événement crée et retourne une nouvelle session avec la configuration de session par défaut.
RealtimeServerEventSessionUpdated L’événement serveur session.updated est retourné quand une session est mise à jour par le client. En cas d’erreur, le serveur envoie à la place un événement error.

RealtimeServerEventConversationCreated

L’événement serveur conversation.created est retourné juste après la création de la session. Une seule conversation est créée par session.

Structure d’événements

{
  "type": "conversation.created",
  "conversation": {
    "id": "<id>",
    "object": "<object>"
  }
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.created.
conversation object Ressource de conversation.

Propriétés de conversation

Champ Type Description
id string ID unique de la conversation.
object string Le type d’objet doit être realtime.conversation.

RealtimeServerEventConversationItemCreated

L’événement serveur conversation.item.created est retourné quand un élément de conversation est créé. Il existe plusieurs scénarios qui produisent cet événement :

  • Le serveur génère une réponse, qui, si elle réussit, produit un ou deux éléments, qui est de type message (rôle assistant) ou de type function_call.
  • La mémoire tampon audio d’entrée est validée, soit par le client, soit par le serveur (en mode server_vad). Le serveur prend le contenu de la mémoire tampon audio d’entrée et l’ajoute à un nouvel élément de message utilisateur.
  • Le client a envoyé un conversation.item.create événement pour ajouter un nouvel élément à la conversation.

Structure d’événements

{
  "type": "conversation.item.created",
  "previous_item_id": "<previous_item_id>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.item.created.
previous_item_id string L’ID de l’élément précédent dans le contexte de conversation permet au client de comprendre l’ordre de la conversation.
item RealtimeConversationResponseItem Élément qui a été créé.

RealtimeServerEventConversationItemDeleted

L’événement serveur conversation.item.deleted est retourné quand le client a supprimé un élément dans la conversation avec un événement conversation.item.delete. Cet événement est utilisé pour synchroniser la compréhension du serveur de l’historique des conversations avec la vue du client.

Structure d’événements

{
  "type": "conversation.item.deleted",
  "item_id": "<item_id>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.item.deleted.
item_id string ID de l’élément qui a été supprimé.

RealtimeServerEventConversationItemInputAudioTranscriptionCompleted

L’événement serveur conversation.item.input_audio_transcription.completed est le résultat de la transcription audio pour le message écrit dans la mémoire tampon audio.

La transcription commence lorsque la mémoire tampon audio d’entrée est validée par le client ou le serveur (en mode server_vad). La transcription s’exécute de façon asynchrone avec la création de la réponse, ce qui permet à cet événement de se présenter avant ou après les événements de réponse.

Les modèles d’API en temps réel acceptent l’audio en mode natif et par conséquent, la transcription de l’entrée est un processus distinct exécuté sur un modèle de reconnaissance vocale distinct, qui est actuellement toujours whisper-1. Ainsi, la transcription peut différer un peu de l’interprétation du modèle et doit être traitée comme un guide brut.

Structure d’événements

{
  "type": "conversation.item.input_audio_transcription.completed",
  "item_id": "<item_id>",
  "content_index": 0,
  "transcript": "<transcript>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.item.input_audio_transcription.completed.
item_id string ID de l’élément de message utilisateur contenant l’audio.
content_index entier Index de la partie de contenu contenant l’audio.
transcription string Texte transcrit.

RealtimeServerEventConversationItemInputAudioTranscriptionFailed

L’événement serveur conversation.item.input_audio_transcription.failed est retourné quand la transcription audio de l’entrée est configurée et qu’une demande de transcription pour un message utilisateur a échoué. Cet événement est distinct des autres événements error, pour que le client puisse identifier l’élément associé.

Structure d’événements

{
  "type": "conversation.item.input_audio_transcription.failed",
  "item_id": "<item_id>",
  "content_index": 0,
  "error": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>"
  }
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.item.input_audio_transcription.failed.
item_id string ID de l’élément de message utilisateur.
content_index entier Index de la partie de contenu contenant l’audio.
error object Détails de l’erreur de transcription.

Consultez les propriétés imbriquées dans le tableau suivant.

Propriétés des erreurs

Champ Type Description
type string Le type d’erreur.
code string Code d’erreur, le cas échéant.
message string Message d’erreur lisible par un utilisateur.
param string Paramètre lié à l’erreur, le cas échéant.

RealtimeServerEventConversationItemTruncated

L’événement serveur conversation.item.truncated est retourné quand le client tronque un élément de message audio antérieur de l’assistant avec un événement conversation.item.truncate. Cet événement est utilisé pour synchroniser la compréhension du serveur de l’audio avec la lecture du client.

Cet événement tronque l’audio et supprime la transcription en texte du côté serveur pour faire en sorte qu’il n’y ait pas de texte dans le contexte dont l’utilisateur ne sait rien.

Structure d’événements

{
  "type": "conversation.item.truncated",
  "item_id": "<item_id>",
  "content_index": 0,
  "audio_end_ms": 0
}

Propriétés

Champ Type Description
type string Le type d’événement doit être conversation.item.truncated.
item_id string ID de l’élément de message assistant tronqué.
content_index entier Index de la partie de contenu tronquée.
audio_end_ms entier Durée jusqu’à laquelle l’audio a été tronqué, en millisecondes.

RealtimeServerEventError

L’événement serveur error est retourné quand une erreur se produit, qui peut être un problème client ou un problème serveur. La plupart des erreurs sont récupérables et la session reste ouverte.

Structure d’événements

{
  "type": "error",
  "error": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>",
    "event_id": "<event_id>"
  }
}

Propriétés

Champ Type Description
type string Le type d’événement doit être error.
error object Détails de l’erreur.

Consultez les propriétés imbriquées dans le tableau suivant.

Propriétés des erreurs

Champ Type Description
type string Le type d’erreur. Par exemple, « invalid_request_error » et « server_error » sont des types d’erreurs.
code string Code d’erreur, le cas échéant.
message string Message d’erreur lisible par un utilisateur.
param string Paramètre lié à l’erreur, le cas échéant.
event_id string ID de l’événement client qui a provoqué l’erreur, le cas échéant.

RealtimeServerEventInputAudioBufferCleared

L’événement serveur input_audio_buffer.cleared est retourné quand le client efface la mémoire tampon audio d’entrée avec un événement input_audio_buffer.clear.

Structure d’événements

{
  "type": "input_audio_buffer.cleared"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être input_audio_buffer.cleared.

RealtimeServerEventInputAudioBufferCommitted

L’événement serveur input_audio_buffer.committed est retourné quand une mémoire tampon audio d’entrée est validée par le client ou automatiquement en mode VAD serveur. La propriété item_id est l’ID de l’élément de message utilisateur créé. Par conséquent, un conversation.item.created événement est également envoyé au client.

Structure d’événements

{
  "type": "input_audio_buffer.committed",
  "previous_item_id": "<previous_item_id>",
  "item_id": "<item_id>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être input_audio_buffer.committed.
previous_item_id string ID de l’élément précédent après lequel le nouvel élément est inséré.
item_id string ID de l’élément de message utilisateur créé.

RealtimeServerEventInputAudioBufferSpeechStarted

L’événement serveur input_audio_buffer.speech_started est retourné en mode server_vad quand un message est détecté dans la mémoire tampon audio. Cet événement peut se produire chaque fois que l’audio est ajouté à la mémoire tampon (sauf si la voix est déjà détectée).

Remarque

Le client peut utiliser cet événement pour interrompre la lecture audio ou fournir un retour visuel à l’utilisateur.

Le client doit s’attendre à recevoir un événement input_audio_buffer.speech_stopped lorsque la reconnaissance vocale s’arrête. La propriété item_id est l’ID de l’élément de message utilisateur créé quand le message s’arrête. Le item_id est également inclus dans l’événement input_audio_buffer.speech_stopped, sauf si le client valide manuellement la mémoire tampon audio lors de l’activation de VAD.

Structure d’événements

{
  "type": "input_audio_buffer.speech_started",
  "audio_start_ms": 0,
  "item_id": "<item_id>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être input_audio_buffer.speech_started.
audio_start_ms entier Millisecondes à partir du début de l’audio écrit dans la mémoire tampon pendant la session lors de la détection de la parole. Cette propriété correspond au début de l’audio envoyé au modèle, et inclut ainsi la configuration prefix_padding_ms dans la session.
item_id string ID de l’élément de message utilisateur créé lors de l’arrêt de la reconnaissance vocale.

RealtimeServerEventInputAudioBufferSpeechStopped

L’événement serveur input_audio_buffer.speech_stopped est retourné en mode server_vad quand le serveur détecte la fin de du message dans la mémoire tampon audio.

Le serveur envoie également un événement conversation.item.created avec l’élément de message utilisateur créé à partir de la mémoire tampon audio.

Structure d’événements

{
  "type": "input_audio_buffer.speech_stopped",
  "audio_end_ms": 0,
  "item_id": "<item_id>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être input_audio_buffer.speech_stopped.
audio_end_ms entier Millisecondes depuis le démarrage de la session lors de l’arrêt de la reconnaissance vocale. Cette propriété correspond à la fin de l’audio envoyé au modèle, et inclut donc la configuration min_silence_duration_ms dans la session.
item_id string ID de l’élément de message utilisateur créé.

RealtimeServerEventRateLimitsUpdated

L’événement serveur rate_limits.updated est émis au début d’une réponse pour indiquer les limites de débit mises à jour.

Quand une réponse est créée, certains jetons sont réservés aux jetons de sortie. Les limites de débit montrées ici reflètent cette réservation, qui est ensuite ajustée en conséquence une fois la réponse terminée.

Structure d’événements

{
  "type": "rate_limits.updated",
  "rate_limits": [
    {
      "name": "<name>",
      "limit": 0,
      "remaining": 0,
      "reset_seconds": 0
    }
  ]
}

Propriétés

Champ Type Description
type string Le type d’événement doit être rate_limits.updated.
rate_limits Tableau de RealtimeServerEventRateLimitsUpdatedRateLimitsItem Liste des informations de limite de débit.

RealtimeServerEventResponseAudioDelta

L’événement serveur response.audio.delta est retourné quand l’audio généré par le modèle est mis à jour.

Structure d’événements

{
  "type": "response.audio.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.audio.delta.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
delta string Delta des données audio encodées en base64.

RealtimeServerEventResponseAudioDone

L’événement serveur response.audio.done est retourné quand l’audio généré par le modèle est produit.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

Structure d’événements

{
  "type": "response.audio.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.audio.done.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.

RealtimeServerEventResponseAudioTranscriptDelta

L’événement serveur response.audio_transcript.delta est retourné quand la transcription générée par le modèle de la sortie audio est mise à jour.

Structure d’événements

{
  "type": "response.audio_transcript.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.audio_transcript.delta.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
delta string Delta de transcription.

RealtimeServerEventResponseAudioTranscriptDone

L’événement serveur response.audio_transcript.done est retourné quand la transcription générée par le modèle de la sortie audio a fait l’objet d’une diffusion en continu.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

Structure d’événements

{
  "type": "response.audio_transcript.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "transcript": "<transcript>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.audio_transcript.done.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
transcription string Transcription finale de l’audio.

RealtimeServerEventResponseContentPartAdded

L’événement serveur response.content_part.added est retourné quand une nouvelle partie de contenu est ajoutée à un élément de message de l’assistant pendant la génération de la réponse.

Structure d’événements

{
  "type": "response.content_part.added",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.content_part.added.
response_id string ID de la réponse.
item_id string ID de l’élément auquel la partie de contenu a été ajoutée.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
partie RealtimeContentPart Partie de contenu ajoutée.

Propriétés de la partie

Champ Type Description
type RealtimeContentPartType

RealtimeServerEventResponseContentPartDone

L’événement serveur response.content_part.done est retourné quand une partie de contenu a fait l’objet d’une diffusion en continu dans un élément de message de l’assistant.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

Structure d’événements

{
  "type": "response.content_part.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.content_part.done.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
partie RealtimeContentPart Partie de contenu qui est effectuée.

Propriétés de la partie

Champ Type Description
type RealtimeContentPartType

RealtimeServerEventResponseCreated

L’événement serveur response.created est retourné quand une nouvelle réponse est créée. C’est le premier événement de création d’une réponse, où la réponse est dans l’état initial in_progress.

Structure d’événements

{
  "type": "response.created"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.created.
response RealtimeResponse Objet de réponse.

RealtimeServerEventResponseDone

L’événement serveur response.done est retourné quand une réponse a fait l’objet d’une diffusion en continu. Cet événement est toujours émis, quel que soit l’état final. L’objet de réponse inclus dans l’événement response.done inclut tous les éléments de sortie de la réponse, mais omet les données audio brutes.

Structure d’événements

{
  "type": "response.done"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.done.
response RealtimeResponse Objet de réponse.

RealtimeServerEventResponseFunctionCallArgumentsDelta

L’événement serveur response.function_call_arguments.delta est retourné quand les arguments d’appel de fonction générés par le modèle sont mis à jour.

Structure d’événements

{
  "type": "response.function_call_arguments.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "call_id": "<call_id>",
  "delta": "<delta>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.function_call_arguments.delta.
response_id string ID de la réponse.
item_id string ID de l’élément d’appel de fonction.
output_index entier Index de l’élément de sortie dans la réponse.
call_id string ID de l’appel de fonction.
delta string Arguments delta sous forme de chaîne JSON.

RealtimeServerEventResponseFunctionCallArgumentsDone

L’événement serveur response.function_call_arguments.done est retourné quand les arguments d’appel de fonction générés par le modèle ont fait l’objet d’une diffusion en continu.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

Structure d’événements

{
  "type": "response.function_call_arguments.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "call_id": "<call_id>",
  "arguments": "<arguments>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.function_call_arguments.done.
response_id string ID de la réponse.
item_id string ID de l’élément d’appel de fonction.
output_index entier Index de l’élément de sortie dans la réponse.
call_id string ID de l’appel de fonction.
arguments string Arguments finaux sous forme de chaîne JSON.

RealtimeServerEventResponseOutputItemAdded

L’événement serveur response.output_item.added est retourné quand un nouvel élément est créé lors de la génération de la réponse.

Structure d’événements

{
  "type": "response.output_item.added",
  "response_id": "<response_id>",
  "output_index": 0
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.output_item.added.
response_id string ID de la réponse à laquelle appartient l’élément.
output_index entier Index de l’élément de sortie dans la réponse.
item RealtimeConversationResponseItem Élément qui a été ajouté.

RealtimeServerEventResponseOutputItemDone

L’événement serveur response.output_item.done est retourné quand un élément a fait l’objet d’une diffusion en continu.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

Structure d’événements

{
  "type": "response.output_item.done",
  "response_id": "<response_id>",
  "output_index": 0
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.output_item.done.
response_id string ID de la réponse à laquelle appartient l’élément.
output_index entier Index de l’élément de sortie dans la réponse.
item RealtimeConversationResponseItem L’élément qui a fait l’objet d’une diffusion en continu.

RealtimeServerEventResponseTextDelta

L’événement serveur response.text.delta est retourné quand le texte généré par le modèle est mis à jour. Le texte correspond à la partie de contenu text d’un élément de message de l’assistant.

Structure d’événements

{
  "type": "response.text.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.text.delta.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
delta string Delta de texte.

RealtimeServerEventResponseTextDone

L’événement serveur response.text.done est retourné quand le texte généré par le modèle a fait l’objet d’une diffusion en continu. Le texte correspond à la partie de contenu text d’un élément de message de l’assistant.

Cet événement est également retourné quand une réponse est interrompue, incomplète ou annulée.

Structure d’événements

{
  "type": "response.text.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "text": "<text>"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être response.text.done.
response_id string ID de la réponse.
item_id string ID de l'élément.
output_index entier Index de l’élément de sortie dans la réponse.
content_index entier Index du composant de contenu dans le tableau de contenu de l’élément.
texte string Contenu du texte final.

RealtimeServerEventSessionCreated

L’événement serveur session.created est le premier événement serveur quand vous établissez une nouvelle connexion à l’API Temps réel. Cet événement crée et retourne une nouvelle session avec la configuration de session par défaut.

Structure d’événements

{
  "type": "session.created"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être session.created.
session RealtimeResponseSession Objet de session.

RealtimeServerEventSessionUpdated

L’événement serveur session.updated est retourné quand une session est mise à jour par le client. En cas d’erreur, le serveur envoie à la place un événement error.

Structure d’événements

{
  "type": "session.updated"
}

Propriétés

Champ Type Description
type string Le type d’événement doit être session.updated.
session RealtimeResponseSession Objet de session.

Composants

RealtimeAudioFormat

Valeurs autorisées :

  • pcm16
  • g711_ulaw
  • g711_alaw

RealtimeAudioInputTranscriptionModel

Valeurs autorisées :

  • whisper-1

RealtimeAudioInputTranscriptionSettings

Champ Type Description
modèle RealtimeAudioInputTranscriptionModel Le modèle whisper-1 par défaut est actuellement le seul modèle pris en charge pour la transcription d’une entrée audio.

RealtimeClientEvent

Champ Type Description
type RealtimeClientEventType Type de l’événement client.
event_id string ID unique de l’événement. Le client peut spécifier l’ID pour identifier l’événement.

RealtimeClientEventType

Valeurs autorisées :

  • session.update
  • input_audio_buffer.append
  • input_audio_buffer.commit
  • input_audio_buffer.clear
  • conversation.item.create
  • conversation.item.delete
  • conversation.item.truncate
  • response.create
  • response.cancel

RealtimeContentPart

Champ Type Description
type RealtimeContentPartType Type du contenu.

Propriété de l’objet function.

Valeurs autorisées : input_text, input_audio, item_reference, text.
texte string Texte. Cette propriété s’applique aux types de contenu input_text et text.
id string ID d’un élément de conversation précédent à référencer dans les éléments créés par le client et le serveur. Cette propriété s’applique au type de contenu item_reference dans les événements response.create.
audio string Les octets audio codés en base64. Cette propriété s’applique au type de contenu input_audio.
transcription string Transcription de l’audio. Cette propriété s’applique au type de contenu input_audio.

RealtimeContentPartType

Valeurs autorisées :

  • input_text
  • input_audio
  • text
  • audio

RealtimeConversationItemBase

Élément à ajouter à la conversation.

Ce tableau décrit toutes les propriétés RealtimeConversationItem. Les propriétés applicables par événement dépendent de RealtimeItemType.

Champ Type Description
id string ID unique de l’élément. Le client peut spécifier l’ID pour gérer le contexte côté serveur. Si le client ne fournit pas d’ID, le serveur en génère un.
type RealtimeItemType Type de l’élément.

Valeurs autorisées : message, function_call, function_call_output.
object string Identificateur de l’objet API retourné. La valeur est toujours realtime.item.
statut RealtimeItemStatus État de l’élément. Ce champ n’affecte pas la conversation, mais il est accepté pour la cohérence avec l’événement conversation.item.created.

Valeurs autorisées : completed, incomplete
role RealtimeMessageRole Rôle de l’expéditeur du message. Cette propriété s’applique uniquement aux éléments message.

Valeurs autorisées : system, user, assistant.
content tableau de RealtimeContentPart Contenu du message. Cette propriété s’applique uniquement aux éléments message.

– Les éléments de message du rôle system prennent uniquement en charge le contenu input_text.
– Les éléments de message du rôle user prennent en charge le contenu input_text et input_audio.
– Les éléments de message du rôle assistant prennent en charge le contenu text.
call_id string ID de l’appel de fonction (pour les éléments function_call et function_call_output). Si vous avez transmis un élément function_call_output, le serveur vérifie qu’un élément function_call avec le même ID existe dans l’historique des conversations.
name chaîne Nom de la fonction qui est appelée (pour les éléments function_call).
arguments string Arguments de l’élément d’appel de fonction (pour les éléments function_call).
output string Sortie de l’élément d’appel de fonction (pour les éléments function_call_output).

RealtimeConversationRequestItem

Vous utilisez l’objet RealtimeConversationRequestItem pour créer un élément dans la conversation via l’événement conversation.item.create.

Champ Type Description
type RealtimeItemType Type de l’élément.
id string ID unique de l’élément. Le client peut spécifier l’ID pour gérer le contexte côté serveur. Si le client ne fournit pas d’ID, le serveur en génère un.

RealtimeConversationResponseItem

L’objet RealtimeConversationResponseItem représente un élément dans la conversation. Il est utilisé dans certains des événements de serveur, tels que :

Champ Type Description
object string Identificateur de l’objet API retourné.

Valeurs autorisées : realtime.item
type RealtimeItemType Type de l’élément.

Valeurs autorisées : message, function_call, function_call_output.
id string ID unique de l’élément. Le client peut spécifier l’ID pour gérer le contexte côté serveur. Si le client ne fournit pas d’ID, le serveur en génère un.

Cette propriété est nullable.

RealtimeFunctionTool

Définition d’un outil de fonction tel qu’utilisé par le point de terminaison en temps réel.

Champ Type Description
type string Type de l'outil.

Valeurs autorisées : function
name chaîne Nom de la fonction.
description string Description de la fonction, y compris les instructions d’utilisation. Par exemple, « Utilisez cette fonction pour obtenir l’heure actuelle ».
parameters object Paramètres de la fonction sous la forme d’un objet JSON.

RealtimeItemStatus

Valeurs autorisées :

  • in_progress
  • completed
  • incomplete

RealtimeItemType

Valeurs autorisées :

  • message
  • function_call
  • function_call_output

RealtimeMessageRole

Valeurs autorisées :

  • system
  • user
  • assistant

RealtimeRequestAssistantMessageItem

Champ Type Description
role string Rôle du message.

Valeurs autorisées : assistant
content Tableau de RealtimeRequestTextContentPart Contenu du message.

RealtimeRequestAudioContentPart

Champ Type Description
type string Le type de la partie contenu.

Valeurs autorisées : input_audio
transcription string Transcription de l’audio.

RealtimeRequestFunctionCallItem

Champ Type Description
type string Type de l’élément.

Valeurs autorisées : function_call
name chaîne Nom de l’élément d’appel de fonction.
call_id string ID de l’élément d’appel de fonction.
arguments string Arguments de l’élément d’appel de fonction.
statut RealtimeItemStatus État de l’élément.

RealtimeRequestFunctionCallOutputItem

Champ Type Description
type string Type de l’élément.

Valeurs autorisées : function_call_output
call_id string ID de l’élément d’appel de fonction.
output string Sortie de l’élément d’appel de fonction.

RealtimeRequestMessageItem

Champ Type Description
type string Type de l’élément.

Valeurs autorisées : message
role RealtimeMessageRole Rôle du message.
statut RealtimeItemStatus État de l’élément.

RealtimeRequestMessageReferenceItem

Champ Type Description
type string Type de l’élément.

Valeurs autorisées : message
id string ID de l’élément du message.

RealtimeRequestSession

Vous utilisez l’objet RealtimeRequestSession lorsque vous souhaitez mettre à jour la configuration de session via l’événement session.update.

Champ Type Description
modalités tableau Modalités prises en charge par la session.

Valeurs autorisées : text, audio

Par exemple, "modalities": ["text", "audio"] est le paramètre par défaut qui active à la fois les modalités de texte et d’audio. Pour activer uniquement la modalité texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer seulement la modalité audio.
détaillées string Les instructions (le message système) pour guider les réponses texte et audio du modèle.

Voici quelques exemples d’instructions pour guider le contenu et le format des réponses texte et audio :
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Voici quelques exemples d’instructions pour guider le comportement audio :
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Bien que le modèle ne suive pas toujours ces instructions, elles fournissent de l’aide sur le comportement souhaité.
voice RealtimeVoice Voix utilisée pour la réponse du modèle pour la session.

Une fois que la voix est utilisée dans la session pour la réponse audio du modèle, elle ne peut pas être changée.
input_audio_format RealtimeAudioFormat Format de l’entrée audio.
output_audio_format RealtimeAudioFormat Format de la sortie audio.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Paramètres de transcription de l’entrée audio.

Cette propriété est nullable.
turn_detection RealtimeTurnDetection Paramètres de détection du tour pour la session.

Cette propriété est nullable.
tools Tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix d’outil pour la session.

Valeurs autorisées : auto, none et required. Sinon, vous pouvez indiquer le nom de la fonction à utiliser.
température nombre Échantillonnage de température à utiliser. Les valeurs de température autorisées sont limitées à [0,6, 1,2]. La valeur par défaut est 0,8.
max_response_output_tokens Entier ou « inf » Le nombre maximal de jetons de sortie par réponse de l’assistant, y compris dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4 096 pour limiter les jetons de sortie. Sinon, définissez la valeur sur « inf » pour autoriser le nombre maximal de jetons.

Par exemple, pour limiter les jetons de sortie à 1 000, définissez "max_response_output_tokens": 1000. Pour autoriser le nombre maximal de jetons, définissez "max_response_output_tokens": "inf".

La valeur par défaut est "inf".

RealtimeRequestSystemMessageItem

Champ Type Description
role string Rôle du message.

Valeurs autorisées : system
content Tableau de RealtimeRequestTextContentPart Contenu du message.

RealtimeRequestTextContentPart

Champ Type Description
type string Le type de la partie contenu.

Valeurs autorisées : input_text
texte string Texte.

RealtimeRequestUserMessageItem

Champ Type Description
role string Rôle du message.

Valeurs autorisées : user
content Tableau de RealtimeRequestTextContentPart ou RealtimeRequestAudioContentPart Contenu du message.

RealtimeResponse

Champ Type Description
object string Objet de réponse.

Valeurs autorisées : realtime.response
id string ID unique de la réponse.
statut RealtimeResponseStatus État de la réponse.

La valeur par défaut de l’état est in_progress.
status_details RealtimeResponseStatusDetails Détails de l’état de la réponse.

Cette propriété est nullable.
output Tableau de RealtimeConversationResponseItem Éléments de sortie de la réponse.
utilisation object Statistiques d’utilisation pour la réponse. Chaque session de l’API Temps réel gère un contexte de conversation et ajoute de nouveaux éléments à la conversation. La sortie des tours précédents (jetons texte et audio) est l’entrée pour les tours ultérieurs.

Consultez les propriétés imbriquées suivantes.
+ total_tokens entier Nombre total de jetons dans la réponse, y compris les jetons texte et audio d’entrée et de sortie.

Propriété de l’objet usage.
+ input_tokens entier Nombre de jetons d’entrée utilisés dans la réponse, y compris les jetons texte et audio.

Propriété de l’objet usage.
+ output_tokens entier Nombre de jetons de sortie envoyés dans la réponse, y compris les jetons texte et audio.

Propriété de l’objet usage.
+ input_token_details object Détails sur les jetons d’entrée utilisés dans la réponse.

Propriété de l’objet usage.
br>
Consultez les propriétés imbriquées suivantes.
+ cached_tokens entier Nombre de jetons mis en cache utilisés dans la réponse.

Propriété de l’objet input_token_details.
+ text_tokens entier Nombre de jetons texte utilisés dans la réponse.

Propriété de l’objet input_token_details.
+ audio_tokens entier Nombre de jetons audio utilisés dans la réponse.

Propriété de l’objet input_token_details.
+ output_token_details object Détails sur les jetons de sortie utilisés dans la réponse.

Propriété de l’objet usage.

Consultez les propriétés imbriquées suivantes.
+ text_tokens entier Nombre de jetons texte utilisés dans la réponse.

Propriété de l’objet output_token_details.
+ audio_tokens entier Nombre de jetons audio utilisés dans la réponse.

Propriété de l’objet output_token_details.

RealtimeResponseAudioContentPart

Champ Type Description
type string Le type de la partie contenu.

Valeurs autorisées : audio
transcription string Transcription de l’audio.

Cette propriété est nullable.

RealtimeResponseBase

Ressource de réponse.

RealtimeResponseFunctionCallItem

Champ Type Description
type string Type de l’élément.

Valeurs autorisées : function_call
name chaîne Nom de l’élément d’appel de fonction.
call_id string ID de l’élément d’appel de fonction.
arguments string Arguments de l’élément d’appel de fonction.
statut RealtimeItemStatus État de l’élément.

RealtimeResponseFunctionCallOutputItem

Champ Type Description
type string Type de l’élément.

Valeurs autorisées : function_call_output
call_id string ID de l’élément d’appel de fonction.
output string Sortie de l’élément d’appel de fonction.

RealtimeResponseMessageItem

Champ Type Description
type string Type de l’élément.

Valeurs autorisées : message
role RealtimeMessageRole Rôle du message.
content tableau Contenu du message.

Éléments de tableau : RealtimeResponseTextContentPart
statut RealtimeItemStatus État de l’élément.

RealtimeResponseOptions

Champ Type Description
modalités tableau Modalités prises en charge par la session.

Valeurs autorisées : text, audio

Par exemple, "modalities": ["text", "audio"] est le paramètre par défaut qui active à la fois les modalités de texte et d’audio. Pour activer uniquement la modalité texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer seulement la modalité audio.
détaillées string Les instructions (le message système) pour guider les réponses texte et audio du modèle.

Voici quelques exemples d’instructions pour guider le contenu et le format des réponses texte et audio :
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Voici quelques exemples d’instructions pour guider le comportement audio :
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Bien que le modèle ne suive pas toujours ces instructions, elles fournissent de l’aide sur le comportement souhaité.
voice RealtimeVoice Voix utilisée pour la réponse du modèle pour la session.

Une fois que la voix est utilisée dans la session pour la réponse audio du modèle, elle ne peut pas être changée.
output_audio_format RealtimeAudioFormat Format de la sortie audio.
tools Tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix d’outil pour la session.
température nombre Échantillonnage de température à utiliser. Les valeurs de température autorisées sont limitées à [0,6, 1,2]. La valeur par défaut est 0,8.
max__output_tokens Entier ou « inf » Le nombre maximal de jetons de sortie par réponse de l’assistant, y compris dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4 096 pour limiter les jetons de sortie. Sinon, définissez la valeur sur « inf » pour autoriser le nombre maximal de jetons.

Par exemple, pour limiter les jetons de sortie à 1 000, définissez "max_response_output_tokens": 1000. Pour autoriser le nombre maximal de jetons, définissez "max_response_output_tokens": "inf".

La valeur par défaut est "inf".
conversation string Contrôle la conversation à laquelle la réponse est ajoutée. Les valeurs prises en charge sont auto et none.

La valeur auto (ou ne pas définir cette propriété) garantit que le contenu de la réponse est ajouté à la conversation par défaut de la session.

Définissez cette propriété sur none pour créer une réponse hors bande où les éléments ne seront pas ajoutés à la conversation par défaut. Pour plus d’informations, consultez le guide pratique.

La valeur par défaut est "auto"
metadata map Ensemble de jusqu’à 16 paires clé-valeur pouvant être attachées à un objet. Cela peut être utile pour stocker des informations supplémentaires sur l'objet dans un format structuré. Les clés peuvent contenir au maximum 64 caractères et les valeurs peuvent contenir au maximum 512 caractères.

Par exemple : metadata: { topic: "classification" }
input tableau Éléments d’entrée à inclure dans l’invite du modèle. Crée un contexte pour cette réponse, sans inclure la conversation par défaut. Peut inclure des références à des éléments de la conversation par défaut.

Éléments de tableau : RealtimeConversationItemBase

RealtimeResponseSession

L’objet RealtimeResponseSession représente une session dans l’API Realtime. Il est utilisé dans certains des événements de serveur, tels que :

Champ Type Description
object string Objet de session.

Valeurs autorisées : realtime.session
id string ID unique de la session.
modèle string Modèle utilisé pour la session.
modalités tableau Modalités prises en charge par la session.

Valeurs autorisées : text, audio

Par exemple, "modalities": ["text", "audio"] est le paramètre par défaut qui active à la fois les modalités de texte et d’audio. Pour activer uniquement la modalité texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer seulement la modalité audio.
détaillées string Les instructions (le message système) pour guider les réponses texte et audio du modèle.

Voici quelques exemples d’instructions pour guider le contenu et le format des réponses texte et audio :
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Voici quelques exemples d’instructions pour guider le comportement audio :
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Bien que le modèle ne suive pas toujours ces instructions, elles fournissent de l’aide sur le comportement souhaité.
voice RealtimeVoice Voix utilisée pour la réponse du modèle pour la session.

Une fois que la voix est utilisée dans la session pour la réponse audio du modèle, elle ne peut pas être changée.
input_audio_format RealtimeAudioFormat Format de l’entrée audio.
output_audio_format RealtimeAudioFormat Format de la sortie audio.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Paramètres de transcription de l’entrée audio.

Cette propriété est nullable.
turn_detection RealtimeTurnDetection Paramètres de détection du tour pour la session.

Cette propriété est nullable.
tools Tableau de RealtimeTool Outils disponibles pour le modèle pour la session.
tool_choice RealtimeToolChoice Choix d’outil pour la session.
température nombre Échantillonnage de température à utiliser. Les valeurs de température autorisées sont limitées à [0,6, 1,2]. La valeur par défaut est 0,8.
max_response_output_tokens Entier ou « inf » Le nombre maximal de jetons de sortie par réponse de l’assistant, y compris dans les appels d’outils.

Spécifiez un entier compris entre 1 et 4 096 pour limiter les jetons de sortie. Sinon, définissez la valeur sur « inf » pour autoriser le nombre maximal de jetons.

Par exemple, pour limiter les jetons de sortie à 1 000, définissez "max_response_output_tokens": 1000. Pour autoriser le nombre maximal de jetons, définissez "max_response_output_tokens": "inf".

RealtimeResponseStatus

Valeurs autorisées :

  • in_progress
  • completed
  • cancelled
  • incomplete
  • failed

RealtimeResponseStatusDetails

Champ Type Description
type RealtimeResponseStatus État de la réponse.

RealtimeResponseTextContentPart

Champ Type Description
type string Le type de la partie contenu.

Valeurs autorisées : text
texte string Texte.

RealtimeServerEvent

Champ Type Description
type RealtimeServerEventType Type de l’événement serveur.
event_id string ID unique de l’événement de serveur.

RealtimeServerEventRateLimitsUpdatedRateLimitsItem

Champ Type Description
name chaîne Nom de la propriété limite de débit sur laquelle cet élément contient des informations.
limit entier Limite maximale configurée pour cette propriété de limite de débit.
restant entier Quota restant disponible par rapport à la limite configurée pour cette propriété de limite de débit.
reset_seconds nombre Temps restant, en secondes, jusqu’à ce que cette propriété de limite de débit soit réinitialisée.

RealtimeServerEventType

Valeurs autorisées :

  • session.created
  • session.updated
  • conversation.created
  • conversation.item.created
  • conversation.item.deleted
  • conversation.item.truncated
  • response.created
  • response.done
  • rate_limits.updated
  • response.output_item.added
  • response.output_item.done
  • response.content_part.added
  • response.content_part.done
  • response.audio.delta
  • response.audio.done
  • response.audio_transcript.delta
  • response.audio_transcript.done
  • response.text.delta
  • response.text.done
  • response.function_call_arguments.delta
  • response.function_call_arguments.done
  • input_audio_buffer.speech_started
  • input_audio_buffer.speech_stopped
  • conversation.item.input_audio_transcription.completed
  • conversation.item.input_audio_transcription.failed
  • input_audio_buffer.committed
  • input_audio_buffer.cleared
  • error

RealtimeServerVadTurnDetection

Champ Type Description
type string Type de détection du tour.

Valeurs autorisées : server_vad
threshold nombre Seuil d’activation pour la détection de tour VAD du serveur. Dans les environnements bruyants, il peut être nécessaire d’augmenter le seuil pour éviter les faux positifs. Dans les environnements calmes, il peut être nécessaire de diminuer le seuil pour éviter les faux négatifs.

La valeur par défaut est 0.5. Vous pouvez définir le seuil sur une valeur comprise entre 0.0 et 1.0.
prefix_padding_ms string Durée de l’audio du message (en millisecondes) à inclure avant le début du message détecté.

La valeur par défaut est 300.
silence_duration_ms string Durée du silence (en millisecondes) pour détecter la fin du message. Vous souhaitez détecter la fin du message dès que possible mais pas trop tôt, afin d’éviter de couper la dernière partie du message.

Le modèle va répondre plus rapidement si vous définissez cette valeur sur un nombre moins élevé, mais il pourrait couper la dernière partie du message. Si vous définissez cette valeur sur un nombre plus élevé, le modèle va attendre plus longtemps pour détecter la fin du message, mais il pourrait prendre plus de temps pour répondre.

RealtimeSessionBase

Configuration de l’objet session en temps réel.

RealtimeTool

Représentation de base d’une définition d’outil en temps réel.

Champ Type Description
type RealtimeToolType Type de l'outil.

RealtimeToolChoice

Ensemble combiné de représentations disponibles pour un paramètre tool_choice en temps réel, englobant les deux options littérales de chaîne comme « auto » et les références structurées aux outils définis.

RealtimeToolChoiceFunctionObject

Représentation d’un tool_choice en temps réel sélectionnant un outil de fonction nommé.

Champ Type Description
type string Type de tool_choice.

Valeurs autorisées : function
function object Outil de fonction à sélectionner.

Consultez les propriétés imbriquées suivantes.
+ name string Nom de l’outil de fonction.

Propriété de l’objet function.

RealtimeToolChoiceLiteral

Ensemble disponible d’options de littéral de chaîne tool_choice de type mode pour le point de terminaison en temps réel.

Valeurs autorisées :

  • auto
  • none
  • required

RealtimeToolChoiceObject

Représentation de base pour un tool_choice en temps réel sélectionnant un outil nommé.

Champ Type Description
type RealtimeToolType Type de tool_choice.

RealtimeToolType

Les discriminateurs de type d’outil pris en charge pour les outils en temps réel. Actuellement, seuls les outils « function » sont pris en charge.

Valeurs autorisées :

  • function

RealtimeTurnDetection

Champ Type Description
type RealtimeTurnDetectionType Type de détection du tour.

Valeurs autorisées : server_vad
threshold nombre Seuil d’activation pour la détection de tour VAD du serveur. Dans les environnements bruyants, il peut être nécessaire d’augmenter le seuil pour éviter les faux positifs. Dans les environnements calmes, il peut être nécessaire de diminuer le seuil pour éviter les faux négatifs.

La valeur par défaut est 0.5. Vous pouvez définir le seuil sur une valeur comprise entre 0.0 et 1.0.
prefix_padding_ms string Durée de l’audio du message (en millisecondes) à inclure avant le début du message détecté.

La valeur par défaut est 300 millisecondes.
silence_duration_ms string Durée du silence (en millisecondes) pour détecter la fin du message. Vous souhaitez détecter la fin du message dès que possible mais pas trop tôt, afin d’éviter de couper la dernière partie du message.

Le modèle va répondre plus rapidement si vous définissez cette valeur sur un nombre moins élevé, mais il pourrait couper la dernière partie du message. Si vous définissez cette valeur sur un nombre plus élevé, le modèle va attendre plus longtemps pour détecter la fin du message, mais il pourrait prendre plus de temps pour répondre.

La valeur par défaut est 500 millisecondes.
create_response booléen Indique si le serveur crée automatiquement une réponse lorsque VAD est activé et que la reconnaissance vocale s’arrête.

La valeur par défaut est true.

RealtimeTurnDetectionType

Valeurs autorisées :

  • server_vad

RealtimeVoice

Valeurs autorisées :

  • alloy
  • ash
  • ballad
  • coral
  • echo
  • sage
  • shimmer
  • verse