Referencia de la API Voice Live 2025-10-01

La API Voice Live proporciona comunicación bidireccional en tiempo real para aplicaciones habilitadas por voz que utilizan conexiones WebSocket. Esta API soporta funciones avanzadas como reconocimiento de voz, síntesis de texto a voz, transmisión de avatares, datos de animación y capacidades completas de procesamiento de audio.

La API utiliza eventos en formato JSON enviados por conexiones WebSocket para gestionar conversaciones, flujos de audio, interacciones con avatares y respuestas en tiempo real. Los eventos se categorizan en eventos del cliente (enviados de cliente a servidor) y eventos del servidor (enviados de servidor a cliente).

Key Features

  • Procesamiento de audio en tiempo real: Soporte para múltiples formatos de audio, incluyendo PCM16 a distintas frecuencias de muestreo y códecs G.711
  • Opciones avanzadas de voz: voces OpenAI, voces personalizadas Azure, voces estándar Azure y voces personales Azure
  • Integración de Avatares: Streaming de avatares basado en WebRTC con vídeo, animación y blendshapes
  • Detección Inteligente de Giro: Múltiples opciones de VAD, incluyendo Azure VAD semántica y detección en el lado del servidor
  • Mejora de audio: reducción de ruido y cancelación de eco integradas
  • Llamada de Función: Integración de herramientas para mejorar las capacidades conversacionales
  • Gestión flexible de sesión: modalidades de salida, instrucciones y parámetros de respuesta configurables

Client Events

La API de Voice Live soporta los siguientes eventos del cliente que pueden enviarse desde el cliente al servidor:

Event Description
session.update Actualiza la configuración de la sesión, incluyendo voz, modalidades de salida, detección de giros y otros ajustes
session.avatar.connect Establecer conexión avatar proporcionando SDP de cliente para la negociación WebRTC
input_audio_buffer.append Añadir bytes de audio al búfer de audio de entrada
input_audio_buffer.commit Compromete el búfer de audio de entrada para procesarlo
input_audio_buffer.clear Borrar el búfer de audio de entrada
conversation.item.create Añadir un nuevo elemento al contexto de la conversación
conversation.item.retrieve Recupera un objeto específico de la conversación
conversation.item.truncate Truncar un mensaje de audio de asistente
conversation.item.delete Elimina un elemento de la conversación
response.create Instruye al servidor para que genere una respuesta mediante inferencia de modelo
response.cancel Cancelar una respuesta en curso

session.update

Actualiza la configuración de la sesión. Este evento puede enviarse en cualquier momento para modificar configuraciones como voz, modalidades de salida, detección de giros, herramientas y otros parámetros de sesión. Ten en cuenta que una vez que una sesión se inicializa con un modelo concreto, no puede cambiarse a otro modelo.

Event Structure

{
  "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"
  }
}

Properties

Field Type Description
type string Debe ser "session.update"
session RealtimeRequestSession Objeto de configuración de sesión con campos a actualizar

Ejemplo con 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

Establece una conexión avatar proporcionando la oferta SDP (Protocolo de Descripción de Sesión) del cliente para la negociación de medios WebRTC. Este evento es obligatorio cuando se usan características de avatar.

Event Structure

{
  "type": "session.avatar.connect",
  "client_sdp": "<client_sdp>"
}

Properties

Field Type Description
type string Debe ser "session.avatar.connect"
client_sdp string La oferta SDP del cliente para el establecimiento de conexiones WebRTC, codificada con base64

input_audio_buffer.append

Añadir bytes de audio al búfer de audio de entrada.

Event Structure

{
  "type": "input_audio_buffer.append",
  "audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}

Properties

Field Type Description
type string Debe ser "input_audio_buffer.append"
audio string Datos de audio codificados en Base64

input_audio_buffer.commit

Compromete el búfer de audio de entrada para procesar.

Event Structure

{
  "type": "input_audio_buffer.commit"
}

Properties

Field Type Description
type string Debe ser "input_audio_buffer.commit"

input_audio_buffer.clear

Borra el búfer de audio de entrada.

Event Structure

{
  "type": "input_audio_buffer.clear"
}

Properties

Field Type Description
type string Debe ser "input_audio_buffer.clear"

conversation.item.create

Añade un nuevo elemento al contexto de la conversación. Esto puede incluir mensajes, llamadas a funciones y respuestas a llamadas de función. Los elementos pueden insertarse en posiciones específicas del historial de conversación.

Event Structure

{
  "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?"
      }
    ]
  }
}

Properties

Field Type Description
type string Debe ser "conversation.item.create"
previous_item_id string Optional. ID del artículo después de insertarlo. Si no se proporciona, se añade al final
item RealtimeConversationRequestItem El punto para añadir a la conversación

Ejemplo con contenido de audio

{
  "type": "conversation.item.create",
  "item": {
    "type": "message",
    "role": "user",
    "content": [
      {
        "type": "input_audio",
        "audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
        "transcript": "Hello there"
      }
    ]
  }
}

Ejemplo con salida de llamada a función

{
  "type": "conversation.item.create",
  "item": {
    "type": "function_call_output",
    "call_id": "call_123",
    "output": "{\"location\": \"San Francisco\", \"temperature\": \"70\"}"
  }
}

Ejemplo con la respuesta de aprobación del MCP

{
  "type": "conversation.item.create",
  "item": {
    "type": "mcp_approval_response",
    "approval_request_id": "mcp_approval_req_456",
    "approve": true,
  }
}

conversation.item.retrieve

Recupera un elemento específico del historial de conversaciones. Esto es útil para inspeccionar el audio procesado tras la cancelación de ruido y el VAD.

Event Structure

{
  "type": "conversation.item.retrieve",
  "item_id": "item_ABC123"
}

Properties

Field Type Description
type string Debe ser "conversation.item.retrieve"
item_id string El ID del objeto a recuperar

conversation.item.truncate

Trunca el contenido de audio de un mensaje asistente. Esto es útil para detener la reproducción en un punto específico y sincronizar la comprensión del servidor con el estado del cliente.

Event Structure

{
  "type": "conversation.item.truncate",
  "item_id": "item_ABC123",
  "content_index": 0,
  "audio_end_ms": 5000
}

Properties

Field Type Description
type string Debe ser "conversation.item.truncate"
item_id string El ID del elemento del mensaje asistente para truncar
content_index integer El índice de la parte de contenido para truncar
audio_end_ms integer La duración hasta la que se puede truncar el audio, en milisegundos

conversation.item.delete

Elimina un elemento del historial de conversaciones.

Event Structure

{
  "type": "conversation.item.delete",
  "item_id": "item_ABC123"
}

Properties

Field Type Description
type string Debe ser "conversation.item.delete"
item_id string El ID del artículo que se debe eliminar

response.create

Instruye al servidor para que genere una respuesta mediante inferencia de modelo. Este evento puede especificar una configuración específica de respuesta que anule los valores predeterminados de la sesión.

Event Structure

{
  "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
  }
}

Properties

Field Type Description
type string Debe ser "response.create"
response RealtimeResponseOptions Configuración opcional de respuesta que anula los valores predeterminados de la sesión

Ejemplo con elección de herramienta

{
  "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
  }
}

Ejemplo con animación

