Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’API Voice live fournit une communication bidirectionnelle en temps réel pour les applications compatibles vocales à l’aide de connexions WebSocket. Cette API prend en charge les fonctionnalités avancées, notamment la reconnaissance vocale, la synthèse vocale, la diffusion d’avatars, les données d’animation et les fonctionnalités complètes de traitement audio.
L’API utilise des événements au format JSON envoyés via des connexions WebSocket pour gérer les conversations, les flux audio, les interactions d’avatar et les réponses en temps réel. Les événements sont classés en événements clients (envoyés du client au serveur) et des événements serveur (envoyés du serveur au client).
Principales fonctionnalités
- Traitement audio en temps réel : prise en charge de plusieurs formats audio, y compris PCM16 à différents taux d’échantillonnage et codecs G.711
- Options vocales avancées : voix OpenAI, voix personnalisées Azure, voix standard Azure et voix personnelles Azure
- Intégration d’avatar : diffusion en continu d’avatars webRTC avec vidéo, animation et blendshapes
- Détection intelligente de tour : plusieurs options VAD, notamment la détection sémantique Azure et la détection côté serveur
- Amélioration audio : réduction du bruit intégrée et annulation d’écho
- Appel de fonction : Intégration d’outils pour des fonctionnalités conversationnelles améliorées
- Gestion de session flexible : modalités configurables, instructions et paramètres de réponse
Événements clients
L’API Voice live prend en charge les événements clients suivants qui peuvent être envoyés du client au serveur :
| Événement | Descriptif |
|---|---|
| session.update | Mettre à jour la configuration de session, y compris la voix, les modalités, la détection de tour et d’autres paramètres |
| session.avatar.connect | Établir une connexion d’avatar en fournissant le SDP client pour la négociation WebRTC |
| input_audio_buffer.append | Ajouter des octets audio à la mémoire tampon audio d’entrée |
| input_audio_buffer.commit | Valider la mémoire tampon audio d’entrée pour le traitement |
| input_audio_buffer.clear | Effacer la mémoire tampon audio d’entrée |
| conversation.item.create | Ajouter un nouvel élément au contexte de conversation |
| conversation.item.retrieve | Récupérer un élément spécifique de la conversation |
| conversation.item.truncate | Tronquer un message audio assistant |
| conversation.item.delete | Supprimer un élément de la conversation |
| response.create | Demander au serveur de créer une réponse via l’inférence du modèle |
| response.cancel | Annuler une réponse en cours |
| mcp_approval_response | Envoyer une approbation ou un rejet pour un appel d’outil MCP qui nécessite une approbation |
session.update
Mettez à jour la configuration de la session. Cet événement peut être envoyé à tout moment pour modifier des paramètres tels que la voix, les modalités, la détection de tour, les outils et d’autres paramètres de session. Notez qu’une fois qu’une session est initialisée avec un modèle particulier, elle ne peut pas être modifiée en un autre modèle.
Structure d’événements
{
"type": "session.update",
"session": {
"modalities": ["text", "audio"],
"voice": {
"type": "openai",
"name": "alloy"
},
"instructions": "You are a helpful assistant. Be concise and friendly.",
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"input_audio_sampling_rate": 24000,
"turn_detection": {
"type": "azure_semantic_vad",
"threshold": 0.5,
"prefix_padding_ms": 300,
"silence_duration_ms": 500
},
"temperature": 0.8,
"max_response_output_tokens": "inf"
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "session.update" |
| session | RealtimeRequestSession | Objet de configuration de session avec des champs à mettre à jour |
Exemple avec Azure Custom Voice
{
"type": "session.update",
"session": {
"voice": {
"type": "azure-custom",
"name": "my-custom-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"temperature": 0.7,
"style": "cheerful"
},
"input_audio_noise_reduction": {
"type": "azure_deep_noise_suppression"
},
"avatar": {
"character": "lisa",
"customized": false,
"video": {
"resolution": {
"width": 1920,
"height": 1080
},
"bitrate": 2000000
}
}
}
}
session.avatar.connect
Établissez une connexion d’avatar en fournissant l’offre SDP (Protocole de description de session) du client pour la négociation multimédia WebRTC. Cet événement est requis lors de l’utilisation des fonctionnalités d’avatar.
Structure d’événements
{
"type": "session.avatar.connect",
"client_sdp": "<client_sdp>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "session.avatar.connect" |
| client_sdp | ficelle | Offre SDP du client pour l’établissement de connexions WebRTC |
input_audio_buffer.append
Ajoutez des octets audio à la mémoire tampon audio d’entrée.
Structure d’événements
{
"type": "input_audio_buffer.append",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "input_audio_buffer.append" |
| audio | ficelle | Données audio encodées en base64 |
input_audio_buffer.commit
Validez la mémoire tampon audio d’entrée pour le traitement.
Structure d’événements
{
"type": "input_audio_buffer.commit"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "input_audio_buffer.commit" |
input_audio_buffer.clear
Effacez la mémoire tampon audio d’entrée.
Structure d’événements
{
"type": "input_audio_buffer.clear"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "input_audio_buffer.clear" |
conversation.item.create
Ajoutez un nouvel élément au contexte de conversation. Cela peut inclure des messages, des appels de fonction et des réponses d’appel de fonction. Les éléments peuvent être insérés à des positions spécifiques dans l’historique des conversations.
Structure d’événements
{
"type": "conversation.item.create",
"previous_item_id": "item_ABC123",
"item": {
"id": "item_DEF456",
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello, how are you?"
}
]
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "conversation.item.create" |
| previous_item_id | ficelle | Optional. ID de l’élément après lequel insérer cet élément. S’il n’est pas fourni, ajoute à la fin |
| item | RealtimeConversationRequestItem | Élément à ajouter à la conversation |
Exemple avec du contenu audio
{
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello there"
}
]
}
}
Exemple avec l’appel de fonction
{
"type": "conversation.item.create",
"item": {
"type": "function_call",
"name": "get_weather",
"call_id": "call_123",
"arguments": "{\"location\": \"San Francisco\", \"unit\": \"celsius\"}"
}
}
Exemple avec l’appel MCP
{
"type": "conversation.item.create",
"item": {
"type": "mcp_call",
"approval_request_id": null,
"arguments": "",
"server_label": "deepwiki",
"name": "ask_question",
"output": null,
"error": null
}
}
conversation.item.retrieve
Récupérez un élément spécifique à partir de l’historique des conversations. Cela est utile pour inspecter l’audio traité après l’annulation du bruit et VAD.
Structure d’événements
{
"type": "conversation.item.retrieve",
"item_id": "item_ABC123"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "conversation.item.retrieve" |
| item_id | ficelle | ID de l’élément à récupérer |
conversation.item.truncate
Tronquer le contenu audio d’un message assistant. Cela est utile pour arrêter la lecture à un point spécifique et synchroniser la compréhension du serveur avec l’état du client.
Structure d’événements
{
"type": "conversation.item.truncate",
"item_id": "item_ABC123",
"content_index": 0,
"audio_end_ms": 5000
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "conversation.item.truncate" |
| item_id | ficelle | ID de l’élément de message assistant à tronquer |
| content_index | entier | Index de la partie de contenu à tronquer |
| audio_end_ms | entier | Durée jusqu’à laquelle tronquer l’audio, en millisecondes |
conversation.item.delete
Supprimez un élément de l’historique des conversations.
Structure d’événements
{
"type": "conversation.item.delete",
"item_id": "item_ABC123"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "conversation.item.delete" |
| item_id | ficelle | ID de l’élément à supprimer |
response.create
Demandez au serveur de créer une réponse via l’inférence du modèle. Cet événement peut spécifier une configuration spécifique à la réponse qui remplace les valeurs par défaut de session.
Structure d’événements
{
"type": "response.create",
"response": {
"modalities": ["text", "audio"],
"instructions": "Be extra helpful and detailed.",
"voice": {
"type": "openai",
"name": "alloy"
},
"output_audio_format": "pcm16",
"temperature": 0.7,
"max_response_output_tokens": 1000
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.create" |
| response | RealtimeResponseOptions | Configuration de réponse facultative qui remplace les valeurs par défaut de session |
Exemple avec le choix de l’outil
{
"type": "response.create",
"response": {
"modalities": ["text"],
"tools": [
{
"type": "function",
"name": "get_current_time",
"description": "Get the current time",
"parameters": {
"type": "object",
"properties": {}
}
}
],
"tool_choice": "get_current_time",
"temperature": 0.3
}
}
Exemple avec animation
{
"type": "response.create",
"response": {
"modalities": ["audio", "animation"],
"animation": {
"model_name": "default",
"outputs": ["blendshapes", "viseme_id"]
},
"voice": {
"type": "azure-custom",
"name": "my-expressive-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"style": "excited"
}
}
}
response.cancel
Annulez une réponse en cours. Cela arrête immédiatement la génération de réponse et la sortie audio associée.
Structure d’événements
{
"type": "response.cancel"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.cancel" |
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être conversation.item.retrieve. |
| item_id | ficelle | ID de l’élément à récupérer. |
| event_id | ficelle | ID de l'événement. |
RealtimeClientEventConversationItemTruncate
L’événement client conversation.item.truncate est utilisé pour tronquer l’audio d’un message assistant précédent. 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 conversation.item.truncated événement.
Structure d’événements
{
"type": "conversation.item.truncate",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être conversation.item.truncate. |
| item_id | ficelle | 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éfinissez 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. Lorsque le serveur VAD 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 à partir du client peut permettre au VAD d’être plus réactif.
Contrairement à la plupart des autres é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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être input_audio_buffer.append. |
| audio | ficelle | Octets audio codés en base64. Cette valeur doit être au format spécifié par le input_audio_format champ 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 input_audio_buffer.cleared événement.
Structure d’événements
{
"type": "input_audio_buffer.clear"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | 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, ce qui crée un élément de message utilisateur dans la conversation. L’audio est transcrit s’il 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 du 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 input_audio_buffer.committed événement.
Structure d’événements
{
"type": "input_audio_buffer.commit"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | 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 response.done événement avec l’état response.status=cancelled.
Structure d’événements
{
"type": "response.cancel"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.cancel. |
RealtimeClientEventResponseCreate
L’événement client response.create est utilisé pour indiquer au serveur de créer une réponse via l’inférence du modèle. Lorsque la session est configurée en mode VAD du serveur, le serveur crée automatiquement des réponses.
Une réponse inclut au moins un item, et peut avoir deux, auquel cas le second est un appel de fonction. Ces éléments sont ajoutés à l’historique des conversations.
Le serveur répond avec un response.created événement, un ou plusieurs événements d’élément et de contenu (tels que conversation.item.created et response.content_part.added) et enfin un response.done événement pour indiquer que la réponse est terminée.
Structure d’événements
{
"type": "response.create"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.create. |
| response | RealtimeResponseOptions | Options de 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 présents sont mis à jour. Pour effacer un champ (par exemple instructions), passez une chaîne vide.
Le serveur répond avec un session.updated événement qui contient la configuration effective complète.
Structure d’événements
{
"type": "session.update"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être session.update. |
| session | RealtimeRequestSession | Configuration de session. |
Événements de serveur
L’API Voice live envoie les événements de serveur suivants pour communiquer l’état, les réponses et les données au client :
| Événement | Descriptif |
|---|---|
| erreur | Indique qu’une erreur s’est produite pendant le traitement |
| session.created | Envoyé lorsqu’une nouvelle session est correctement établie |
| session.updated | Envoyé lorsque la configuration de session est mise à jour |
| session.avatar.connecting | Indique que la connexion WebRTC d’avatar est établie |
| conversation.item.created | Envoyé lorsqu’un nouvel élément est ajouté à la conversation |
| conversation.item.retrieved | Réponse à la requête conversation.item.retrieve |
| conversation.item.tronqué | Confirme la troncation d’élément |
| conversation.item.deleted | Confirme la suppression d’élément |
| conversation.item.input_audio_transcription.completed | La transcription audio d’entrée est terminée |
| conversation.item.input_audio_transcription.delta | Transcription audio d’entrée en streaming |
| conversation.item.input_audio_transcription.failed | Échec de la transcription audio d’entrée |
| input_audio_buffer.commit | La mémoire tampon audio d’entrée a été validée pour le traitement |
| input_audio_buffer.cleared | La mémoire tampon audio d’entrée a été effacée |
| input_audio_buffer.speech_started | Reconnaissance vocale détectée dans la mémoire tampon audio d’entrée (VAD) |
| input_audio_buffer.speech_stop | La reconnaissance vocale s’est terminée dans la mémoire tampon audio d’entrée (VAD) |
| response.created | La nouvelle génération de réponse a démarré |
| response.done | La génération de réponse est terminée |
| response.output_item.added | Nouvel élément de sortie ajouté à la réponse |
| response.output_item.done | L’élément de sortie est terminé |
| response.content_part.added | Nouvelle partie de contenu ajoutée à l’élément de sortie |
| response.content_part.done | La partie contenu est terminée |
| response.text.delta | Diffusion en continu du contenu texte à partir du modèle |
| response.text.done | Le contenu du texte est terminé |
| response.audio_transcript.delta | Transcription audio de diffusion en continu |
| response.audio_transcript.done | La transcription audio est terminée |
| response.audio.delta | Diffusion en continu du contenu audio à partir du modèle |
| response.audio.done | Le contenu audio est complet |
| response.animation_blendshapes.delta | Données blendshapes d’animation de streaming |
| response.animation_blendshapes.done | Les données blendshapes d’animation sont terminées |
| response.audio_timestamp.delta | Informations d’horodatage audio en streaming |
| response.audio_timestamp.done | Les informations d’horodatage audio sont complètes |
| response.animation_viseme.delta | Données de viseme d’animation de streaming |
| response.animation_viseme.done | Les données de viseme d’animation sont terminées |
| response.function_call_arguments.delta | Arguments d’appel de fonction de streaming |
| response.function_call_arguments.done | Les arguments d’appel de fonction sont terminés |
| mcp_list_tools.in_progress | La liste des outils MCP est en cours |
| mcp_list_tools.completed | La liste des outils MCP est terminée |
| mcp_list_tools.failed | Échec de la liste des outils MCP |
| response.mcp_call_arguments.delta | Arguments d’appel MCP de streaming |
| response.mcp_call_arguments.done | Les arguments d’appel MCP sont terminés |
| response.mcp_call.in_progress | L’appel MCP est en cours |
| response.mcp_call.completed | L’appel MCP est terminé |
| response.mcp_call.failed | Échec de l’appel MCP |
session.created
Envoyé lorsqu’une nouvelle session est correctement établie. Il s’agit du premier événement reçu après la connexion à l’API.
Structure d’événements
{
"type": "session.created",
"session": {
"id": "sess_ABC123DEF456",
"object": "realtime.session",
"model": "gpt-realtime",
"modalities": ["text", "audio"],
"instructions": "You are a helpful assistant.",
"voice": {
"type": "openai",
"name": "alloy"
},
"input_audio_format": "pcm16",
"output_audio_format": "pcm16",
"input_audio_sampling_rate": 24000,
"turn_detection": {
"type": "azure_semantic_vad",
"threshold": 0.5,
"prefix_padding_ms": 300,
"silence_duration_ms": 500
},
"temperature": 0.8,
"max_response_output_tokens": "inf"
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "session.created" |
| session | RealtimeResponseSession | Objet de session créé |
session.updated
Envoyé lorsque la configuration de session est correctement mise à jour en réponse à un session.update événement client.
Structure d’événements
{
"type": "session.updated",
"session": {
"id": "sess_ABC123DEF456",
"voice": {
"type": "azure-custom",
"name": "my-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012"
},
"temperature": 0.7,
"avatar": {
"character": "lisa",
"customized": false
}
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "session.updated" |
| session | RealtimeResponseSession | Objet de session mis à jour |
session.avatar.connecting
Indique qu’une connexion WebRTC d’avatar est établie. Cet événement est envoyé en réponse à un session.avatar.connect événement client.
Structure d’événements
{
"type": "session.avatar.connecting",
"server_sdp": "<server_sdp>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "session.avatar.connecting" |
conversation.item.created
Envoyé lorsqu’un nouvel élément est ajouté à la conversation, via un événement client conversation.item.create ou automatiquement pendant la génération de réponse.
Structure d’événements
{
"type": "conversation.item.created",
"previous_item_id": "item_ABC123",
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Hello, how are you?"
}
]
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "conversation.item.created" |
| previous_item_id | ficelle | ID de l’élément après lequel cet élément a été inséré |
| item | RealtimeConversationResponseItem | Élément de conversation créé |
Exemple avec l’élément audio
{
"type": "conversation.item.created",
"item": {
"id": "item_GHI789",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": null,
"transcript": "What's the weather like today?"
}
]
}
}
conversation.item.retrieved
Envoyé en réponse à un conversation.item.retrieve événement client, en fournissant l’élément de conversation demandé.
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "conversation.item.created" |
| item | RealtimeConversationResponseItem | Élément de conversation créé |
conversation.item.tronqué
L’événement serveur conversation.item.truncated est retourné lorsque le client tronque un élément de message audio assistant antérieur avec un conversation.item.truncate événement. 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 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.
Structure d’événements
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être conversation.item.truncated. |
| item_id | ficelle | 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. |
conversation.item.deleted
Envoyé en réponse à un conversation.item.delete événement client, confirmant que l’élément spécifié a été supprimé de la conversation.
Structure d’événements
{
"type": "conversation.item.deleted",
"item_id": "item_ABC123"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "conversation.item.deleted" |
| item_id | ficelle | ID de l’élément supprimé |
response.created
Envoyé lorsqu’une nouvelle génération de réponse commence. Il s’agit du premier événement d’une séquence de réponse.
Structure d’événements
{
"type": "response.created",
"response": {
"id": "resp_ABC123",
"object": "realtime.response",
"status": "in_progress",
"status_details": null,
"output": [],
"usage": {
"total_tokens": 0,
"input_tokens": 0,
"output_tokens": 0
}
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.created" |
| response | RealtimeResponse | Objet réponse qui a été créé |
response.done
Envoyé lorsque la génération de réponse est terminée. Cet événement contient la réponse finale avec tous les éléments de sortie et les statistiques d’utilisation.
Structure d’événements
{
"type": "response.done",
"response": {
"id": "resp_ABC123",
"object": "realtime.response",
"status": "completed",
"status_details": null,
"output": [
{
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
]
}
],
"usage": {
"total_tokens": 87,
"input_tokens": 52,
"output_tokens": 35,
"input_token_details": {
"cached_tokens": 0,
"text_tokens": 45,
"audio_tokens": 7
},
"output_token_details": {
"text_tokens": 15,
"audio_tokens": 20
}
}
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.done" |
| response | RealtimeResponse | Objet de réponse terminé |
response.output_item.added
Envoyé lorsqu’un nouvel élément de sortie est ajouté à la réponse pendant la génération.
Structure d’événements
{
"type": "response.output_item.added",
"response_id": "resp_ABC123",
"output_index": 0,
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "in_progress",
"role": "assistant",
"content": []
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.output_item.added" |
| response_id | ficelle | ID de la réponse à laquelle cet élément appartient |
| output_index | entier | Index de l’élément dans le tableau de sortie de la réponse |
| item | RealtimeConversationResponseItem | Élément de sortie ajouté |
response.output_item.done
Envoyé lorsqu’un élément de sortie est terminé.
Structure d’événements
{
"type": "response.output_item.done",
"response_id": "resp_ABC123",
"output_index": 0,
"item": {
"id": "item_DEF456",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! I'm doing well, thank you for asking."
}
]
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.output_item.done" |
| response_id | ficelle | ID de la réponse à laquelle cet élément appartient |
| output_index | entier | Index de l’élément dans le tableau de sortie de la réponse |
| item | RealtimeConversationResponseItem | Élément de sortie terminé |
response.content_part.added
L’événement de serveur response.content_part.added est retourné lorsqu’une nouvelle partie de contenu est ajoutée à un élément de message assistant pendant la génération de réponse.
Structure d’événements
{
"type": "response.content_part.added",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"part": {
"type": "text",
"text": ""
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.content_part.added" |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément auquel appartient cette partie de contenu |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index de cette partie de contenu dans l’élément |
| part | RealtimeContentPart | Partie de contenu ajoutée |
response.content_part.done
L’événement de serveur response.content_part.done est retourné lorsqu’une partie de contenu est effectuée en continu dans un élément de message assistant.
Cet événement est également retourné lorsqu’une réponse est interrompue, incomplète ou annulée.
Structure d’événements
{
"type": "response.content_part.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"part": {
"type": "text",
"text": "Hello! I'm doing well, thank you for asking."
}
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.content_part.done" |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément auquel appartient cette partie de contenu |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index de cette partie de contenu dans l’élément |
| part | RealtimeContentPart | Composant de contenu terminé |
response.text.delta
Diffusion en continu du contenu texte à partir du modèle. Envoyé de façon incrémentielle à mesure que le modèle génère du texte.
Structure d’événements
{
"type": "response.text.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.text.delta" |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
| delta | ficelle | Contenu de texte incrémentiel |
response.text.done
Envoyé lorsque la génération de contenu de texte est terminée.
Structure d’événements
{
"type": "response.text.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.text.done" |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
| texte | ficelle | Contenu de texte complet |
response.audio.delta
Diffusion en continu du contenu audio à partir du modèle. L’audio est fourni en tant que données encodées en base64.
Structure d’événements
{
"type": "response.audio.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.audio.delta" |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
| delta | ficelle | Bloc de données audio encodé en base64 |
response.audio.done
Envoyé lorsque la génération de contenu audio est terminée.
Structure d’événements
{
"type": "response.audio.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.audio.done" |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
response.audio_transcript.delta
Transcription de streaming du contenu audio généré.
Structure d’événements
{
"type": "response.audio_transcript.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm doing"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.audio_transcript.delta" |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
| delta | ficelle | Texte de transcription incrémentielle |
response.audio_transcript.done
Envoyé lorsque la génération de transcription audio est terminée.
Structure d’événements
{
"type": "response.audio_transcript.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"transcript": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "response.audio_transcript.done" |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
| transcript | ficelle | Texte de transcription complet |
conversation.item.input_audio_transcription.completed
L’événement serveur conversation.item.input_audio_transcription.completed est le résultat de la transcription audio pour la reconnaissance vocale écrite 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 server_vad mode). 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 d’entrée est un processus distinct exécuté sur un modèle de reconnaissance vocale distinct tel que 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être conversation.item.input_audio_transcription.completed. |
| item_id | ficelle | ID de l’élément de message utilisateur contenant l’audio. |
| content_index | entier | Index de la partie de contenu contenant l’audio. |
| transcript | ficelle | Texte transcrit. |
conversation.item.input_audio_transcription.delta
L’événement serveur conversation.item.input_audio_transcription.delta est retourné lorsque la transcription audio d’entrée est configurée et qu’une demande de transcription pour un message utilisateur est en cours. Cet événement fournit des résultats de transcription partielles dès qu’ils deviennent disponibles.
Structure d’événements
{
"type": "conversation.item.input_audio_transcription.delta",
"item_id": "<item_id>",
"content_index": 0,
"delta": "<delta>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être conversation.item.input_audio_transcription.delta. |
| item_id | ficelle | ID de l’élément de message utilisateur. |
| content_index | entier | Index de la partie de contenu contenant l’audio. |
| delta | ficelle | Texte de transcription incrémentielle. |
conversation.item.input_audio_transcription.failed
L’événement serveur conversation.item.input_audio_transcription.failed est retourné lorsque la transcription audio d’entrée est configurée et qu’une demande de transcription pour un message utilisateur a échoué. Cet événement est distinct des autres error événements afin 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être conversation.item.input_audio_transcription.failed. |
| item_id | ficelle | ID de l’élément de message utilisateur. |
| content_index | entier | Index de la partie de contenu contenant l’audio. |
| erreur | objet | Détails de l’erreur de transcription. Consultez les propriétés imbriquées dans le tableau suivant. |
Propriétés de l’erreur
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type d’erreur. |
| code | ficelle | Code d’erreur, le cas échéant. |
| Message | ficelle | Message d’erreur lisible par un utilisateur. |
| param | ficelle | Paramètre lié à l’erreur, le cas échéant. |
response.animation_blendshapes.delta
L’événement de serveur response.animation_blendshapes.delta est retourné lorsque le modèle génère des données blendshapes d’animation dans le cadre d’une réponse. Cet événement fournit des données blendshapes incrémentielles au fur et à mesure qu’il devient disponible.
Structure d’événements
{
"type": "response.animation_blendshapes.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"frame_index": 0,
"frames": [
[0.0, 0.1, 0.2, ..., 1.0]
...
]
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.animation_blendshapes.delta. |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
| frame_index | entier | Index du premier frame dans ce lot d’images |
| Cadres | tableau de tableau de float | Tableau de trames blendshape, chaque image est un tableau de valeurs blendshape |
response.animation_blendshapes.done
L’événement de serveur response.animation_blendshapes.done est retourné lorsque le modèle a terminé la génération de données blendshapes d’animation dans le cadre d’une réponse.
Structure d’événements
{
"type": "response.animation_blendshapes.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.animation_blendshapes.done. |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
response.audio_timestamp.delta
L’événement serveur response.audio_timestamp.delta est retourné lorsque le modèle génère des données d’horodatage audio dans le cadre d’une réponse. Cet événement fournit des données d’horodatage incrémentielles pour l’alignement audio et texte de sortie au fur et à mesure qu’il devient disponible.
Structure d’événements
{
"type": "response.audio_timestamp.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"audio_offset_ms": 0,
"audio_duration_ms": 500,
"text": "Hello",
"timestamp_type": "word"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.audio_timestamp.delta. |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
| audio_offset_ms | entier | Décalage audio en millisecondes à partir du début de l’audio |
| audio_duration_ms | entier | Durée du segment audio en millisecondes |
| texte | ficelle | Segment de texte correspondant à cet horodatage audio |
| timestamp_type | ficelle | Le type d’horodatage, actuellement, seul « word » est pris en charge |
response.audio_timestamp.done
Envoyé lorsque la génération d’horodatage audio est terminée.
Structure d’événements
{
"type": "response.audio_timestamp.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.audio_timestamp.done. |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
response.animation_viseme.delta
L’événement de serveur response.animation_viseme.delta est retourné lorsque le modèle génère des données de viseme d’animation dans le cadre d’une réponse. Cet événement fournit des données de viseme incrémentielles au fur et à mesure qu’il devient disponible.
Structure d’événements
{
"type": "response.animation_viseme.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"audio_offset_ms": 0,
"viseme_id": 1
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.animation_viseme.delta. |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
| audio_offset_ms | entier | Décalage audio en millisecondes à partir du début de l’audio |
| viseme_id | entier | ID de viseme correspondant à la forme de bouche pour l’animation |
response.animation_viseme.done
L’événement de serveur response.animation_viseme.done est retourné lorsque le modèle a fini de générer des données de viseme d’animation dans le cadre d’une réponse.
Structure d’événements
{
"type": "response.animation_viseme.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.animation_viseme.done. |
| response_id | ficelle | ID de la réponse |
| item_id | ficelle | ID de l’élément |
| output_index | entier | Index de l’élément dans la réponse |
| content_index | entier | Index du composant de contenu |
L’événement de serveur response.animation_viseme.delta est retourné lorsque le modèle génère des données de viseme d’animation dans le cadre d’une réponse. Cet événement fournit des données de viseme incrémentielles au fur et à mesure qu’il devient disponible.
erreur
L’événement serveur error est retourné lorsqu’une erreur se produit, ce qui peut être un problème client ou un problème de 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être error. |
| erreur | objet | Détails de l’erreur. Consultez les propriétés imbriquées dans le tableau suivant. |
Propriétés de l’erreur
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type d’erreur. Par exemple, « invalid_request_error » et « server_error » sont des types d’erreurs. |
| code | ficelle | Code d’erreur, le cas échéant. |
| Message | ficelle | Message d’erreur lisible par un utilisateur. |
| param | ficelle | Paramètre lié à l’erreur, le cas échéant. |
| event_id | ficelle | ID de l’événement client qui a provoqué l’erreur, le cas échéant. |
input_audio_buffer.cleared
L’événement serveur input_audio_buffer.cleared est retourné lorsque le client efface la mémoire tampon audio d’entrée avec un input_audio_buffer.clear événement.
Structure d’événements
{
"type": "input_audio_buffer.cleared"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être input_audio_buffer.cleared. |
input_audio_buffer.commit
L’événement de serveur input_audio_buffer.committed est retourné lorsqu’une mémoire tampon audio d’entrée est validée par le client ou automatiquement en mode VAD du serveur. La item_id propriété 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être input_audio_buffer.committed. |
| previous_item_id | ficelle | ID de l’élément précédent après lequel le nouvel élément est inséré. |
| item_id | ficelle | ID de l’élément de message utilisateur créé. |
input_audio_buffer.speech_started
L’événement de serveur input_audio_buffer.speech_started est retourné en server_vad mode lorsque la reconnaissance vocale est détectée 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).
Note
Le client peut utiliser cet événement pour interrompre la lecture audio ou fournir des commentaires visuels à l’utilisateur.
Le client doit s’attendre à recevoir un input_audio_buffer.speech_stopped événement lorsque la reconnaissance vocale s’arrête. La item_id propriété est l’ID de l’élément de message utilisateur créé lors de l’arrêt de la reconnaissance vocale. Il 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 vaD.
Structure d’événements
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | 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 prefix_padding_ms configuration dans la session. |
| item_id | ficelle | ID de l’élément de message utilisateur créé lors de l’arrêt de la reconnaissance vocale. |
input_audio_buffer.speech_stop
L’événement de serveur input_audio_buffer.speech_stopped est retourné en server_vad mode lorsque le serveur détecte la fin de la reconnaissance vocale dans la mémoire tampon audio.
Le serveur envoie également un conversation.item.created événement 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | 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 min_silence_duration_ms configuration dans la session. |
| item_id | ficelle | ID de l’élément de message utilisateur créé. |
rate_limits.updated
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.
Lorsqu’une réponse est créée, certains jetons sont réservés aux jetons de sortie. Les limites de débit indiqué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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être rate_limits.updated. |
| rate_limits | array of RealtimeRateLimitsItem | Liste des informations sur la limite de débit. |
response.audio.delta
L’événement de serveur response.audio.delta est retourné lorsque 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.audio.delta. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | 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 | ficelle | Delta des données audio encodées en base64. |
response.audio.done
L’événement serveur response.audio.done est retourné lorsque l’audio généré par le modèle est terminé.
Cet événement est également retourné lorsqu’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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.audio.done. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | 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. |
response.audio_transcript.delta
L’événement serveur response.audio_transcript.delta est retourné lorsque la transcription générée par le modèle de 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.audio_transcript.delta. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | 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 | ficelle | Delta de transcription. |
response.audio_transcript.done
L’événement de serveur response.audio_transcript.done est retourné lorsque la transcription générée par le modèle de sortie audio est effectuée en streaming.
Cet événement est également retourné lorsqu’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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.audio_transcript.done. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | 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. |
| transcript | ficelle | Transcription finale de l’audio. |
response.function_call_arguments.delta
L’événement serveur response.function_call_arguments.delta est retourné lorsque 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.function_call_arguments.delta. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | 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 | ficelle | ID de l’appel de fonction. |
| delta | ficelle | Arguments delta sous forme de chaîne JSON. |
response.function_call_arguments.done
L’événement de serveur response.function_call_arguments.done est retourné lorsque les arguments d’appel de fonction générés par le modèle sont terminés en streaming.
Cet événement est également retourné lorsqu’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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.function_call_arguments.done. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | 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 | ficelle | ID de l’appel de fonction. |
| arguments | ficelle | Arguments finaux sous forme de chaîne JSON. |
mcp_list_tools.in_progress
L’événement de serveur mcp_list_tools.in_progress est retourné lorsque le service commence à répertorier les outils disponibles à partir d’un serveur mcp.
Structure d’événements
{
"type": "mcp_list_tools.in_progress",
"item_id": "<mcp_list_tools_item_id>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être mcp_list_tools.in_progress. |
| item_id | ficelle | ID de l’élément d’outils de liste MCP en cours de traitement. |
mcp_list_tools.completed
L’événement de serveur mcp_list_tools.completed est retourné lorsque le service termine la liste des outils disponibles à partir d’un serveur mcp.
Structure d’événements
{
"type": "mcp_list_tools.completed",
"item_id": "<mcp_list_tools_item_id>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être mcp_list_tools.completed. |
| item_id | ficelle | ID de l’élément d’outils de liste MCP en cours de traitement. |
mcp_list_tools.failed
L’événement de serveur mcp_list_tools.failed est retourné lorsque le service ne parvient pas à répertorier les outils disponibles à partir d’un serveur mcp.
Structure d’événements
{
"type": "mcp_list_tools.failed",
"item_id": "<mcp_list_tools_item_id>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être mcp_list_tools.failed. |
| item_id | ficelle | ID de l’élément d’outils de liste MCP en cours de traitement. |
response.mcp_call_arguments.delta
L’événement de serveur response.mcp_call_arguments.delta est retourné lorsque les arguments d’appel de l’outil mcp générés par le modèle sont mis à jour.
Structure d’événements
{
"type": "response.mcp_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"delta": "<delta>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.mcp_call_arguments.delta. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | ID de l’élément d’appel de l’outil mcp. |
| output_index | entier | Index de l’élément de sortie dans la réponse. |
| delta | ficelle | Arguments delta sous forme de chaîne JSON. |
response.mcp_call_arguments.done
L’événement de serveur response.mcp_call_arguments.done est retourné lorsque les arguments d’appel de l’outil mcp générés par le modèle sont terminés en streaming.
Structure d’événements
{
"type": "response.mcp_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"arguments": "<arguments>"
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.mcp_call_arguments.done. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | ID de l’élément d’appel de l’outil mcp. |
| output_index | entier | Index de l’élément de sortie dans la réponse. |
| arguments | ficelle | Arguments finaux sous forme de chaîne JSON. |
response.mcp_call.in_progress
L’événement de serveur response.mcp_call.in_progress est retourné lorsqu’un appel d’outil MCP démarre le traitement.
Structure d’événements
{
"type": "response.mcp_call.in_progress",
"item_id": "<item_id>",
"output_index": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.mcp_call.in_progress. |
| item_id | ficelle | ID de l’élément d’appel de l’outil mcp. |
| output_index | entier | Index de l’élément de sortie dans la réponse. |
response.mcp_call.completed
L’événement de serveur response.mcp_call.completed est retourné lorsqu’un appel d’outil MCP se termine correctement.
Structure d’événements
{
"type": "response.mcp_call.completed",
"item_id": "<item_id>",
"output_index": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.mcp_call.completed. |
| item_id | ficelle | ID de l’élément d’appel de l’outil mcp. |
| output_index | entier | Index de l’élément de sortie dans la réponse. |
response.mcp_call.failed
L’événement de serveur response.mcp_call.failed est retourné lorsqu’un appel d’outil MCP échoue.
Structure d’événements
{
"type": "response.mcp_call.failed",
"item_id": "<item_id>",
"output_index": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.mcp_call.failed. |
| item_id | ficelle | ID de l’élément d’appel de l’outil mcp. |
| output_index | entier | Index de l’élément de sortie dans la réponse. |
response.output_item.added
L’événement de serveur response.output_item.added est retourné lorsqu’un nouvel élément est créé pendant la génération de réponse.
Structure d’événements
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Propriétés
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.output_item.added. |
| response_id | ficelle | 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 ajouté. |
response.output_item.done
L’événement de serveur response.output_item.done est retourné lorsqu’un élément est terminé en streaming.
Cet événement est également retourné lorsqu’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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.output_item.done. |
| response_id | ficelle | 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 est effectué en streaming. |
response.text.delta
L’événement serveur response.text.delta est retourné lorsque le texte généré par le modèle est mis à jour. Le texte correspond à la text partie de contenu d’un élément de message 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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.text.delta. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | 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 | ficelle | Delta de texte. |
response.text.done
L’événement de serveur response.text.done est retourné lorsque le texte généré par le modèle est terminé en streaming. Le texte correspond à la text partie de contenu d’un élément de message assistant.
Cet événement est également retourné lorsqu’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
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type d’événement doit être response.text.done. |
| response_id | ficelle | ID de la réponse. |
| item_id | ficelle | 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 | ficelle | Contenu du texte final. |
Components
Audio Formats
RealtimeAudioFormat
Format audio de base utilisé pour l’audio d’entrée.
Valeurs autorisées :
-
pcm16- Format audio PCM 16 bits -
g711_ulaw- G.711 format audio μ-law -
g711_alaw- Format audio A-law G.711
RealtimeOutputAudioFormat
Format audio utilisé pour l’audio de sortie avec des taux d’échantillonnage spécifiques.
Valeurs autorisées :
-
pcm16- Format audio PCM 16 bits au taux d’échantillonnage par défaut (24 kHz) -
pcm16_8000hz- Format audio PCM 16 bits au taux d’échantillonnage 8kHz -
pcm16_16000hz- Format audio PCM 16 bits au taux d’échantillonnage 16kHz -
g711_ulaw- G.711 μ-law (mu-law) format audio au taux d’échantillonnage 8kHz -
g711_alaw- Format audio de loi A G.711 au taux d’échantillonnage de 8 kHz
RealtimeAudioInputTranscriptionSettings
Configuration de la transcription audio d’entrée.
| Terrain | Type | Descriptif |
|---|---|---|
| model | ficelle | Modèle de transcription. Pris en charge avec gpt-realtime et gpt-realtime-mini:whisper-1, gpt-4o-transcribegpt-4o-mini-transcribe, gpt-4o-transcribe-diarize.Pris en charge avec tous les autres modèles et agents : azure-speech |
| language | ficelle | Code de langue facultatif dans BCP-47 (par exemple, en-US), ou ISO-639-1 (par exemple, en) ou plusieurs langues avec détection automatique ( par exemple, en,zh). |
| custom_speech | objet | Configuration facultative pour les modèles speech personnalisés, valide uniquement pour le azure-speech modèle. |
| phrase_list | chaîne de caractères[] | Liste facultative d’indicateurs d’expression pour la reconnaissance de biais, uniquement valide pour le azure-speech modèle. |
| prompt | ficelle | Texte d’invite facultatif pour guider la transcription, valide uniquement pour whisper-1, gpt-4o-transcribegpt-4o-mini-transcribe et gpt-4o-transcribe-diarize les modèles. |
RealtimeInputAudioNoiseReductionSettings
Il peut s’agir des suivants :
- Objet RealtimeOpenAINoiseReduction
- Un objet RealtimeAzureDeepNoiseSuppression
RealtimeOpenAINoiseReduction
Configuration de la réduction du bruit OpenAI avec un champ de type explicite, disponible uniquement pour et pour gpt-realtime les gpt-realtime-mini modèles.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle |
near_field ou far_field |
RealtimeAzureDeepNoiseSuppression
Configuration de la réduction du bruit audio d’entrée.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "azure_deep_noise_suppression" |
RealtimeInputAudioEchoCancellationSettings
Configuration de l’annulation d’écho pour le traitement audio côté serveur.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "server_echo_cancellation" |
Configuration vocale
RealtimeVoice
Union de toutes les configurations vocales prises en charge.
Il peut s’agir des suivants :
- Objet RealtimeOpenAIVoice
- Objet RealtimeAzureVoice
RealtimeOpenAIVoice
Configuration vocale OpenAI avec champ de type explicite.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "openai" |
| nom | ficelle | Nom de la voix OpenAI : alloy, , ash, balladcoralechosageshimmerverse, marincedar |
RealtimeAzureVoice
Base pour les configurations vocales Azure. Il s’agit d’une union discriminatoire avec différents types :
RealtimeAzureStandardVoice
Configuration vocale standard Azure.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "azure-standard" |
| nom | ficelle | Nom vocal (ne peut pas être vide) |
| température | nombre | Optional. Température comprise entre 0,0 et 1,0 |
| custom_lexicon_url | ficelle | Optional. URL vers le lexique personnalisé |
| prefer_locales | chaîne de caractères[] | Optional. Paramètres régionaux préférés Préférer les paramètres régionaux modifie les accents des langues. Si la valeur n’est pas définie, TTS utilise l’accent par défaut de chaque langue. Par exemple, lorsque TTS parle anglais, il utilise l’accent anglais américain. Et lorsque vous parlez espagnol, il utilisera l’accent espagnol mexicain. Si la prefer_locales ["en-GB", "es-ES"]est définie, l’accent anglais sera anglais britannique et l’accent espagnol sera l’espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc. |
| paramètres régionaux | ficelle | Optional. Spécification des paramètres régionaux Appliquer les paramètres régionaux pour la sortie TTS. S’il n’est pas défini, TTS utilise toujours les paramètres régionaux donnés pour parler. Par exemple, définissez les paramètres régionaux en-USsur , TTS utilise toujours l’accent anglais américain pour parler le contenu du texte, même le contenu du texte se trouve dans une autre langue. Et TTS génère le silence si le contenu du texte est en chinois. |
| style | ficelle | Optional. Style vocal |
| tanguer | ficelle | Optional. Réglage de l’emplacement |
| taux | ficelle | Optional. Ajustement de la fréquence vocale |
| volume | ficelle | Optional. Ajustement du volume |
RealtimeAzureCustomVoice
Configuration vocale personnalisée Azure (par défaut pour les voix personnalisées).
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "azure-custom" |
| nom | ficelle | Nom vocal (ne peut pas être vide) |
| endpoint_id | ficelle | ID de point de terminaison (ne peut pas être vide) |
| température | nombre | Optional. Température comprise entre 0,0 et 1,0 |
| custom_lexicon_url | ficelle | Optional. URL vers le lexique personnalisé |
| prefer_locales | chaîne de caractères[] | Optional. Paramètres régionaux préférés Préférer les paramètres régionaux modifie les accents des langues. Si la valeur n’est pas définie, TTS utilise l’accent par défaut de chaque langue. Par exemple, lorsque TTS parle anglais, il utilise l’accent anglais américain. Et lorsque vous parlez espagnol, il utilisera l’accent espagnol mexicain. Si la prefer_locales ["en-GB", "es-ES"]est définie, l’accent anglais sera anglais britannique et l’accent espagnol sera l’espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc. |
| paramètres régionaux | ficelle | Optional. Spécification des paramètres régionaux Appliquer les paramètres régionaux pour la sortie TTS. S’il n’est pas défini, TTS utilise toujours les paramètres régionaux donnés pour parler. Par exemple, définissez les paramètres régionaux en-USsur , TTS utilise toujours l’accent anglais américain pour parler le contenu du texte, même le contenu du texte se trouve dans une autre langue. Et TTS génère le silence si le contenu du texte est en chinois. |
| style | ficelle | Optional. Style vocal |
| tanguer | ficelle | Optional. Réglage de l’emplacement |
| taux | ficelle | Optional. Ajustement de la fréquence vocale |
| volume | ficelle | Optional. Ajustement du volume |
Exemple :
{
"type": "azure-custom",
"name": "my-custom-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"temperature": 0.7,
"style": "cheerful",
"locale": "en-US"
}
RealtimeAzurePersonalVoice
Configuration vocale personnelle Azure.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "azure-personal" |
| nom | ficelle | Nom vocal (ne peut pas être vide) |
| température | nombre | Optional. Température comprise entre 0,0 et 1,0 |
| model | ficelle | Modèle neuronal sous-jacent : DragonLatestNeural, PhoenixLatestNeural, PhoenixV2Neural |
| custom_lexicon_url | ficelle | Optional. URL vers le lexique personnalisé |
| prefer_locales | chaîne de caractères[] | Optional. Paramètres régionaux préférés Préférer les paramètres régionaux modifie les accents des langues. Si la valeur n’est pas définie, TTS utilise l’accent par défaut de chaque langue. Par exemple, lorsque TTS parle anglais, il utilise l’accent anglais américain. Et lorsque vous parlez espagnol, il utilisera l’accent espagnol mexicain. Si la prefer_locales ["en-GB", "es-ES"]est définie, l’accent anglais sera anglais britannique et l’accent espagnol sera l’espagnol européen. Et TTS peut également parler d’autres langues comme le français, le chinois, etc. |
| paramètres régionaux | ficelle | Optional. Spécification des paramètres régionaux Appliquer les paramètres régionaux pour la sortie TTS. S’il n’est pas défini, TTS utilise toujours les paramètres régionaux donnés pour parler. Par exemple, définissez les paramètres régionaux en-USsur , TTS utilise toujours l’accent anglais américain pour parler le contenu du texte, même le contenu du texte se trouve dans une autre langue. Et TTS génère le silence si le contenu du texte est en chinois. |
| tanguer | ficelle | Optional. Réglage de l’emplacement |
| taux | ficelle | Optional. Ajustement de la fréquence vocale |
| volume | ficelle | Optional. Ajustement du volume |
Détection de tour
RealtimeTurnDetection
Configuration pour la détection de virage. Il s’agit d’une union discriminatoire qui prend en charge plusieurs types VAD.
RealtimeServerVAD
Détection de tour basée sur VAD de base.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "server_vad" |
| threshold | nombre | Optional. Seuil d’activation (0.0-1.0) |
| prefix_padding_ms | entier | Optional. Remplissage audio avant le démarrage de la parole |
| silence_duration_ms | entier | Optional. Durée du silence pour détecter la fin de la voix |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Configuration de la détection d’énoncé de bout en bout |
| créer_réponse | boolean | Optional. Activez ou désactivez si une réponse est générée. |
| réponse à une interruption | boolean | Optional. Activer ou désactiver l’interruption de chaland (valeur par défaut : false) |
| auto_truncate | boolean | Optional. Troncation automatique lors de l’interruption (valeur par défaut : false) |
RealtimeOpenAISemanticVAD
Configuration sémantique VAD OpenAI qui utilise un modèle pour déterminer quand l’utilisateur a fini de parler. Disponible uniquement pour et gpt-realtime les gpt-realtime-mini modèles.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "semantic_vad" |
| empressement | ficelle | Optional. Il s’agit d’un moyen de contrôler la rapidité avec laquelle le modèle est d’interrompre l’utilisateur, en paramétrant le délai d’attente maximal. En mode transcription, même si le modèle ne répond pas, il affecte la façon dont l’audio est segmenté. Les valeurs suivantes sont autorisées : - auto (valeur par défaut) équivaut à medium,- low laissera l’utilisateur prendre son temps pour parler,- high segmente l’audio dès que possible.Si vous souhaitez que le modèle réponde plus souvent en mode conversation, ou pour renvoyer des événements de transcription plus rapidement en mode transcription, vous pouvez définir l’impatience highsur .En revanche, si vous souhaitez permettre à l’utilisateur de parler sans interruption en mode conversation, ou si vous souhaitez des blocs de transcription plus volumineux en mode transcription, vous pouvez définir l’impatience low. |
| créer_réponse | boolean | Optional. Activez ou désactivez si une réponse est générée. |
| réponse à une interruption | boolean | Optional. Activer ou désactiver l’interruption de chaland (valeur par défaut : false) |
RealtimeAzureSemanticVAD
VAD sémantique Azure, qui détermine quand l’utilisateur démarre et parle à l’aide d’un modèle de reconnaissance vocale sémantique, fournissant une détection plus robuste dans des environnements bruyants.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "azure_semantic_vad" |
| threshold | nombre | Optional. Seuil d’activation |
| prefix_padding_ms | entier | Optional. Remplissage audio avant la parole |
| silence_duration_ms | entier | Optional. Durée du silence pour la fin de la reconnaissance vocale |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Configuration de la détection d’EOU |
| speech_duration_ms | entier | Optional. Durée minimale de la parole |
| remove_filler_words | boolean | Optional. Supprimer les mots de remplissage (valeur par défaut : false) |
| langues | chaîne de caractères[] | Optional. Prend en charge l’anglais. D’autres langues seront ignorées. |
| créer_réponse | boolean | Optional. Activez ou désactivez si une réponse est générée. |
| réponse à une interruption | boolean | Optional. Activer ou désactiver l’interruption de chaland (valeur par défaut : false) |
| auto_truncate | boolean | Optional. Troncation automatique lors de l’interruption (valeur par défaut : false) |
RealtimeAzureSemanticVADMultilinguel
VAD sémantique Azure (variante par défaut).
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "azure_semantic_vad_multilingual" |
| threshold | nombre | Optional. Seuil d’activation |
| prefix_padding_ms | entier | Optional. Remplissage audio avant la parole |
| silence_duration_ms | entier | Optional. Durée du silence pour la fin de la reconnaissance vocale |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Configuration de la détection d’EOU |
| speech_duration_ms | entier | Optional. Durée minimale de la parole |
| remove_filler_words | boolean | Optional. Supprimez les mots de remplissage (valeur par défaut : false). |
| langues | chaîne de caractères[] | Optional. Prend en charge l’anglais, l’espagnol, le français, l’italien, l’allemand (DE), le japonais, le portugais, le chinois, le coréen, l’hindi. D’autres langues seront ignorées. |
| créer_réponse | boolean | Optional. Activez ou désactivez si une réponse est générée. |
| réponse à une interruption | boolean | Optional. Activer ou désactiver l’interruption de chaland (valeur par défaut : false) |
| auto_truncate | boolean | Optional. Troncation automatique lors de l’interruption (valeur par défaut : false) |
RealtimeEOUDetection
Azure End-of-Utterance (EOU) peut indiquer quand l’utilisateur final a cessé de parler tout en autorisant des pauses naturelles. La détection de la fin d'énoncé peut réduire considérablement les signaux de fin de tour prématurés sans ajouter de latence perceptible par l'utilisateur.
| Terrain | Type | Descriptif |
|---|---|---|
| model | ficelle |
semantic_detection_v1 Peut prendre en charge l’anglais ou semantic_detection_v1_multilingual l’anglais, l’espagnol, le français, l’italien, l’allemand (DE), le japonais, le portugais, le chinois, le coréen, l’hindi |
| threshold_level | ficelle | Optional. Niveau de seuil de détection (low, mediumhigh et default), le paramètre par défaut est égalmedium. Avec un paramètre inférieur, la probabilité que la phrase soit terminée sera plus élevée. |
| timeout (délai en ms) | nombre | Optional. Durée maximale en millisecondes d’attente d’un plus grand nombre de paroles utilisateur. La valeur par défaut est 1 000 ms. |
Configuration d’Avatar
RealtimeAvatarConfig
Configuration pour le streaming et le comportement des avatars.
| Terrain | Type | Descriptif |
|---|---|---|
| ice_servers | RealtimeIceServer[] | Optional. Serveurs ICE pour WebRTC |
| personnage | ficelle | Nom de caractère ou ID de l’avatar |
| style | ficelle | Optional. Style avatar (ton émotionnel, style parlant) |
| Personnalisé | boolean | Indique si l’avatar est personnalisé |
| video | RealtimeVideoParams | Optional. Configuration vidéo |
RealtimeIceServer
Configuration du serveur ICE pour la négociation de connexion WebRTC.
| Terrain | Type | Descriptif |
|---|---|---|
| urls | chaîne de caractères[] | URL du serveur ICE (points de terminaison TURN ou STUN) |
| nom d'utilisateur | ficelle | Optional. Nom d’utilisateur pour l’authentification |
| credential | ficelle | Optional. Informations d’identification pour l’authentification |
RealtimeVideoParams
Paramètres de streaming vidéo pour avatar.
| Terrain | Type | Descriptif |
|---|---|---|
| débit binaire | entier | Optional. Vitesse de transmission en bits par seconde (valeur par défaut : 2000000) |
| codec | ficelle | Optional. Codec vidéo, actuellement uniquement h264 (par défaut : h264) |
| crop | RealtimeVideoCrop | Optional. Paramètres de rognage |
| résolution | RealtimeVideoResolution | Optional. Paramètres de résolution |
RealtimeVideoCrop
Définition du rectangle de rognage vidéo.
| Terrain | Type | Descriptif |
|---|---|---|
| top_left | integer[] | Coin supérieur gauche [x, y], entiers non négatifs |
| bottom_right | integer[] | Coin inférieur droit [x, y], entiers non négatifs |
RealtimeVideoResolution
Spécification de la résolution vidéo.
| Terrain | Type | Descriptif |
|---|---|---|
| width | entier | Largeur en pixels (doit être > 0) |
| height | entier | Hauteur en pixels (doit être > de 0) |
Configuration de l’animation
RealtimeAnimation
Configuration des sorties d’animation, notamment blendshapes et visemes.
| Terrain | Type | Descriptif |
|---|---|---|
| model_name | ficelle | Optional. Nom du modèle d’animation (par défaut : "default") |
| sorties | RealtimeAnimationOutputType[] | Optional. Types de sortie (par défaut : ["blendshapes"]) |
RealtimeAnimationOutputType
Types de données d’animation à générer.
Valeurs autorisées :
-
blendshapes- Données blendshapes faciales -
viseme_id- Données d’identificateur Viseme
Session Configuration
RealtimeRequestSession
Objet de configuration de session utilisé dans session.update les événements.
| Terrain | Type | Descriptif |
|---|---|---|
| model | ficelle | Optional. Nom du modèle à utiliser |
| modalities | RealtimeModality[] | Optional. Modalités prises en charge pour la session. Par exemple, « modalités » : ["text », « audio"] est le paramètre par défaut qui active les modalités de texte et audio. Pour activer uniquement le texte, définissez « modalités » : ["text"]. Pour activer la sortie de l’avatar, définissez « modalités » : ["text », « audio », « avatar"]. Vous ne pouvez pas activer uniquement l’audio. |
| animation | RealtimeAnimation | Optional. Configuration de l’animation |
| voix | RealtimeVoice | Optional. Configuration vocale |
| instructions | ficelle | Optional. Instructions système pour le modèle. Les instructions peuvent guider l’audio de sortie si les voix OpenAI sont utilisées, mais peuvent ne pas s’appliquer aux voix Azure. |
| input_audio_sampling_rate | entier | Optional. Taux d’échantillonnage audio d’entrée en Hz (valeur par défaut : 24000 pour pcm16, 8000 pour g711_ulaw et g711_alaw) |
| input_audio_format | RealtimeAudioFormat | Optional. Format audio d’entrée (par défaut : pcm16) |
| output_audio_format | RealtimeOutputAudioFormat | Optional. Format audio de sortie (par défaut : pcm16) |
| input_audio_noise_reduction | RealtimeInputAudioNoiseReductionSettings | Configuration de la réduction du bruit audio d’entrée. Cette valeur peut être définie sur Null pour la désactiver. La réduction du bruit filtre l’audio ajouté à la mémoire tampon audio d’entrée avant son envoi à VAD et au modèle. Le filtrage de l’audio peut améliorer la précision de détection de VAD et de la prise de parole (réduisant les faux positifs) et les performances du modèle en améliorant la perception de l’audio d’entrée. Cette propriété est nullable. |
| input_audio_echo_cancellation | RealtimeInputAudioEchoCancellationSettings | Configuration de l’annulation de l’écho audio d’entrée. Cette valeur peut être définie sur Null pour la désactiver. Cette annulation d’écho côté service peut aider à améliorer la qualité de l’audio d’entrée en réduisant l’impact de l’écho et de la réverbération. Cette propriété est nullable. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Configuration de la transcription audio d’entrée. La configuration est null (désactivée) par défaut. La transcription audio d’entrée n’est pas native du modèle, car le modèle consomme directement l’audio. La transcription s’exécute de façon asynchrone via le point de terminaison et doit être traitée comme des conseils sur le /audio/transcriptions contenu audio d’entrée plutôt que sur ce que le modèle a entendu. Pour obtenir des conseils supplémentaires sur le service de transcription, le client peut éventuellement définir la langue et demander la transcription.Cette propriété est nullable. |
| turn_detection | RealtimeTurnDetection | Paramètres de détection de tour pour la session. Cette valeur peut être définie sur Null pour la désactiver. |
| outils | tableau de RealtimeTool | Outils disponibles pour le modèle pour la session. |
| tool_choice | RealtimeToolChoice | Choix de l’outil pour la session. Valeurs autorisées : auto, noneet required. Sinon, vous pouvez spécifier le nom de la fonction à utiliser. |
| température | nombre | Température d’échantillonnage du modèle. 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 » | Nombre maximal de jetons de sortie par réponse de l’Assistant, inclus dans les appels d’outils. Spécifiez un entier compris entre 1 et 4096 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". |
| avatar | RealtimeAvatarConfig | Optional. Configuration de l’avatar |
| output_audio_timestamp_types | RealtimeAudioTimestampType[] | Optional. Types d’horodatages pour l’audio de sortie |
RealtimeModality
Modalités de session prises en charge.
Valeurs autorisées :
-
text- Entrée/sortie de texte -
audio- Entrée/sortie audio -
animation- Sortie d’animation -
avatar- Sortie vidéo avatar
RealtimeAudioTimestampType
Types d’horodatages de sortie pris en charge dans le contenu de réponse audio.
Valeurs autorisées :
-
word- Horodatages par mot dans l’audio de sortie
Configuration de l’outil
Nous prenons en charge deux types d’outils : les appels de fonction et les outils MCP qui vous permettent de vous connecter à un serveur mcp.
RealtimeTool
Définition de l’outil pour l’appel de fonction.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "function" |
| nom | ficelle | Nom de la fonction |
| descriptif | ficelle | Instructions relatives à la description et à l’utilisation de la fonction |
| parameters | objet | Paramètres de fonction en tant qu’objet de schéma JSON |
RealtimeToolChoice
Stratégie de sélection d’outils.
Il peut s’agir des suivants :
-
"auto"- Laisser le modèle choisir -
"none"- N’utilisez pas d’outils -
"required"- Doit utiliser un outil -
{ "type": "function", "name": "function_name" }- Utiliser une fonction spécifique
MCPTool
Configuration de l’outil MCP.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "mcp" |
| server_label | ficelle | Obligatoire. Étiquette du serveur MCP. |
| URL du serveur | ficelle | Obligatoire. URL du serveur MCP. |
| outils_autorisés | chaîne de caractères[] | Optional. Liste des noms d’outils autorisés. S’il n’est pas spécifié, tous les outils sont autorisés. |
| headers | objet | Optional. En-têtes supplémentaires à inclure dans les demandes MCP. |
| autorisation | ficelle | Optional. Jeton d’autorisation pour les demandes MCP. |
| require_approval | chaîne ou dictionnaire | Optional. Si elle est définie sur une chaîne, la valeur doit être never ou always. Si la valeur est définie sur un dictionnaire, elle doit être au format {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}. La valeur par défaut est always. Lorsqu’elle est définie alwayssur , l’exécution de l’outil nécessite l’approbation, mcp_approval_request est envoyée au client lorsque l’argument mcp est terminé et est exécuté uniquement lorsque mcp_approval_response avec approve=true est reçu. Lorsque la valeur est définie never, l’outil est exécuté automatiquement sans approbation. |
RealtimeConversationResponseItem
Il s’agit d’un type d’union qui peut être l’un des éléments suivants :
RealtimeConversationUserMessageItem
Élément de message utilisateur.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | ID unique de l’élément. |
| type | ficelle | Doit être "message" |
| objet | ficelle | Doit être "conversation.item" |
| role | ficelle | Doit être "user" |
| contenu | RealtimeInputTextContentPart | Contenu du message. |
| status | RealtimeItemStatus | État de l’élément. |
RealtimeConversationAssistantMessageItem
Élément de message assistant.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | ID unique de l’élément. |
| type | ficelle | Doit être "message" |
| objet | ficelle | Doit être "conversation.item" |
| role | ficelle | Doit être "assistant" |
| contenu | RealtimeOutputTextContentPart[] ou RealtimeOutputAudioContentPart[] | Contenu du message. |
| status | RealtimeItemStatus | État de l’élément. |
RealtimeConversationSystemMessageItem
Élément de message système.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | ID unique de l’élément. |
| type | ficelle | Doit être "message" |
| objet | ficelle | Doit être "conversation.item" |
| role | ficelle | Doit être "system" |
| contenu | RealtimeInputTextContentPart[] | Contenu du message. |
| status | RealtimeItemStatus | État de l’élément. |
RealtimeConversationFunctionCallItem
Élément de demande d’appel de fonction.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | ID unique de l’élément. |
| type | ficelle | Doit être "function_call" |
| objet | ficelle | Doit être "conversation.item" |
| nom | ficelle | Nom de la fonction à appeler. |
| arguments | ficelle | Arguments de l’appel de fonction sous forme de chaîne JSON. |
| call_id | ficelle | ID unique de l’appel de fonction. |
| status | RealtimeItemStatus | État de l’élément. |
RealtimeConversationFunctionCallOutputItem
Élément de réponse d’appel de fonction.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | ID unique de l’élément. |
| type | ficelle | Doit être "function_call_output" |
| objet | ficelle | Doit être "conversation.item" |
| nom | ficelle | Nom de la fonction appelée. |
| output | ficelle | Sortie de l’appel de fonction. |
| call_id | ficelle | ID unique de l’appel de fonction. |
| status | RealtimeItemStatus | État de l’élément. |
RealtimeConversationMCPListToolsItem
Élément de réponse des outils de liste MCP.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | ID unique de l’élément. |
| type | ficelle | Doit être "mcp_list_tools" |
| server_label | ficelle | Étiquette du serveur MCP. |
RealtimeConversationMCPCallItem
Élément de réponse d’appel MCP.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | ID unique de l’élément. |
| type | ficelle | Doit être "mcp_call" |
| server_label | ficelle | Étiquette du serveur MCP. |
| nom | ficelle | Nom de l’outil à appeler. |
| approval_request_id | ficelle | ID de demande d’approbation pour l’appel MCP. |
| arguments | ficelle | Arguments de l’appel MCP. |
| output | ficelle | Sortie de l’appel MCP. |
| erreur | objet | Détails de l’erreur si l’appel MCP a échoué. |
RealtimeConversationMCPApprovalRequestItem
Élément de demande d’approbation MCP.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | ID unique de l’élément. |
| type | ficelle | Doit être "mcp_approval_request" |
| server_label | ficelle | Étiquette du serveur MCP. |
| nom | ficelle | Nom de l’outil à appeler. |
| arguments | ficelle | Arguments de l’appel MCP. |
RealtimeItemStatus
État des éléments de conversation.
Valeurs autorisées :
-
in_progress- En cours de traitement -
completed-Réussi -
incomplete- Incomplet (interrompu ou défaillant)
RealtimeContentPart
Composant de contenu dans un message.
RealtimeInputTextContentPart
Composant de contenu texte.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "input_text" |
| texte | ficelle | Contenu du texte |
RealtimeOutputTextContentPart
Composant de contenu texte.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "text" |
| texte | ficelle | Contenu du texte |
RealtimeInputAudioContentPart
Composant contenu audio.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "input_audio" |
| audio | ficelle | Optional. Données audio encodées en base64 |
| transcript | ficelle | Optional. Transcription audio |
RealtimeOutputAudioContentPart
Composant contenu audio.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Doit être "audio" |
| audio | ficelle | Données audio encodées en base64 |
| transcript | ficelle | Optional. Transcription audio |
Objets response
RealtimeResponse
Objet response représentant une réponse d’inférence de modèle.
| Terrain | Type | Descriptif |
|---|---|---|
| pièce d'identité | ficelle | Optional. ID de réponse |
| objet | ficelle | Optional. Toujours "realtime.response" |
| status | RealtimeResponseStatus | Optional. État de la réponse |
| détails du statut | RealtimeResponseStatusDetails | Optional. Détails de l’état |
| output | RealtimeConversationResponseItem[] | Optional. Éléments de sortie |
| usage | RealtimeUsage | Optional. Statistiques d’utilisation des jetons |
| conversation_id | ficelle | Optional. ID de conversation associé |
| voix | RealtimeVoice | Optional. Voix utilisée pour la réponse |
| modalities | chaîne de caractères[] | Optional. Modalités utilisées |
| output_audio_format | RealtimeOutputAudioFormat | Optional. Format audio utilisé |
| température | nombre | Optional. Température utilisée |
| max_response_output_tokens | entier ou « inf » | Optional. Nombre maximal de jetons utilisés |
RealtimeResponseStatus
Valeurs d’état de la réponse.
Valeurs autorisées :
-
in_progress- La réponse est générée -
completed- Réponse terminée avec succès -
cancelled- La réponse a été annulée -
incomplete- Réponse incomplète (interrompue) -
failed- Échec de la réponse avec une erreur
RealtimeUsage
Statistiques d’utilisation des jetons.
| Terrain | Type | Descriptif |
|---|---|---|
| total_tokens | entier | Nombre total de jetons utilisés |
| input_tokens | entier | Jetons d'entrée utilisés |
| output_tokens | entier | Jetons de sortie générés |
| input_token_details | TokenDetails | Répartition des jetons d’entrée |
| output_token_details | TokenDetails | Répartition des jetons de sortie |
TokenDetails
Répartition détaillée de l’utilisation des jetons.
| Terrain | Type | Descriptif |
|---|---|---|
| cached_tokens | entier | Optional. Jetons mis en cache utilisés |
| text_tokens | entier | Optional. Jetons de texte utilisés |
| audio_tokens | entier | Optional. Jetons audio utilisés |
Gestion des erreurs
RealtimeErrorDetails
Objet d’informations d’erreur.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type d’erreur (par exemple, "invalid_request_error", "server_error") |
| code | ficelle | Optional. Code d’erreur spécifique |
| Message | ficelle | Description d’erreur lisible par l’homme |
| param | ficelle | Optional. Paramètre lié à l’erreur |
| event_id | ficelle | Optional. ID de l’événement client qui a provoqué l’erreur |
RealtimeConversationRequestItem
Vous utilisez l’objet RealtimeConversationRequestItem pour créer un élément dans la conversation via l’événement conversation.item.create .
Il s’agit d’un type d’union qui peut être l’un des éléments suivants :
RealtimeSystemMessageItem
Élément de message système.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’élément. Valeurs autorisées : message |
| role | ficelle | Rôle du message. Valeurs autorisées : system |
| contenu | array of RealtimeInputTextContentPart | Contenu du message. |
| pièce d'identité | ficelle | 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. |
RealtimeUserMessageItem
Élément de message utilisateur.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’élément. Valeurs autorisées : message |
| role | ficelle | Rôle du message. Valeurs autorisées : user |
| contenu | array of RealtimeInputTextContentPart ou RealtimeInputAudioContentPart | Contenu du message. |
| pièce d'identité | ficelle | 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. |
RealtimeAssistantMessageItem
Élément de message d’assistant.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’élément. Valeurs autorisées : message |
| role | ficelle | Rôle du message. Valeurs autorisées : assistant |
| contenu | array of RealtimeOutputTextContentPart | Contenu du message. |
RealtimeFunctionCallItem
Élément d’appel de fonction.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’élément. Valeurs autorisées : function_call |
| nom | ficelle | Nom de la fonction à appeler. |
| arguments | ficelle | Arguments de l’appel de fonction sous forme de chaîne JSON. |
| call_id | ficelle | ID de l’élément d’appel de fonction. |
| pièce d'identité | ficelle | 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. |
RealtimeFunctionCallOutputItem
Élément de sortie d’appel de fonction.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’élément. Valeurs autorisées : function_call_output |
| call_id | ficelle | ID de l’élément d’appel de fonction. |
| output | ficelle | La sortie de l’appel de fonction, il s’agit d’une chaîne de forme libre avec le résultat de la fonction, peut également être vide. |
| pièce d'identité | ficelle | ID unique de l’élément. Si le client ne fournit pas d’ID, le serveur en génère un. |
RealtimeMCPApprovalResponseItem
Élément de réponse d’approbation MCP.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’élément. Valeurs autorisées : mcp_approval_response |
| approuver | boolean | Indique si la demande MCP est approuvée. |
| approval_request_id | ficelle | ID de la demande d’approbation MCP. |
RealtimeFunctionTool
Définition d’un outil de fonction tel qu’utilisé par le point de terminaison en temps réel.
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’outil. Valeurs autorisées : function |
| nom | ficelle | Nom de la fonction. |
| descriptif | ficelle | Description de la fonction, y compris les instructions d’utilisation. Par exemple, « Utilisez cette fonction pour obtenir l’heure actuelle ». |
| parameters | objet | Paramètres de la fonction sous la forme d’un objet JSON. |
RealtimeItemStatus
Valeurs autorisées :
in_progresscompletedincomplete
RealtimeResponseAudioContentPart
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Le type de la partie contenu. Valeurs autorisées : audio |
| transcript | ficelle | Transcription de l’audio. Cette propriété est nullable. |
RealtimeResponseFunctionCallItem
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’élément. Valeurs autorisées : function_call |
| nom | ficelle | Nom de l’élément d’appel de fonction. |
| call_id | ficelle | ID de l’élément d’appel de fonction. |
| arguments | ficelle | Arguments de l’élément d’appel de fonction. |
| status | RealtimeItemStatus | État de l’élément. |
RealtimeResponseFunctionCallOutputItem
| Terrain | Type | Descriptif |
|---|---|---|
| type | ficelle | Type de l’élément. Valeurs autorisées : function_call_output |
| call_id | ficelle | ID de l’élément d’appel de fonction. |
| output | ficelle | Sortie de l’élément d’appel de fonction. |
RealtimeResponseOptions
| Terrain | Type | Descriptif |
|---|---|---|
| modalities | tableau | Modalités prises en charge par la session. Valeurs autorisées : text, audioPar exemple, "modalities": ["text", "audio"] est le paramètre par défaut qui active les modalités de texte et audio. Pour activer uniquement le texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer uniquement l’audio. |
| instructions | ficelle | Instructions (message système) pour guider les réponses du modèle. |
| voix | RealtimeVoice | Voix utilisée pour la réponse du modèle pour la session. Une fois la voix utilisée dans la session pour la réponse audio du modèle, elle ne peut pas être modifiée. |
| outils | tableau de RealtimeTool | Outils disponibles pour le modèle pour la session. |
| tool_choice | RealtimeToolChoice | Choix de l’outil pour la session. |
| température | nombre | Température d’échantillonnage du modèle. 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 » | Nombre maximal de jetons de sortie par réponse de l’Assistant, inclus dans les appels d’outils. Spécifiez un entier compris entre 1 et 4096 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 | ficelle | Contrôle la conversation à laquelle la réponse est ajoutée. Les valeurs prises en charge sont auto et none.La auto valeur (ou non la définition de 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é pour none créer une réponse hors bande où les éléments ne seront pas ajoutés à la conversation par défaut. La valeur par défaut est "auto" |
| metadata | carte | Configurer 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" } |
RealtimeResponseSession
L’objet RealtimeResponseSession représente une session dans l’API Realtime. Il est utilisé dans certains des événements de serveur, tels que :
| Terrain | Type | Descriptif |
|---|---|---|
| objet | ficelle | Objet de session. Valeurs autorisées : realtime.session |
| pièce d'identité | ficelle | ID unique de la session. |
| model | ficelle | Modèle utilisé pour la session. |
| modalities | tableau | Modalités prises en charge par la session. Valeurs autorisées : text, audioPar exemple, "modalities": ["text", "audio"] est le paramètre par défaut qui active les modalités de texte et audio. Pour activer uniquement le texte, définissez "modalities": ["text"]. Vous ne pouvez pas activer uniquement l’audio. |
| instructions | ficelle | Instructions (message système) pour guider le texte et les réponses 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, ils fournissent des conseils sur le comportement souhaité. |
| voix | RealtimeVoice | Voix utilisée pour la réponse du modèle pour la session. Une fois la voix utilisée dans la session pour la réponse audio du modèle, elle ne peut pas être modifiée. |
| input_audio_sampling_rate | entier | Taux d’échantillonnage pour l’audio d’entrée. |
| input_audio_format | RealtimeAudioFormat | Format de l’audio d’entrée. |
| output_audio_format | RealtimeAudioFormat | Format de l’audio de sortie. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Paramètres de transcription d’entrée audio. Cette propriété est nullable. |
| turn_detection | RealtimeTurnDetection | Paramètres de détection de tour pour la session. Cette propriété est nullable. |
| outils | tableau de RealtimeTool | Outils disponibles pour le modèle pour la session. |
| tool_choice | RealtimeToolChoice | Choix de l’outil pour la session. |
| température | nombre | Température d’échantillonnage du modèle. 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 » | Nombre maximal de jetons de sortie par réponse de l’Assistant, inclus dans les appels d’outils. Spécifiez un entier compris entre 1 et 4096 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". |
RealtimeResponseStatusDetails
| Terrain | Type | Descriptif |
|---|---|---|
| type | RealtimeResponseStatus | État de la réponse. |
RealtimeRateLimitsItem
| Terrain | Type | Descriptif |
|---|---|---|
| nom | ficelle | 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. |
| remaining | 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. |
Ressources associées
- Essayer le démarrage rapide de Voice live
- Essayez le Démarrage rapide des assistants vocaux en direct
- En savoir plus sur l’utilisation de l’API voice live