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 que2024-10-01-preview
- Un paramètre de chaîne de requête
deployment
avec le nom de votre modèle de déploiementgpt-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 jetonBearer
avec l’en-têteAuthorization
. - 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.
- En utilisant un en-tête de connexion
É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ôleassistant
) ou de typefunction_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 :
- conversation.item.created
- response.output_item.added
- response.output_item.done
response.created
(via le type de propriétéresponse
RealtimeResponse
)response.done
(via le type de propriétéresponse
RealtimeResponse
)
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
Contenu connexe
- Prise en main du Guide de démarrage rapide de l’API Realtime.
- En savoir plus sur Utilisation de l'API en temps réel.