{
  "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

Cancela una respuesta en curso. Esto detiene inmediatamente la generación de respuestas y la salida de audio relacionada.

Event Structure

{
  "type": "response.cancel"
}

Properties

Field Type Description
type string Debe ser "response.cancel"

input_audio_buffer.append

El evento cliente input_audio_buffer.append se utiliza para añadir bytes de audio al búfer de audio de entrada. El buffer de audio es un almacenamiento temporal donde puedes escribir y luego hacer un commit.

En el modo Server VAD (Detección de Actividad de Voz), el buffer de audio se utiliza para detectar el habla y el servidor decide cuándo hacer el comet. Cuando el VAD del servidor está desactivado, el cliente puede elegir cuánto audio colocar en cada evento hasta un máximo de 15 MiB. Por ejemplo, transmitir fragmentos más pequeños desde el cliente puede permitir que el VAD sea más responsivo.

A diferencia de la mayoría de los eventos del cliente, el servidor no envía una respuesta de confirmación al evento del cliente input_audio_buffer.append .

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser input_audio_buffer.append.
audio string Bytes de audio codificados en base64. Este valor debe estar en el formato especificado por el input_audio_format campo en la configuración de la sesión.

input_audio_buffer.clear

El evento cliente input_audio_buffer.clear se utiliza para borrar los bytes de audio en el búfer.

El servidor responde con un input_audio_buffer.cleared evento.

Event structure

{
  "type": "input_audio_buffer.clear"
}

Properties

Field Type Description
type string El tipo de evento debe ser input_audio_buffer.clear.

input_audio_buffer.commit

El evento cliente input_audio_buffer.commit se utiliza para confirmar el búfer de audio de entrada del usuario, que crea un nuevo elemento de mensaje de usuario en la conversación. El audio se transcribe si input_audio_transcription está configurado para la sesión.

Cuando está en modo VAD de servidor, el cliente no necesita enviar este evento, el servidor hace commit automático del búfer de audio. Sin VAD del servidor, el cliente debe comprometer el búfer de audio para crear un elemento de mensaje de usuario. Este evento cliente produce un error si el búfer de audio de entrada está vacío.

Hacer commit del búfer de audio de entrada no genera una respuesta desde el modelo.

El servidor responde con un input_audio_buffer.committed evento.

Event structure

{
  "type": "input_audio_buffer.commit"
}

Properties

Field Type Description
type string El tipo de evento debe ser input_audio_buffer.commit.

Server Events

La API de Voice Live envía los siguientes eventos del servidor para comunicar estado, respuestas y datos al cliente:

Event Description
error Indica que se produjo un error durante el procesamiento
warning Indica que se ha producido una advertencia que no interrumpe el flujo de la conversación
session.created Envía cuando se establece con éxito una nueva sesión
session.updated Se envía cuando se actualiza la configuración de la sesión
session.avatar.connecting Indica que se está estableciendo la conexión con el avatar WebRTC
conversation.item.created Se envía cuando se añade un nuevo elemento a la conversación
conversation.item.retrieved Respuesta a la solicitud conversation.item.retrieve
conversation.item.truncated Confirma la truncación de elementos
conversation.item.deleted Confirma la eliminación de elementos
conversation.item.input_audio_transcription.completed La transcripción de audio de entrada está completa
conversation.item.input_audio_transcription.delta Transcripción de audio con entrada en streaming
conversation.item.input_audio_transcription.failed Fallo en la transcripción de audio de entrada
input_audio_buffer.committed El búfer de audio de entrada era para el procesamiento
input_audio_buffer.cleared El búfer de audio de entrada fue borrado
input_audio_buffer.speech_started Voz detectada en el búfer de audio de entrada (VAD)
input_audio_buffer.speech_stopped El habla terminaba en el búfer de audio de entrada (VAD)
response.created Ha comenzado una nueva generación de respuestas
response.done La generación de respuestas está completa
response.output_item.added Se ha añadido nuevo elemento de salida a la respuesta
response.output_item.done El ítem de salida está completo
response.content_part.added Se añadió nueva parte de contenido al elemento de salida
response.content_part.done La parte de contenido está completa
response.text.delta Contenido de texto en streaming desde el modelo
response.text.done El contenido de texto está completo
response.audio_transcript.delta Transcripción de audio en streaming
response.audio_transcript.done La transcripción de audio está completa
response.audio.delta Streaming de contenido de audio desde el modelo
response.audio.done El contenido de audio está completo
response.animation_blendshapes.delta Datos de blendshapes de animación en streaming
response.animation_blendshapes.done Los datos de Animation Blendshapes están completos
response.audio_timestamp.delta Información sobre la marca temporal de audio en streaming
response.audio_timestamp.done La información de la marca de tiempo de audio está completa
response.animation_viseme.delta Datos de visema de animación en streaming
response.animation_viseme.done Los datos del visema de animación están completos
response.function_call_arguments.delta Argumentos de llamada a función de streaming
response.function_call_arguments.done Los argumentos de llamada de función son completos
mcp_list_tools.in_progress La lista de herramientas MCP está en curso
mcp_list_tools.completed Listado de herramientas MCP completado
mcp_list_tools.failed La inclusión de herramientas MCP ha fracasado
response.mcp_call_arguments.delta Argumentos de llamada MCP en streaming
response.mcp_call_arguments.done Los argumentos de llamada MCP están completos
response.mcp_call.in_progress La llamada MCP está en curso
response.mcp_call.completed Se completa la llamada MCP
response.mcp_call.failed La llamada MCP ha fallado

session.created

Se envía cuando se establece con éxito una nueva sesión. Este es el primer evento recibido tras conectarse a la API.

Event Structure

{
  "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"
  }
}

Properties

Field Type Description
type string Debe ser "session.created"
session RealtimeResponseSession El objeto de sesión creado

session.updated

Se envía cuando la configuración de la sesión se actualiza correctamente en respuesta a un session.update evento del cliente.

Event Structure

{
  "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
    }
  }
}

Properties

Field Type Description
type string Debe ser "session.updated"
session RealtimeResponseSession El objeto de sesión actualizado

session.avatar.connecting

Indica que se está estableciendo una conexión avatar con WebRTC. Este evento se envía en respuesta a un session.avatar.connect evento de un cliente.

Event Structure

{
  "type": "session.avatar.connecting",
  "server_sdp": "<server_sdp>"
}

Properties

Field Type Description
type string Debe ser "session.avatar.connecting"

conversation.item.created

Se envía cuando se añade un nuevo elemento a la conversación, ya sea a través de un evento del cliente conversation.item.create o automáticamente durante la generación de respuestas.

Event Structure

{
  "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?"
      }
    ]
  }
}

Properties

Field Type Description
type string Debe ser "conversation.item.created"
previous_item_id string ID del artículo tras el cual se insertó este elemento
item RealtimeConversationResponseItem El elemento de conversación creado

Ejemplo con elemento de 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

Enviado en respuesta a un conversation.item.retrieve evento del cliente, proporcionando el elemento de conversación solicitado.

Event Structure

{
  "type": "conversation.item.retrieved",
  "item": {
    "id": "item_ABC123",
    "object": "realtime.item",
    "type": "message",
    "status": "completed",
    "role": "assistant",
    "content": [
      {
        "type": "audio",
        "audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
        "transcript": "Hello! I'm doing well, thank you for asking. How can I help you today?"
      }
    ]
  }
}

Properties

Field Type Description
type string Debe ser "conversation.item.retrieved"
item RealtimeConversationResponseItem El elemento recuperado de la conversación

conversation.item.truncated

El evento del servidor conversation.item.truncated se devuelve cuando el cliente trunca un elemento anterior de un mensaje de audio asistente con un conversation.item.truncate evento. Este evento se utiliza para sincronizar la comprensión del audio del servidor con la reproducción del cliente.

Este evento trunca el audio y elimina la transcripción del texto del servidor para asegurar que no haya texto en el contexto que el usuario no conozca.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser conversation.item.truncated.
item_id string El ID del elemento del mensaje del asistente que se truncó.
content_index integer El índice de la parte de contenido que fue truncada.
audio_end_ms integer La duración hasta la que el audio se cortó, en milisegundos.

conversation.item.deleted

Enviado en respuesta a un conversation.item.delete evento del cliente, confirmando que el elemento especificado ha sido eliminado de la conversación.

Event Structure

{
  "type": "conversation.item.deleted",
  "item_id": "item_ABC123"
}

Properties

Field Type Description
type string Debe ser "conversation.item.deleted"
item_id string ID del elemento eliminado

response.created

Se envía cuando comienza una nueva generación de respuesta. Este es el primer evento en una secuencia de respuesta.

Event Structure

{
  "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
    }
  }
}

Properties

Field Type Description
type string Debe ser "response.created"
response RealtimeResponse El objeto de respuesta que se creó

response.done

Se envía cuando la generación de respuestas está completa. Este evento contiene la respuesta final con todos los ítems de salida y estadísticas de uso.

Event Structure

{
  "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
      }
    }
  }
}

Properties

Field Type Description
type string Debe ser "response.done"
response RealtimeResponse El objeto de respuesta completado

response.output_item.added

Se envía cuando se añade un nuevo elemento de salida a la respuesta durante la generación.

Event Structure

{
  "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": []
  }
}

Properties

Field Type Description
type string Debe ser "response.output_item.added"
response_id string ID de la respuesta a la que pertenece este ítem
output_index integer Índice del elemento en el array de salida de la respuesta
item RealtimeConversationResponseItem El elemento de salida que se añadió

response.output_item.done

Se envía cuando un elemento de salida está completo.

Event Structure

{
  "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."
      }
    ]
  }
}

Properties

Field Type Description
type string Debe ser "response.output_item.done"
response_id string ID de la respuesta a la que pertenece este ítem
output_index integer Índice del elemento en el array de salida de la respuesta
item RealtimeConversationResponseItem El elemento de salida completado

response.content_part.added

El evento del servidor response.content_part.added se devuelve cuando se añade una nueva parte de contenido a un elemento de mensaje asistente durante la generación de respuestas.

Event Structure

{
  "type": "response.content_part.added",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "part": {
    "type": "text",
    "text": ""
  }
}

Properties

Field Type Description
type string Debe ser "response.content_part.added"
response_id string ID de la respuesta
item_id string ID del elemento al que pertenece esta parte de contenido
output_index integer Índice del ítem en la respuesta
content_index integer Índice de esta parte de contenido en el ítem
part RealtimeContentPart La parte de contenido que se añadió

response.content_part.done

El evento del servidor response.content_part.done se devuelve cuando una parte de contenido termina de transmitirse en un elemento de mensaje asistente.

Este evento también se devuelve cuando una respuesta se interrumpe, es incompleta o se cancela.

Event Structure

{
  "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."
  }
}

Properties

Field Type Description
type string Debe ser "response.content_part.done"
response_id string ID de la respuesta
item_id string ID del elemento al que pertenece esta parte de contenido
output_index integer Índice del ítem en la respuesta
content_index integer Índice de esta parte de contenido en el ítem
part RealtimeContentPart La parte de contenido completado

response.text.delta

Streaming de contenido textual desde el modelo. Se envía de forma incremental a medida que el modelo genera texto.

Event Structure

{
  "type": "response.text.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "Hello! I'm"
}

Properties

Field Type Description
type string Debe ser "response.text.delta"
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido
delta string Contenido de texto incremental

response.text.done

Se envía cuando la generación de contenido de texto está completa.

Event Structure

{
  "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?"
}

Properties

Field Type Description
type string Debe ser "response.text.done"
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido
text string El contenido completo del texto

response.audio.delta

Streaming de audio desde el modelo. El audio se proporciona como datos codificados en base64.

Event Structure

{
  "type": "response.audio.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}

Properties

Field Type Description
type string Debe ser "response.audio.delta"
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido
delta string Fragmento de datos de audio codificado en Base64

response.audio.done

Se envía cuando la generación de contenido de audio está completa.

Event Structure

{
  "type": "response.audio.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0
}

Properties

Field Type Description
type string Debe ser "response.audio.done"
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido

response.audio_transcript.delta

Transcripción en streaming del contenido de audio generado.

Event Structure

{
  "type": "response.audio_transcript.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "Hello! I'm doing"
}

Properties

Field Type Description
type string Debe ser "response.audio_transcript.delta"
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido
delta string Texto incremental de la transcripción

response.audio_transcript.done

Se envía cuando la generación de transcripciones de audio esté completa.

Event Structure

{
  "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?"
}

Properties

Field Type Description
type string Debe ser "response.audio_transcript.done"
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido
transcript string El texto completo de la transcripción

conversation.item.input_audio_transcription.completed

El evento del servidor conversation.item.input_audio_transcription.completed es el resultado de la transcripción de audio para el habla escrita en el búfer de audio.

La transcripción comienza cuando el cliente o servidor (en server_vad modo) compromete el búfer de audio de entrada. La transcripción se ejecuta de forma asíncrona con la creación de respuestas, por lo que este evento puede ocurrir antes o después de los eventos de respuesta.

Los modelos API en tiempo real aceptan audio de forma nativa, por lo que la transcripción de entrada es un proceso separado que se ejecuta sobre un modelo de reconocimiento de voz distinto como whisper-1. Así, la transcripción puede divergir algo de la interpretación del modelo y debe tratarse como una guía aproximada.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser conversation.item.input_audio_transcription.completed.
item_id string El ID del elemento de mensaje de usuario que contiene el audio.
content_index integer El índice de la parte de contenido que contiene el audio.
transcript string El texto transcrito.

conversation.item.input_audio_transcription.delta

El evento del servidor conversation.item.input_audio_transcription.delta se devuelve cuando se configura la transcripción de audio de entrada y se realiza una solicitud de transcripción para un mensaje de usuario. Este evento proporciona resultados parciales de transcripción a medida que están disponibles.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser conversation.item.input_audio_transcription.delta.
item_id string El ID del elemento del mensaje de usuario.
content_index integer El índice de la parte de contenido que contiene el audio.
delta string El texto de transcripción incremental.

conversation.item.input_audio_transcription.failed

El evento del servidor conversation.item.input_audio_transcription.failed se devuelve cuando se configura la transcripción de audio de entrada y falla una solicitud de transcripción para un mensaje de usuario. Este evento es independiente de otros error eventos para que el cliente pueda identificar el elemento relacionado.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser conversation.item.input_audio_transcription.failed.
item_id string El ID del elemento del mensaje de usuario.
content_index integer El índice de la parte de contenido que contiene el audio.
error object Detalles del error de transcripción.

Consulta las propiedades anidadas en la siguiente tabla.

Error properties

Field Type Description
type string El tipo de error.
code string Código de error, si es que hay alguno.
message string Un mensaje de error legible para humanos.
param string Parámetro relacionado con el error, si es que lo hay.

response.animation_blendshapes.delta

El evento del servidor response.animation_blendshapes.delta se devuelve cuando el modelo genera datos de blendshapes de animación como parte de una respuesta. Este evento proporciona datos incrementales de blendshapes a medida que están disponibles.

Event structure

{
  "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]
    ...
  ]
}

Properties

Field Type Description
type string El tipo de evento debe ser response.animation_blendshapes.delta.
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido
frame_index integer Índice del primer fotograma de este lote de fotogramas
frames Array de array de float Un array de frames blendshape, cada fotograma es un array de valores blendshape

response.animation_blendshapes.done

El evento del servidor response.animation_blendshapes.done se devuelve cuando el modelo ha terminado de generar los datos de blendshapes de animación como parte de una respuesta.

Event structure

{
  "type": "response.animation_blendshapes.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
}

Properties

Field Type Description
type string El tipo de evento debe ser response.animation_blendshapes.done.
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta

response.audio_timestamp.delta

El evento del servidor response.audio_timestamp.delta se devuelve cuando el modelo genera datos de marca de tiempo de audio como parte de una respuesta. Este evento proporciona datos incrementales de marca temporal para la alineación de audio y texto de salida a medida que está disponible.

Event structure

{
  "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"
}

Properties

Field Type Description
type string El tipo de evento debe ser response.audio_timestamp.delta.
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido
audio_offset_ms integer Desplazamiento de audio en milisegundos desde el inicio del audio
audio_duration_ms integer Duración del segmento de audio en milisegundos
text string El segmento de texto correspondiente a esta marca de tiempo de audio
timestamp_type string El tipo de marca temporal, actualmente solo se admite "palabra"

response.audio_timestamp.done

Se envía cuando la generación de la marca de tiempo de audio está completa.

Event Structure

{
  "type": "response.audio_timestamp.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0
}

Properties

Field Type Description
type string El tipo de evento debe ser response.audio_timestamp.done.
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido

response.animation_viseme.delta

El evento del servidor response.animation_viseme.delta se devuelve cuando el modelo genera datos de visemas de animación como parte de una respuesta. Este evento proporciona datos incrementales de visema a medida que están disponibles.

Event Structure

{
  "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
}

Properties

Field Type Description
type string El tipo de evento debe ser response.animation_viseme.delta.
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido
audio_offset_ms integer Desplazamiento de audio en milisegundos desde el inicio del audio
viseme_id integer El ID del visema correspondiente a la forma de la boca para la animación

response.animation_viseme.done

El evento del servidor response.animation_viseme.done se devuelve cuando el modelo ha terminado de generar datos de visemas de animación como parte de una respuesta.

Event Structure

{
  "type": "response.animation_viseme.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0
}

Properties

Field Type Description
type string El tipo de evento debe ser response.animation_viseme.done.
response_id string ID de la respuesta
item_id string Identificación del objeto
output_index integer Índice del ítem en la respuesta
content_index integer Índice de la parte de contenido

error

El evento del servidor error se devuelve cuando ocurre un error, que puede ser un problema del cliente o del servidor. La mayoría de los errores son recuperables y la sesión permanece abierta.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser error.
error object Detalles del error.

Consulta las propiedades anidadas en la siguiente tabla.

Error properties

Field Type Description
type string El tipo de error. Por ejemplo, "invalid_request_error" y "server_error" son tipos de error.
code string Código de error, si es que hay alguno.
message string Un mensaje de error legible para humanos.
param string Parámetro relacionado con el error, si es que lo hay.
event_id string El ID del evento cliente que causó el error, si corresponde.

warning

El evento del servidor warning se devuelve cuando ocurre una advertencia que no interrumpe el flujo de conversación. Las advertencias son informativas y la sesión continúa con normalidad.

Event structure

{
  "type": "warning",
  "warning": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>"
  }
}

Properties

Field Type Description
type string El tipo de evento debe ser warning.
warning object Detalles de la advertencia. Consulta las propiedades anidadas en la siguiente tabla.

Warning properties

Field Type Description
message string Un mensaje de advertencia legible para humanos.
code string Optional. Código de advertencia, si es que lo hay.
param string Optional. Parámetro relacionado con la advertencia, si es que hay alguno.

input_audio_buffer.cleared

El evento del servidor input_audio_buffer.cleared se devuelve cuando el cliente borra el búfer de audio de entrada con un input_audio_buffer.clear evento.

Event structure

{
  "type": "input_audio_buffer.cleared"
}

Properties

Field Type Description
type string El tipo de evento debe ser input_audio_buffer.cleared.

input_audio_buffer.committed

El evento del servidor input_audio_buffer.committed se devuelve cuando se compromete un búfer de audio de entrada, ya sea por el cliente o automáticamente en modo VAD del servidor. La item_id propiedad es el ID del elemento de mensaje de usuario creado. Así, también se envía un conversation.item.created evento al cliente.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser input_audio_buffer.committed.
previous_item_id string El ID del elemento anterior tras el cual se inserta el nuevo elemento.
item_id string El ID del elemento del mensaje de usuario creado.

input_audio_buffer.speech_started

El evento del servidor input_audio_buffer.speech_started se devuelve en server_vad modo cuando se detecta la voz en el búfer de audio. Este evento puede ocurrir en cualquier momento en que se añada audio al búfer (a menos que ya se haya detectado el habla).

Note

El cliente puede querer usar este evento para interrumpir la reproducción de audio o proporcionar retroalimentación visual al usuario.

El cliente debe esperar recibir un input_audio_buffer.speech_stopped evento cuando el habla se detiene. La item_id propiedad es el ID del elemento del mensaje de usuario creado cuando el habla se detiene. También item_id se incluye en el input_audio_buffer.speech_stopped evento a menos que el cliente comprometa manualmente el búfer de audio durante la activación del VAD.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser input_audio_buffer.speech_started.
audio_start_ms integer Milisegundos desde el inicio de todo el audio escrito en el búfer durante la sesión en el que se detectó por primera vez el habla. Esta propiedad corresponde al inicio del audio enviado al modelo, e incluye así la prefix_padding_ms configuración en la sesión.
item_id string El ID del elemento de mensaje de usuario creado cuando el habla se detiene.

input_audio_buffer.speech_stopped

El evento del servidor input_audio_buffer.speech_stopped se devuelve en server_vad modo cuando el servidor detecta el fin del habla en el búfer de audio.

El servidor también envía un conversation.item.created evento con el elemento de mensaje de usuario creado a partir del búfer de audio.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser input_audio_buffer.speech_stopped.
audio_end_ms integer Milisegundos desde que empezó la sesión se detuvo el habla. Esta propiedad corresponde al final del audio enviado al modelo, e incluye por tanto la min_silence_duration_ms configuración en la sesión.
item_id string El ID del elemento del mensaje de usuario creado.

rate_limits.updated

El evento del servidor rate_limits.updated se emite al inicio de una respuesta para indicar los límites de velocidad actualizados.

Cuando se crea una respuesta, algunos tokens se reservan para los tokens de salida. Los límites de tarifa que se muestran aquí reflejan esa reserva, que luego se ajusta en consecuencia una vez completada la respuesta.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser rate_limits.updated.
rate_limits array de RealtimeRateLimitsItem La lista de información sobre límites de tarifa.

response.audio.delta

El evento del servidor response.audio.delta se devuelve cuando se actualiza el audio generado por el modelo.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.audio.delta.
response_id string La identificación de la respuesta.
item_id string La identificación del artículo.
output_index integer El índice del ítem de salida en la respuesta.
content_index integer El índice de la parte de contenido en el array de contenido del elemento.
delta string Delta de datos de audio codificados en Base64.

response.audio.done

El evento del servidor response.audio.done se devuelve cuando el audio generado por el modelo está completo.

Este evento también se devuelve cuando una respuesta se interrumpe, es incompleta o se cancela.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.audio.done.
response_id string La identificación de la respuesta.
item_id string La identificación del artículo.
output_index integer El índice del ítem de salida en la respuesta.
content_index integer El índice de la parte de contenido en el array de contenido del elemento.

response.audio_transcript.delta

El evento del servidor response.audio_transcript.delta se devuelve cuando se actualiza la transcripción generada por el modelo de la salida de audio.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.audio_transcript.delta.
response_id string La identificación de la respuesta.
item_id string La identificación del artículo.
output_index integer El índice del ítem de salida en la respuesta.
content_index integer El índice de la parte de contenido en el array de contenido del elemento.
delta string El transcripto delta.

response.audio_transcript.done

El evento del servidor response.audio_transcript.done se devuelve cuando la transcripción generada por el modelo de la salida de audio termina de transmitir.

Este evento también se devuelve cuando una respuesta se interrumpe, es incompleta o se cancela.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.audio_transcript.done.
response_id string La identificación de la respuesta.
item_id string La identificación del artículo.
output_index integer El índice del ítem de salida en la respuesta.
content_index integer El índice de la parte de contenido en el array de contenido del elemento.
transcript string La transcripción final del audio.

response.function_call_arguments.delta

El evento del servidor response.function_call_arguments.delta se devuelve cuando se actualizan los argumentos de la llamada a función generados por el modelo.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.function_call_arguments.delta.
response_id string La identificación de la respuesta.
item_id string El ID del elemento de la llamada a la función.
output_index integer El índice del ítem de salida en la respuesta.
call_id string El ID de la llamada de función.
delta string Los argumentos se diferencian como una cadena JSON.

response.function_call_arguments.done

El evento del servidor response.function_call_arguments.done se devuelve cuando los argumentos de la llamada a la función generados por el modelo terminan de transmitirse.

Este evento también se devuelve cuando una respuesta se interrumpe, es incompleta o se cancela.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.function_call_arguments.done.
response_id string La identificación de la respuesta.
item_id string El ID del elemento de la llamada a la función.
output_index integer El índice del ítem de salida en la respuesta.
call_id string El ID de la llamada de función.
arguments string Los argumentos finales como una cadena JSON.

mcp_list_tools.in_progress

El evento del servidor mcp_list_tools.in_progress se devuelve cuando el servicio empieza a listar las herramientas disponibles de un servidor mcp.

Event structure

{
  "type": "mcp_list_tools.in_progress",
  "item_id": "<mcp_list_tools_item_id>"
}

Properties

Field Type Description
type string El tipo de evento debe ser mcp_list_tools.in_progress.
item_id string El ID del elemento de herramientas de la lista MCP que se está procesando.

mcp_list_tools.completed

El evento del servidor mcp_list_tools.completed se devuelve cuando el servicio completa de listar las herramientas disponibles de un servidor mcp.

Event structure

{
  "type": "mcp_list_tools.completed",
  "item_id": "<mcp_list_tools_item_id>"
}
Properties
Field Type Description
type string El tipo de evento debe ser mcp_list_tools.completed.
item_id string El ID del elemento de herramientas de la lista MCP que se está procesando.

mcp_list_tools.failed

El evento del servidor mcp_list_tools.failed se devuelve cuando el servicio no lista las herramientas disponibles de un servidor mcp.

Event structure

{
  "type": "mcp_list_tools.failed",
  "item_id": "<mcp_list_tools_item_id>"
}
Properties
Field Type Description
type string El tipo de evento debe ser mcp_list_tools.failed.
item_id string El ID del elemento de herramientas de la lista MCP que se está procesando.

response.mcp_call_arguments.delta

El evento del servidor response.mcp_call_arguments.delta se devuelve cuando se actualizan los argumentos de llamada a la herramienta mcp generados por el modelo.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.mcp_call_arguments.delta.
response_id string La identificación de la respuesta.
item_id string El ID del elemento de llamada a la herramienta mcp.
output_index integer El índice del ítem de salida en la respuesta.
delta string Los argumentos se diferencian como una cadena JSON.

response.mcp_call_arguments.done

El evento del servidor response.mcp_call_arguments.done se devuelve cuando los argumentos de llamada a la herramienta mcp generados por el modelo terminan de transmitirse.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.mcp_call_arguments.done.
response_id string La identificación de la respuesta.
item_id string El ID del elemento de llamada a la herramienta mcp.
output_index integer El índice del ítem de salida en la respuesta.
arguments string Los argumentos finales como una cadena JSON.

response.mcp_call.in_progress

El evento del servidor response.mcp_call.in_progress se devuelve cuando una llamada a una herramienta MCP comienza a procesarse.

Event structure

{
  "type": "response.mcp_call.in_progress",
  "item_id": "<item_id>",
  "output_index": 0
}

Properties

Field Type Description
type string El tipo de evento debe ser response.mcp_call.in_progress.
item_id string El ID del elemento de llamada a la herramienta mcp.
output_index integer El índice del ítem de salida en la respuesta.

response.mcp_call.completed

El evento del servidor response.mcp_call.completed se devuelve cuando una llamada a la herramienta MCP se completa con éxito.

Event structure

{
  "type": "response.mcp_call.completed",
  "item_id": "<item_id>",
  "output_index": 0
}

Properties

Field Type Description
type string El tipo de evento debe ser response.mcp_call.completed.
item_id string El ID del elemento de llamada a la herramienta mcp.
output_index integer El índice del ítem de salida en la respuesta.

response.mcp_call.failed

El evento del servidor response.mcp_call.failed se devuelve cuando falla una llamada a una herramienta MCP.

Event structure

{
  "type": "response.mcp_call.failed",
  "item_id": "<item_id>",
  "output_index": 0
}

Properties

Field Type Description
type string El tipo de evento debe ser response.mcp_call.failed.
item_id string El ID del elemento de llamada a la herramienta mcp.
output_index integer El índice del ítem de salida en la respuesta.

response.output_item.added

El evento del servidor response.output_item.added se devuelve cuando se crea un nuevo elemento durante la generación de respuestas.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.output_item.added.
response_id string El ID de la respuesta a la que pertenece el ítem.
output_index integer El índice del ítem de salida en la respuesta.
item RealtimeConversationResponseItem El artículo que se añadió.

response.output_item.done

El evento del servidor response.output_item.done se devuelve cuando un elemento termina de transmitirse.

Este evento también se devuelve cuando una respuesta se interrumpe, es incompleta o se cancela.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.output_item.done.
response_id string El ID de la respuesta a la que pertenece el ítem.
output_index integer El índice del ítem de salida en la respuesta.
item RealtimeConversationResponseItem El producto que ya está hecho en streaming.

response.text.delta

El evento del servidor response.text.delta se devuelve cuando se actualiza el texto generado por el modelo. El texto corresponde a la text parte de contenido de un elemento de mensaje asistente.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.text.delta.
response_id string La identificación de la respuesta.
item_id string La identificación del artículo.
output_index integer El índice del ítem de salida en la respuesta.
content_index integer El índice de la parte de contenido en el array de contenido del elemento.
delta string El texto delta.

response.text.done

El evento del servidor response.text.done se devuelve cuando el texto generado por el modelo termina de transmitirse. El texto corresponde a la text parte de contenido de un elemento de mensaje asistente.

Este evento también se devuelve cuando una respuesta se interrumpe, es incompleta o se cancela.

Event structure

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

Properties

Field Type Description
type string El tipo de evento debe ser response.text.done.
response_id string La identificación de la respuesta.
item_id string La identificación del artículo.
output_index integer El índice del ítem de salida en la respuesta.
content_index integer El índice de la parte de contenido en el array de contenido del elemento.
text string El contenido final del texto.

Components

Audio Formats

RealtimeAudioFormat

Formato base de audio usado para audio de entrada.

Allowed Values:

  • pcm16 - Formato de audio PCM de 16 bits
  • g711_ulaw - Formato de audio G.711 μ-law
  • g711_alaw - Formato de audio G.711 A-law

RealtimeOutputAudioFormat

Formato de audio utilizado para audio de salida con tasas de muestreo específicas.

Allowed Values:

  • pcm16 - Formato de audio PCM de 16 bits a la frecuencia de muestreo predeterminada (24kHz)
  • pcm16_8000hz - Formato de audio PCM de 16 bits a una tasa de muestreo de 8kHz
  • pcm16_16000hz - Formato de audio PCM de 16 bits a tasa de muestreo de 16kHz
  • g711_ulaw - Formato de audio G.711 μ-law (mu-law) a una frecuencia de muestreo de 8kHz
  • g711_alaw - Formato de audio G.711 A-law a 8kHz de tasa de muestreo

RealtimeAudioInputTranscriptionSettings

Configuración para transcripción de audio de entrada.

Field Type Description
model string El modelo de transcripción.
Compatible con gpt-realtime y gpt-realtime-mini:
whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize.
Compatible con todos los demás modelos y agentes: azure-speech, mai-transcribe-1 (vista previa)
language string Código de lenguaje opcional en BCP-47 (por ejemplo, en-US), o ISO-639-1 (por ejemplo, en), o multilingües con detección automática (por ejemplo, en,zh).

Consulta Azure idiomas compatibles con voz a texto para el uso recomendado de esta configuración.
custom_speech object Configuración opcional para modelos de voz personalizados, válida solo para azure-speech modelo.
phrase_list string[] Lista opcional de consejos de frases para el reconocimiento de sesgos, válida solo para azure-speech modelo.
prompt string Texto opcional para guiar la transcripción, válido solo para whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe y gpt-4o-transcribe-diarize modelos.

RealtimeInputAudioNoiseReductionSettings

Esto puede ser:

RealtimeOpenAINoiseReduction

Configuración de reducción de ruido OpenAI con campo de tipo explícito, disponible solo para gpt-realtime modelos y gpt-realtime-mini

Field Type Description
type string near_field o far_field

RealtimeAzureDeepNoiseSuppression

Configuración para la reducción de ruido de audio de entrada.

Field Type Description
type string Debe ser "azure_deep_noise_suppression"

RealtimeInputAudioEchoCancellationSettings

Configuración de cancelación de eco para procesamiento de audio en servidor.

Field Type Description
type string Debe ser "server_echo_cancellation"

Voice Configuration

RealtimeVoice

Unión de todas las configuraciones de voz soportadas.

Esto puede ser:

RealtimeOpenAIVoice

Configuración de voz OpenAI con campo de tipo explícito.

Field Type Description
type string Debe ser "openai"
name string Nombre de voz de OpenAI: alloy, ash, coralballad, echo, sage, , shimmer, marinversecedar

RealtimeAzureVoice

Base para configuraciones de voz en Azure. Se trata de una unión discriminada con diferentes tipos:

RealtimeAzureStandardVoice

Configuración estándar de voz de Azure.

Field Type Description
type string Debe ser "azure-standard"
name string Nombre de la voz (no puede estar vacío)
temperature number Optional. Temperatura entre 0,0 y 1,0
custom_lexicon_url string Optional. URL al léxico personalizado
custom_text_normalization_url string Optional. URL a la normalización de texto personalizada
prefer_locales string[] Optional. Preferred locales
Los lugares preferidos cambian los acentos de los idiomas. Si el valor no está establecido, TTS usa el acento predeterminado de cada idioma. por ejemplo, cuando TTS habla inglés, utiliza el acento del inglés americano. Y cuando habla español, usa el acento mexicano español.
Si se ajusta la prefer_locales a ["en-GB", "es-ES"], el acento inglés es inglés británico y el acento español es español europeo. Y TTS también puede hablar otros idiomas como francés, chino, etc.
locale string Optional. Locale specification
Hacer cumplir la localización para la salida TTS. Si no está activado, TTS siempre usará la ubicación asignada para hablar. Por ejemplo, si configuras la localidad en en-US, TTS siempre usará acento del inglés americano para hablar el contenido del texto, incluso el contenido del texto está en otro idioma. Y TTS generará silencio si el contenido del texto está en chino.
style string Optional. Voice style
pitch string Optional. Pitch adjustment
rate string Optional. Ajuste de la velocidad de habla
volume string Optional. Volume adjustment
RealtimeAzureCustomVoice

Configuración de voz personalizada de Azure (preferida para voces personalizadas).

Field Type Description
type string Debe ser "azure-custom"
name string Nombre de la voz (no puede estar vacío)
endpoint_id string ID de endpoint (no puede estar vacío)
temperature number Optional. Temperatura entre 0,0 y 1,0
custom_lexicon_url string Optional. URL al léxico personalizado
custom_text_normalization_url string Optional. URL a la normalización de texto personalizada
prefer_locales string[] Optional. Preferred locales
Los lugares preferidos cambian los acentos de los idiomas. Si el valor no está establecido, TTS usa el acento predeterminado de cada idioma. Por ejemplo, cuando TTS habla inglés, utiliza el acento del inglés americano. Y cuando habla español, usa el acento mexicano español.
Si se ajusta la prefer_locales a ["en-GB", "es-ES"], el acento inglés es inglés británico y el acento español es español europeo. Y TTS también puede hablar otros idiomas como francés, chino, etc.
locale string Optional. Locale specification
Hacer cumplir la localización para la salida TTS. Si no está activado, TTS siempre usará la ubicación asignada para hablar. Por ejemplo, si se establece la localización en en-US, TTS siempre usará acento del inglés americano para hablar el contenido del texto, incluso si el contenido está en otro idioma. Y TTS generará silencio si el contenido del texto está en chino.
style string Optional. Voice style
pitch string Optional. Pitch adjustment
rate string Optional. Ajuste de la velocidad de habla
volume string Optional. Volume adjustment

Example:

{
  "type": "azure-custom",
  "name": "my-custom-voice",
  "endpoint_id": "12345678-1234-1234-1234-123456789012",
  "temperature": 0.7,
  "style": "cheerful",
  "locale": "en-US"
}
RealtimeAzurePersonalVoice

Azure personal voice configuration.

Field Type Description
type string Debe ser "azure-personal"
name string Nombre de la voz (no puede estar vacío)
temperature number Optional. Temperatura entre 0,0 y 1,0
model string Modelo base subyacente: DragonLatestNeural, DragonHDOmniLatestNeural, MAI-Voice-1
custom_lexicon_url string Optional. URL al léxico personalizado
custom_text_normalization_url string Optional. URL a la normalización de texto personalizada
prefer_locales string[] Optional. Preferred locales
Preferir que los lugares cambien los acentos de los idiomas. Si el valor no está establecido, TTS usa el acento predeterminado de cada idioma. Por ejemplo, cuando TTS habla inglés, usa el acento del inglés americano. Y cuando habla español, usa el acento mexicano español.
Si se ajusta la prefer_locales a ["en-GB", "es-ES"], el acento inglés es inglés británico y el acento español es español europeo. Y TTS también puede hablar otros idiomas como francés, chino, etc.
locale string Optional. Locale specification
Hacer cumplir la localización para la salida TTS. Si no está activado, TTS siempre usará la ubicación asignada para hablar. Por ejemplo, si se establece la localización en en-US, TTS siempre usará acento del inglés americano para hablar el contenido del texto, incluso si el contenido está en otro idioma. Y TTS generará silencio si el contenido del texto está en chino.
pitch string Optional. Pitch adjustment
rate string Optional. Ajuste de la velocidad de habla
volume string Optional. Volume adjustment

Turn Detection

RealtimeTurnDetection

Configuración para detección de giros. Se trata de un sindicato discriminado que soporta múltiples tipos de DAV.

RealtimeServerVAD

Detección de giro basada en VAD base.

Field Type Description
type string Debe ser "server_vad"
threshold float Optional. Umbral de activación (0.0-1.0) (por defecto: 0.5)
prefix_padding_ms integer Optional. Relleno de audio antes de que empiece el habla (por defecto: 300)
silence_duration_ms integer Optional. Duración del silencio para detectar el fin del habla (por defecto: 500)
speech_duration_ms integer Optional. Duración mínima del habla (por defecto: 200)
end_of_utterance_detection RealtimeEOUDetection Optional. Configuración de detección de fin de enunciado
create_response boolean Optional. Activa o desactiva si se genera una respuesta (por defecto: verdadero).
interrupt_response boolean Optional. Activar o desactivar la interrupción de entrada de barge (por defecto: verdadero).
auto_truncate boolean Optional. Autotruncada al interrumpir (por defecto: falso)
RealtimeOpenAISemanticVAD

Configuración semántica VAD de OpenAI, que utiliza un modelo para determinar cuándo el usuario ha terminado de hablar. Solo disponible para gpt-realtime modelos.gpt-realtime-mini

Field Type Description
type string Debe ser "semantic_vad"
eagerness string Optional. Esta es una forma de controlar lo ansioso que está el modelo por interrumpir al usuario, ajustando el tiempo máximo de espera. En modo transcripción, aunque el modelo no responda, afecta a cómo se divide el audio.
Se permiten los siguientes valores:
- auto (por defecto) es equivalente a medium,
- low permite al usuario tomarse su tiempo para hablar,
- high Partiré el audio lo antes posible.

Si quieres que el modelo responda más a menudo en modo conversación, o que devuelva eventos de transcripción más rápido en modo transcripción, puedes configurar la disposición de entusiasmo a high.
Por otro lado, si quieres que el usuario hable sin interrupciones en modo conversación, o si prefieres fragmentos de transcripción más grandes en modo transcripción, puedes configurar la disposición de entusiasmo en low.
create_response boolean Optional. Activa o desactiva si se genera una respuesta (por defecto: verdadero).
interrupt_response boolean Optional. Activar o desactivar la interrupción de entrada de barge (por defecto: verdadero).
RealtimeAzureSemanticVAD

Azure Semantic VAD, que determina cuándo el usuario inicia y habla usando un modelo semántico de voz, proporcionando una detección más robusta en entornos ruidosos.

Field Type Description
type string Debe ser "azure_semantic_vad"
threshold float Optional. Umbral de activación (por defecto: 0,5)
prefix_padding_ms integer Optional. Relleno de audio antes de la voz (por defecto: 300)
silence_duration_ms integer Optional. Duración del silencio al final del habla (por defecto: 500)
end_of_utterance_detection RealtimeEOUDetection Optional. Configuración de detección EOU
speech_duration_ms integer Optional. Duración mínima del habla (por defecto: 80)
remove_filler_words boolean Optional. Eliminar palabras de relleno (por defecto: falso)
languages string[] Optional. Supports English. Otros idiomas son ignorados (por defecto: ninguno).
create_response boolean Optional. Activa o desactiva si se genera una respuesta (por defecto: verdadero).
interrupt_response boolean Optional. Activar o desactivar la interrupción de entrada de barge (por defecto: verdadero).
auto_truncate boolean Optional. Autotruncada al interrumpir (por defecto: falso)
RealtimeAzureSemanticVADMultilingual

Azure semantic VAD (variante por defecto).

Field Type Description
type string Debe ser "azure_semantic_vad_multilingual"
threshold float Optional. Umbral de activación (por defecto: 0,5)
prefix_padding_ms integer Optional. Relleno de audio antes de la voz (por defecto: 300)
silence_duration_ms integer Optional. Duración del silencio al final del habla (por defecto: 500)
end_of_utterance_detection RealtimeEOUDetection Optional. Configuración de detección EOU
speech_duration_ms integer Optional. Duración mínima del habla (por defecto: 80)
remove_filler_words boolean Optional. Eliminar palabras de relleno (por defecto: falso)
languages string[] Optional. Soporta inglés, español, francés, italiano, alemán (DE), japonés, portugués, chino, coreano e hindi. Otros idiomas son ignorados (por defecto: ninguno).
create_response boolean Optional. Activa o desactiva si se genera una respuesta (por defecto: verdadero).
interrupt_response boolean Optional. Activar o desactivar la interrupción de entrada de barge (por defecto: verdadero).
auto_truncate boolean Optional. Autotruncada al interrumpir (por defecto: falso)

RealtimeEOUDetection

Azure End-of-Utterance (EOU) podría indicar cuándo el usuario final dejó de hablar, permitiendo pausas naturales. La detección de fin de enunciación puede reducir significativamente los intermitentes prematuros al final de giro sin añadir latencia perceptible por el usuario.

Field Type Description
model string Podría estar semantic_detection_v1 apoyando inglés o semantic_detection_v1_multilingual inglés, español, francés, italiano, alemán (DE), japonés, portugués, chino, coreano, hindi
threshold_level string Optional. Nivel umbral de detección (low, medium, high y default), el valor por defecto medium es igual a la configuración. Con un ajuste más bajo, la probabilidad de que la oración esté completa será mayor.
timeout_ms number Optional. Tiempo máximo en milisegundos para esperar a más habla del usuario. Por defecto es 1000 ms.

Avatar Configuration

RealtimeAvatarConfig

Configuración para el streaming y comportamiento del avatar.

Field Type Description
ice_servers RealtimeIceServer[] Optional. Servidores ICE para WebRTC
character string Nombre del personaje o ID del avatar
style string Optional. Estilo Avatar (tono emocional, estilo de habla)
customized boolean Si el avatar está personalizado
video RealtimeVideoParams Optional. Video configuration
scene RealtimeAvatarScene Optional. Configuración para el nivel de zoom, posición, rotación y amplitud de movimiento del avatar en el fotograma de vídeo
output_protocol string Optional. Protocolo de salida para streaming de avatares. El valor por defecto es webrtc
output_audit_audio boolean Optional. Cuando está activado, reenvía audio auditado vía WebSocket para fines de revisión y depuración, incluso cuando la salida del avatar se entrega a través de WebRTC. El valor por defecto es false

RealtimeIceServer

Configuración del servidor ICE para la negociación de conexiones WebRTC.

Field Type Description
urls string[] URLs de servidores ICE (endpoints TURN o STUN)
username string Optional. Nombre de usuario para autenticación
credential string Optional. Credencial para autenticación

RealtimeVideoParams

Parámetros de transmisión de vídeo para Avatar.

Field Type Description
bitrate integer Optional. Tasa de bits en bits por segundo (por defecto: 2000000)
codec string Optional. Códec de vídeo, solo h264 actualmente (por defecto: h264)
crop RealtimeVideoCrop Optional. Cropping settings
resolution RealtimeVideoResolution Optional. Resolution settings

RealtimeVideoCrop

Definición de rectángulo de recorte en vídeo.

Field Type Description
top_left integer[] Esquina superior izquierda [x, y], enteros no negativos
bottom_right integer[] Esquina inferior derecha [x, y], enteros no negativos

RealtimeVideoResolution

Especificación de resolución de vídeo.

Field Type Description
width integer Ancho en píxeles (debe ser > 0)
height integer Altura en píxeles (debe ser > 0)

RealtimeAvatarScene

Configuración para el nivel de zoom, posición, rotación y amplitud de movimiento del avatar en el fotograma de vídeo.

Field Type Description
zoom number Optional. Nivel de zoom del avatar. El rango es (0, +∞). Valores menores que 1 alejan el zoom, valores mayores que 1 hacen zoom. El valor por defecto es 0
position_x number Optional. Posición horizontal del avatar. El alcance es [-1, 1], como proporción del ancho del fotograma. Los valores negativos se mueven a la izquierda, los positivos a la derecha. El valor por defecto es 0
position_y number Optional. Posición vertical del avatar. El alcance es [-1, 1], en proporción de la altura del fotograma. Los valores negativos suben, los positivos bajan. El valor por defecto es 0
rotation_x number Optional. Rotación alrededor del eje X (tono de altura). El alcance es [-π, π] en radianes. Los valores negativos giran hacia arriba, los valores positivos rotan hacia abajo. El valor por defecto es 0
rotation_y number Optional. Rotación alrededor del eje Y (guiñada). El alcance es [-π, π] en radianes. Los valores negativos giran a la izquierda, los valores positivos giran a la derecha. El valor por defecto es 0
rotation_z number Optional. Rotación alrededor del eje Z (balanceo). El alcance es [-π, π] en radianes. Los valores negativos giran en sentido antihorario, los valores positivos giran en sentido horario. El valor por defecto es 0
amplitude number Optional. Amplitud del movimiento del avatar. El rango es (0, 1]. Los valores en (0, 1) significan amplitud reducida, 1 significa amplitud completa. El valor por defecto es 0

Animation Configuration

RealtimeAnimation

Configuración para salidas de animación incluyendo blendshapes y visemas.

Field Type Description
model_name string Optional. Nombre del modelo de animación (por defecto: "default")
outputs RealtimeAnimationOutputType[] Optional. Tipos de salida (por defecto: ["blendshapes"])

RealtimeAnimationOutputType

Tipos de datos de animación para exportar.

Allowed Values:

  • blendshapes - Datos de blendshapes faciales
  • viseme_id - Datos de identificador de Viseme

Session Configuration

RealtimeRequestSession

Objeto de configuración de sesión usado en session.update eventos.

Field Type Description
model string Optional. Nombre del modelo a usar
modalities RealtimeModality[] Optional. Las modalidades de salida soportadas para la sesión.

Por ejemplo, "modalidades": ["texto", "audio"] es la configuración predeterminada que permite tanto la salida de texto como de audio. Para habilitar solo la salida de texto, establece "modalidades": ["texto"]. Para habilitar la salida del avatar, establece "modalidades": ["texto", "audio", "avatar"]. No puedes activar solo el audio.
animation RealtimeAnimation Optional. Animation configuration
voice RealtimeVoice Optional. Voice configuration
instructions string Optional. Instrucciones del sistema para el modelo. Las instrucciones podrían guiar el audio de salida si se usan voces OpenAI, pero puede que no se apliquen a voces de Azure.
input_audio_sampling_rate integer Optional. Tasa de muestreo de audio de entrada en Hz (por defecto: 24000 para pcm16, 8000 para g711_ulaw y g711_alaw)
input_audio_format RealtimeAudioFormat Optional. Formato de audio de entrada (por defecto: pcm16)
output_audio_format RealtimeOutputAudioFormat Optional. Formato de audio de salida (por defecto: pcm16)
input_audio_noise_reduction RealtimeInputAudioNoiseReductionSettings Configuración para la reducción de ruido de audio de entrada. Esto se puede poner en nulo para desactivarse. La reducción de ruido filtra el audio añadido al búfer de audio de entrada antes de que se envíe al VAD y al modelo. Filtrar el audio puede mejorar la precisión de la detección de VAD y giros (reduciendo falsos positivos) y el rendimiento del modelo al mejorar la percepción del audio de entrada.

Esta propiedad es anulable.
input_audio_echo_cancellation RealtimeInputAudioEchoCancellationSettings Configuración para cancelación de eco de audio de entrada. Esto se puede poner en nulo para desactivarse. Esta cancelación de eco en el lado del servicio puede ayudar a mejorar la calidad del audio de entrada al reducir el impacto del eco y la reverberación.

Esta propiedad es anulable.
input_audio_transcription RealtimeAudioInputTranscriptionSettings La configuración para la transcripción de audio de entrada. La configuración es nula (apagada) por defecto. La transcripción de audio de entrada no es nativa del modelo, ya que el modelo consume audio directamente. La transcripción se ejecuta de forma asincrónica a través del /audio/transcriptions endpoint y debe tratarse como una guía del contenido de audio de entrada en lugar de lo que el modelo escuchó exactamente. Para orientación adicional al servicio de transcripción, el cliente puede opcionalmente establecer el idioma y solicitar la transcripción.

Esta propiedad es anulable.
turn_detection RealtimeTurnDetection Los ajustes de detección de giros para la sesión. Esto se puede poner en nulo para desactivarse.
tools array de RealtimeTool Las herramientas disponibles para el modelo durante la sesión.
tool_choice RealtimeToolChoice La elección de herramienta para la sesión.

Valores permitidos: auto, none, y required. De lo contrario, puedes especificar el nombre de la función que vas a usar.
temperature number La temperatura de muestreo para el modelo. Los valores de temperatura permitidos están limitados a [0,6, 1,2]. Por defecto es 0,8.
max_response_output_tokens entero o "inf" El número máximo de tokens de salida por respuesta del asistente, incluyendo llamadas a herramientas.

Especifica un entero entre 1 y 4096 para limitar los tokens de salida. De lo contrario, se pone el valor en "inf" para permitir el mayor número de tokens.

Por ejemplo, para limitar los tokens de salida a 1000, se fija "max_response_output_tokens": 1000. Para permitir el número máximo de tokens, se fija "max_response_output_tokens": "inf".

Por defecto es "inf".
reasoning_effort ReasoningEffort Optional. Restringe el esfuerzo en el razonamiento para modelos de razonamiento. Consulta Azure Foundry doc para más detalles. Reducir el esfuerzo de razonamiento puede resultar en respuestas más rápidas y menos tokens usados en el razonamiento en una respuesta.
avatar RealtimeAvatarConfig Optional. Avatar configuration
output_audio_timestamp_types RealtimeAudioTimestampType[] Optional. Tipos de marca temporal para el audio de salida

RealtimeModality

Soportaba modalidades de salida de sesión.

Allowed Values:

  • text - Salida de texto
  • audio - Salida de audio
  • animation - Producción de animación
  • avatar - Salida de vídeo Avatar

RealtimeAudioTimestampType

Tipos de marca de tiempo de salida soportados en contenido de respuesta de audio.

Allowed Values:

  • word - Marcas de tiempo por palabra en el audio de salida

ReasoningEffort

Restringe el esfuerzo en el razonamiento para modelos de razonamiento. Consulta la documentación del modelo para ver si hay valores compatibles con cada modelo. Reducir el esfuerzo de razonamiento puede resultar en respuestas más rápidas y menos tokens usados en el razonamiento en una respuesta.

Allowed Values:

  • none - Sin esfuerzo de razonamiento
  • minimal - Esfuerzo mínimo de razonamiento
  • low - Bajo esfuerzo de razonamiento: respuestas más rápidas con menos razonamiento
  • medium - Esfuerzo de razonamiento medio - equilibrado entre velocidad y profundidad de razonamiento
  • high - Alto esfuerzo de razonamiento: razonamiento más completo, puede llevar más tiempo
  • xhigh - Esfuerzo de razonamiento extra alto - máxima profundidad de razonamiento

Tool Configuration

Somos compatibles con dos tipos de herramientas: llamadas de funciones y herramientas MCP, que permiten conectarte a un servidor MCP.

RealtimeTool

Definición de herramienta para la llamada a funciones.

Field Type Description
type string Debe ser "function"
name string Function name
description string Descripción de funciones y directrices de uso
parameters object Parámetros de función como objeto de esquema JSON

RealtimeToolChoice

Estrategia de selección de herramientas.

Esto puede ser:

  • "auto" - Que el modelo elija
  • "none" - No uses herramientas
  • "required" - Debe usar una herramienta
  • { "type": "function", "name": "function_name" } - Usar funciones específicas

MCPTool

Configuración de la herramienta MCP.

Field Type Description
type string Debe ser "mcp"
server_label string Required. La etiqueta del servidor MCP.
server_url string Required. La URL del servidor MCP.
allowed_tools string[] Optional. La lista de nombres de herramientas permitidos. Si no se especifica, todas las herramientas están permitidas.
headers object Optional. Cabeceras adicionales para incluir en solicitudes MCP.
authorization string Optional. Token de autorización para solicitudes MCP.
require_approval cadena o diccionario Optional.
Si se establece en una cadena, el valor debe ser never o always.
Si está configurado como diccionario, debe estar en formato {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}.
El valor por defecto es always.
Cuando se establece en always, la ejecución de la herramienta requiere aprobación, mcp_approval_request se enviará al cliente cuando termine el argumento mcp, y solo se ejecutará cuando se reciba mcp_approval_response con approve=true .
Cuando se configura en never, la herramienta se ejecutará automáticamente sin aprobación.

RealtimeConversationResponseItem

Este es un tipo de unión que puede ser uno de los siguientes:

RealtimeConversationUserMessageItem

Mensaje de usuario.

Field Type Description
id string El ID único del artículo.
type string Debe ser "message"
object string Debe ser "conversation.item"
role string Debe ser "user"
content RealtimeInputTextContentPart El contenido del mensaje.
status RealtimeItemStatus El estado del artículo.

RealtimeConversationAssistantMessageItem

Elemento del mensaje del asistente.

Field Type Description
id string El ID único del artículo.
type string Debe ser "message"
object string Debe ser "conversation.item"
role string Debe ser "assistant"
content RealtimeOutputTextContentPart[] o RealtimeOutputAudioContentPart[] El contenido del mensaje.
status RealtimeItemStatus El estado del artículo.

RealtimeConversationSystemMessageItem

Elemento del mensaje del sistema.

Field Type Description
id string El ID único del artículo.
type string Debe ser "message"
object string Debe ser "conversation.item"
role string Debe ser "system"
content RealtimeInputTextContentPart[] El contenido del mensaje.
status RealtimeItemStatus El estado del artículo.

RealtimeConversationFunctionCallItem

Elemento de solicitud de llamada de función.

Field Type Description
id string El ID único del artículo.
type string Debe ser "function_call"
object string Debe ser "conversation.item"
name string El nombre de la función a llamar.
arguments string Los argumentos para la función llaman como una cadena JSON.
call_id string El ID único de la llamada a la función.
status RealtimeItemStatus El estado del artículo.

RealtimeConversationFunctionCallOutputItem

Elemento de respuesta de llamada funcional.

Field Type Description
id string El ID único del artículo.
type string Debe ser "function_call_output"
object string Debe ser "conversation.item"
name string El nombre de la función que se llamó.
output string La salida de la llamada a la función.
call_id string El ID único de la llamada a la función.
status RealtimeItemStatus El estado del artículo.

RealtimeConversationMCPListToolsItem

MCP lista herramientas de respuesta.

Field Type Description
id string El ID único del artículo.
type string Debe ser "mcp_list_tools"
server_label string La etiqueta del servidor MCP.

RealtimeConversationMCPCallItem

Ítem de respuesta de llamada MCP.

Field Type Description
id string El ID único del artículo.
type string Debe ser "mcp_call"
server_label string La etiqueta del servidor MCP.
name string El nombre de la herramienta a la que llamar.
approval_request_id string El ID de solicitud de aprobación para la llamada MCP.
arguments string Los argumentos a favor de la llamada MCP.
output string La salida de la llamada MCP.
error object El error detalla si la llamada MCP falló.

RealtimeConversationMCPApprovalRequestItem

Solicitud de aprobación del MCP ítem.

Field Type Description
id string El ID único del artículo.
type string Debe ser "mcp_approval_request"
server_label string La etiqueta del servidor MCP.
name string El nombre de la herramienta a la que llamar.
arguments string Los argumentos a favor de la llamada MCP.

RealtimeItemStatus

Estado de los temas de conversación.

Allowed Values:

  • in_progress - Actualmente en proceso
  • completed - Completado con éxito
  • incomplete - Incompleto (interrumpido o fallido)

RealtimeContentPart

Parte de contenido dentro de un mensaje.

RealtimeInputTextContentPart

Parte del contenido de texto.

Field Type Description
type string Debe ser "input_text"
text string El contenido del texto

RealtimeOutputTextContentPart

Parte del contenido de texto.

Field Type Description
type string Debe ser "text"
text string El contenido del texto

RealtimeInputAudioContentPart

Parte de contenido de audio.

Field Type Description
type string Debe ser "input_audio"
audio string Optional. Datos de audio codificados en Base64
transcript string Optional. Audio transcript

RealtimeOutputAudioContentPart

Parte de contenido de audio.

Field Type Description
type string Debe ser "audio"
audio string Datos de audio codificados en Base64
transcript string Optional. Audio transcript

Response Objects

RealtimeResponse

Objeto respuesta que representa una respuesta de inferencia modelo.

Field Type Description
id string Optional. Response ID
object string Optional. Siempre "realtime.response"
status RealtimeResponseStatus Optional. Response status
status_details RealtimeResponseStatusDetails Optional. Status details
output RealtimeConversationResponseItem[] Optional. Output items
usage RealtimeUsage Optional. Estadísticas de uso de tokens
conversation_id string Optional. ID de conversación asociado
voice RealtimeVoice Optional. Voz utilizada para la respuesta
modalities string[] Optional. Modalidades de salida utilizadas
output_audio_format RealtimeOutputAudioFormat Optional. Formato de audio utilizado
temperature number Optional. Temperature used
max_response_output_tokens entero o "inf" Optional. Fichas máximas utilizadas

RealtimeResponseStatus

Valores de estado de respuesta.

Allowed Values:

  • in_progress - Se está generando respuesta
  • completed - Respuesta completada con éxito
  • canceled - La respuesta fue cancelada
  • incomplete - Respuesta incompleta (interrumpida)
  • failed - Respuesta fallida con error

RealtimeUsage

Estadísticas de uso de tokens.

Field Type Description
total_tokens integer Total de tokens utilizados
input_tokens integer Tokens de entrada utilizados
output_tokens integer Tokens de salida generados
input_token_details TokenDetails Desglose de los tokens de entrada
output_token_details TokenDetails Desglose de los tokens de salida

TokenDetails

Desglose detallado del uso de los tokens.

Field Type Description
cached_tokens integer Optional. Tokens almacenados en caché utilizados
text_tokens integer Optional. Tokens de texto utilizados
audio_tokens integer Optional. Tokens de audio utilizados

Error Handling

RealtimeErrorDetails

Objeto de información de error.

Field Type Description
type string Tipo de error (por ejemplo, "invalid_request_error", "server_error")
code string Optional. Código de error específico
message string Descripción de error legible por humanos
param string Optional. Parámetro relacionado con el error
event_id string Optional. ID del evento cliente que causó el error

RealtimeConversationRequestItem

Usas el RealtimeConversationRequestItem objeto para crear un nuevo elemento en la conversación a través del evento conversation.item.create .

Este es un tipo de unión que puede ser uno de los siguientes:

RealtimeSystemMessageItem

Un elemento de mensaje del sistema.

Field Type Description
type string El tipo de objeto.

Valores permitidos: message
role string El papel del mensaje.

Valores permitidos: system
content matriz de RealtimeInputTextContentPart El contenido del mensaje.
id string El ID único del artículo. El cliente puede especificar el ID para ayudar a gestionar el contexto del lado del servidor. Si el cliente no proporciona un ID, el servidor lo genera.

RealtimeUserMessageItem

Un mensaje de usuario.

Field Type Description
type string El tipo de objeto.

Valores permitidos: message
role string El papel del mensaje.

Valores permitidos: user
content matriz de RealtimeInputTextContentPart o RealtimeInputAudioContentPart El contenido del mensaje.
id string El ID único del artículo. El cliente puede especificar el ID para ayudar a gestionar el contexto del lado del servidor. Si el cliente no proporciona un ID, el servidor lo genera.

RealtimeAssistantMessageItem

Un mensaje de asistente.

Field Type Description
type string El tipo de objeto.

Valores permitidos: message
role string El papel del mensaje.

Valores permitidos: assistant
content array de RealtimeOutputTextContentPart El contenido del mensaje.

RealtimeFunctionCallItem

Un elemento de llamada de función.

Field Type Description
type string El tipo de objeto.

Valores permitidos: function_call
name string El nombre de la función a llamar.
arguments string Los argumentos de la función llaman como una cadena JSON.
call_id string El ID del elemento de la llamada a la función.
id string El ID único del artículo. El cliente puede especificar el ID para ayudar a gestionar el contexto del lado del servidor. Si el cliente no proporciona un ID, el servidor lo genera.

RealtimeFunctionCallOutputItem

Una función llama a elemento de salida.

Field Type Description
type string El tipo de objeto.

Valores permitidos: function_call_output
call_id string El ID del elemento de la llamada a la función.
output string La salida de la llamada a la función, que es una cadena libre con el resultado de la función, también podría estar vacía.
id string El ID único del artículo. Si el cliente no proporciona un ID, el servidor lo genera.

RealtimeMCPApprovalResponseItem

Un elemento de respuesta de aprobación del MCP.

Field Type Description
type string El tipo de objeto.

Valores permitidos: mcp_approval_response
approve boolean Si la solicitud del MCP es aprobada.
approval_request_id string El ID de la solicitud de aprobación del MCP.
id string El ID único del artículo. El cliente puede especificar el ID para ayudar a gestionar el contexto del lado del servidor. Si el cliente no proporciona un ID, el servidor lo genera.

RealtimeFunctionTool

La definición de una herramienta de función tal como la utiliza el endpoint en tiempo real.

Field Type Description
type string El tipo de herramienta.

Valores permitidos: function
name string El nombre de la función.
description string La descripción de la función, incluyendo las directrices de uso. Por ejemplo, "Usa esta función para obtener la hora actual."
parameters object Los parámetros de la función en forma de objeto JSON.

RealtimeItemStatus

Allowed Values:

  • in_progress
  • completed
  • incomplete

RealtimeResponseAudioContentPart

Field Type Description
type string La parte del tipo de contenido.

Valores permitidos: audio
transcript string La transcripción del audio.

Esta propiedad es anulable.

RealtimeResponseFunctionCallItem

Field Type Description
type string El tipo de objeto.

Valores permitidos: function_call
name string El nombre de la función llama al ítem.
call_id string El ID del elemento de la llamada a la función.
arguments string Los argumentos de la función llaman al ítem.
status RealtimeItemStatus El estado del artículo.

RealtimeResponseFunctionCallOutputItem

Field Type Description
type string El tipo de objeto.

Valores permitidos: function_call_output
call_id string El ID del elemento de la llamada a la función.
output string La salida de la función llama al ítem.

RealtimeResponseOptions

Field Type Description
modalities array Las modalidades de salida para la respuesta.

Valores permitidos: text, audio

Por ejemplo, "modalities": ["text", "audio"] es la configuración predeterminada que habilita tanto la salida de texto como de audio. Para habilitar solo la salida de texto, se configura "modalities": ["text"]. No puedes activar solo el audio.
instructions string Las instrucciones (el mensaje del sistema) para guiar las respuestas del modelo.
voice RealtimeVoice La voz utilizada para la respuesta del modelo durante la sesión.

Una vez que la voz se utiliza en la sesión para la respuesta de audio del modelo, no se puede cambiar.
tools array de RealtimeTool Las herramientas disponibles para el modelo durante la sesión.
tool_choice RealtimeToolChoice La elección de herramienta para la sesión.
temperature number La temperatura de muestreo para el modelo. Los valores de temperatura permitidos están limitados a [0,6, 1,2]. Por defecto es 0,8.
max_response_output_tokens entero o "inf" El número máximo de tokens de salida por respuesta del asistente, incluyendo llamadas a herramientas.

Especifica un entero entre 1 y 4096 para limitar los tokens de salida. De lo contrario, se pone el valor en "inf" para permitir el mayor número de tokens.

Por ejemplo, para limitar los tokens de salida a 1000, se fija "max_response_output_tokens": 1000. Para permitir el número máximo de tokens, se fija "max_response_output_tokens": "inf".

Por defecto es "inf".
reasoning_effort ReasoningEffort Optional. Restringe el esfuerzo en el razonamiento para modelos de razonamiento. Consulta la documentación del modelo para ver si hay valores compatibles con cada modelo. Reducir el esfuerzo de razonamiento puede resultar en respuestas más rápidas y menos tokens usados en el razonamiento en una respuesta.
conversation string Controla a qué conversación se añade la respuesta. Los valores soportados son auto y none.

El auto valor (o no establecer esta propiedad) garantiza que el contenido de la respuesta se añada a la conversación predeterminada de la sesión.

Configura esta propiedad para none crear una respuesta fuera de banda donde los elementos no se añaden a la conversación predeterminada.

Valores predeterminados de "auto"
metadata map Conjunto de hasta 16 pares clave-valor que pueden adjuntarse a un objeto. Esto puede ser útil para almacenar información adicional sobre el objeto en un formato estructurado. Las claves pueden tener un máximo de 64 caracteres y los valores pueden llegar a un máximo de 512 caracteres.

Por ejemplo: metadata: { topic: "classification" }

RealtimeResponseSession

El RealtimeResponseSession objeto representa una sesión en la API en tiempo real. Se utiliza en algunos eventos del servidor, como:

Field Type Description
object string El objeto de la sesión.

Valores permitidos: realtime.session
id string El ID único de la sesión.
model string El modelo utilizado para la sesión.
modalities array Las modalidades de salida para la sesión.

Valores permitidos: text, audio

Por ejemplo, "modalities": ["text", "audio"] es la configuración predeterminada que habilita tanto la salida de texto como de audio. Para habilitar solo la salida de texto, se configura "modalities": ["text"]. No puedes activar solo el audio.
instructions string Las instrucciones (el mensaje del sistema) para guiar las respuestas de texto y audio del modelo.

Aquí tienes algunos ejemplos de instrucciones para ayudar a guiar el contenido y el formato de las respuestas de texto y audio:
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Aquí tienes algunos ejemplos de instrucciones para ayudar a guiar el comportamiento del audio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Aunque el modelo no siempre siga estas instrucciones, proporcionan orientación sobre el comportamiento deseado.
voice RealtimeVoice La voz utilizada para la respuesta del modelo durante la sesión.

Una vez que la voz se utiliza en la sesión para la respuesta de audio del modelo, no se puede cambiar.
input_audio_sampling_rate integer La tasa de muestreo del audio de entrada.
input_audio_format RealtimeAudioFormat El formato del audio de entrada.
output_audio_format RealtimeAudioFormat El formato para el audio de salida.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Los ajustes para la transcripción de entrada de audio.

Esta propiedad es anulable.
turn_detection RealtimeTurnDetection Los ajustes de detección de giros para la sesión.

Esta propiedad es anulable.
tools array de RealtimeTool Las herramientas disponibles para el modelo durante la sesión.
tool_choice RealtimeToolChoice La elección de herramienta para la sesión.
temperature number La temperatura de muestreo para el modelo. Los valores de temperatura permitidos están limitados a [0,6, 1,2]. Por defecto es 0,8.
max_response_output_tokens entero o "inf" El número máximo de tokens de salida por respuesta del asistente, incluyendo llamadas a herramientas.

Especifica un entero entre 1 y 4096 para limitar los tokens de salida. De lo contrario, se pone el valor en "inf" para permitir el mayor número de tokens.

Por ejemplo, para limitar los tokens de salida a 1000, se fija "max_response_output_tokens": 1000. Para permitir el número máximo de tokens, se fija "max_response_output_tokens": "inf".

RealtimeResponseStatusDetails

Field Type Description
type RealtimeResponseStatus El estado de la respuesta.

RealtimeRateLimitsItem

Field Type Description
name string El nombre de la propiedad del límite de tasa sobre el que este elemento incluye información.
limit integer El límite máximo configurado para esta propiedad de límite de tasa.
remaining integer La cuota restante disponible contra el límite configurado para esta propiedad de límite de tasa.
reset_seconds number El tiempo restante, en segundos, hasta que se restablece esta propiedad de límite de tasa.