Condividi tramite


Informazioni di riferimento sugli eventi audio

Gli eventi in tempo reale vengono usati per comunicare tra il client e il server in applicazioni audio in tempo reale. Gli eventi vengono inviati come oggetti JSON su vari endpoint, ad esempio WebSocket o WebRTC. Gli eventi vengono usati per gestire la conversazione, i buffer audio e le risposte in tempo reale.

È possibile usare eventi audio client e server con queste API:

Se non diversamente specificato, gli eventi descritti in questo documento sono applicabili a entrambe le API.

Eventi client

Esistono nove eventi client che possono essere inviati dal client al server:

Event Descrzione
RealtimeClientEventConversationItemCreate L'evento client conversation.item.create viene usato per aggiungere un nuovo elemento al contesto della conversazione, inclusi messaggi, chiamate di funzione e risposte alle chiamate di funzione.
RealtimeClientEventConversationItemDelete L'evento client conversation.item.delete viene usato per rimuovere un elemento dalla cronologia delle conversazioni.
RealtimeClientEventConversationItemRetrieve L'evento client conversation.item.retrieve viene usato per recuperare un elemento dalla cronologia delle conversazioni.
RealtimeClientEventConversationItemTruncate L'evento client conversation.item.truncate viene usato per troncare l'audio di un messaggio assistente precedente.
RealtimeClientEventInputAudioBufferAppend L'evento client input_audio_buffer.append viene usato per aggiungere byte audio al buffer audio di input.
RealtimeClientEventInputAudioBufferClear L'evento client input_audio_buffer.clear viene usato per cancellare i byte audio nel buffer.
RealtimeClientEventInputAudioBufferCommit L'evento client input_audio_buffer.commit viene usato per eseguire il commit del buffer audio di input dell'utente.
RealtimeClientEventOutputAudioBufferClear L'evento client output_audio_buffer.clear viene usato per cancellare i byte audio nel buffer di output.

Questo evento è applicabile solo per WebRTC.
RealtimeClientEventResponseCancel L'evento response.cancel del client viene usato per annullare una risposta in corso.
RealtimeClientEventResponseCreate L'evento client response.create viene usato per indicare al server di creare una risposta tramite l'inferenza del modello.
RealtimeClientEventSessionUpdate L'evento client session.update viene usato per aggiornare la configurazione predefinita della sessione.

RealtimeClientEventConversationItemCreate

L'evento client conversation.item.create viene usato per aggiungere un nuovo elemento al contesto della conversazione, inclusi messaggi, chiamate di funzione e risposte alle chiamate di funzione. Questo evento può essere usato per popolare una cronologia della conversazione e per aggiungere nuovi elementi a metà flusso. Attualmente questo evento non può popolare i messaggi audio dell'assistente.

In caso di esito positivo, il server risponde con un evento conversation.item.created; in caso contrario, viene inviato un evento error.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.create.
previous_item_id corda ID dell'elemento precedente dopo il quale viene inserito il nuovo elemento. Se non impostato, il nuovo elemento viene aggiunto alla fine della conversazione. Se impostato, consente l'inserimento di un elemento a metà conversazione. Se l'ID non viene trovato, viene restituito un errore e l'elemento non viene aggiunto.
oggetto ElementoRichiestaConversazioneInTempoReale Elemento da aggiungere alla conversazione.

RealtimeClientEventConversationItemDelete

L'evento client conversation.item.delete viene usato per rimuovere un elemento dalla cronologia delle conversazioni.

Il server risponde con un evento conversation.item.deleted, a meno che l'elemento non esista nella cronologia delle conversazioni, nel qual caso il server risponde con un errore.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.delete.
item_id corda ID dell'elemento da eliminare.

RealtimeClientEventConversationItemRetrieve

L'evento client conversation.item.retrieve viene usato per recuperare la rappresentazione del server di un elemento specifico nella cronologia delle conversazioni. Questo evento è utile, ad esempio, per controllare l'audio dell'utente dopo l'annullamento del rumore e VAD.

Se l'evento client ha esito positivo, il server risponde con un evento conversation.item.retrieved. Se l'elemento non esiste nella cronologia delle conversazioni, il server risponderà con un errore.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.retrieve.
item_id corda ID dell'elemento da recuperare.
event_id corda ID dell'evento.

RealtimeClientEventConversationItemTruncate

L'evento client conversation.item.truncate viene usato per troncare l'audio di un messaggio assistente precedente. Il server produce audio più velocemente rispetto al tempo reale, quindi questo evento è utile quando l'utente interrompe il troncamento dell'audio inviato al client ma non ancora riprodotto. La comprensione dell'audio da parte del server con la riproduzione del client viene sincronizzata.

Il troncamento dell'audio elimina la trascrizione del testo sul lato server per assicurarsi che nel contesto non sia presente testo che l'utente non conosce.

Se l'evento client ha esito positivo, il server risponde con un evento conversation.item.truncated.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.truncate.
item_id corda ID dell'elemento del messaggio dell'assistente da troncare. È possibile troncare solo gli elementi del messaggio dell'assistente.
content_index numero intero Indice della parte di contenuto da troncare. Impostare questa proprietà su "0".
audio_end_ms numero intero Durata inclusiva fino al quale l'audio viene troncato, in millisecondi. Se l'audio_end_ms è maggiore della durata audio effettiva, il server risponde con un errore.

RealtimeClientEventInputAudioBufferAppend

L'evento client input_audio_buffer.append viene usato per aggiungere byte audio al buffer audio di input. Il buffer audio è temporaneo storage è possibile scrivere in e in seguito eseguire il commit.

In modalità VAD server (rilevamento attività vocali) il buffer audio viene usato per rilevare la voce e il server decide quando eseguire il commit. Quando il VAD del server è disabilitato, il client può scegliere la quantità di audio da inserire in ogni evento fino a un massimo di 15 MiB. Ad esempio, lo streaming di blocchi più piccoli dal client può consentire al VAD di essere più reattivo.

A differenza della maggior parte degli altri eventi client, il server non invia una risposta di conferma all'evento client input_audio_buffer.append.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere input_audio_buffer.append.
audio corda Byte audio con codifica Base64. Questo valore deve essere nel formato specificato dal campo input_audio_format nella configurazione della sessione.

RealtimeClientEventInputAudioBufferClear

L'evento client input_audio_buffer.clear viene usato per cancellare i byte audio nel buffer.

Il server risponde con un evento input_audio_buffer.cleared.

Struttura dell'evento

{
  "type": "input_audio_buffer.clear"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere input_audio_buffer.clear.

RealtimeClientEventInputAudioBufferCommit

L'evento client input_audio_buffer.commit viene usato per eseguire il commit del buffer audio di input dell'utente, che crea un nuovo elemento del messaggio utente nella conversazione. L'audio viene trascritto se input_audio_transcription è configurato per la sessione.

Quando si usa la modalità VAD del server, il client non ha bisogno di inviare questo evento, il server esegue automaticamente il commit del buffer audio. Senza VAD server, il client deve eseguire il commit del buffer audio per creare un elemento di messaggio utente. Questo evento client genera un errore se il buffer audio di input è vuoto.

Il commit del buffer audio di input non crea una risposta dal modello.

Il server risponde con un evento input_audio_buffer.committed.

Struttura dell'evento

{
  "type": "input_audio_buffer.commit"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere input_audio_buffer.commit.

RealtimeClientEventOutputAudioBufferClear

L'evento client output_audio_buffer.clear viene usato per cancellare i byte audio nel buffer.

Annotazioni

Questo evento è applicabile solo per WebRTC.

Questo evento deve essere preceduto da un response.cancel evento client per arrestare la generazione della risposta corrente.

Il server smette di generare audio e risponde con un output_audio_buffer.cleared evento.

Struttura dell'evento

{
  "type": "output_audio_buffer.clear"
}

Proprietà

Campo TIPO Descrzione
event_id corda ID dell'evento che ha causato l'errore.
type corda Il tipo di evento deve essere output_audio_buffer.clear.

RealtimeClientEventResponseCancel

L'evento response.cancel del client viene usato per annullare una risposta in corso.

Il server risponde con un evento response.cancelled o un errore se non è presente alcuna risposta all'annullamento.

Struttura dell'evento

{
  "type": "response.cancel"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.cancel.

RealtimeClientEventResponseCreate

L'evento client response.create viene usato per indicare al server di creare una risposta tramite l'inferenza del modello. Quando la sessione è configurata in modalità VAD server, il server crea automaticamente le risposte.

Una risposta include almeno un item, e può averne due, nel qual caso il secondo è una chiamata di funzione. Questi elementi vengono aggiunti alla cronologia delle conversazioni.

Il server risponde con un evento response.created, uno o più eventi di contenuto ed elementi, ad esempio conversation.item.created e response.content_part.added, e infine un evento response.done per indicare che la risposta è stata completata.

Annotazioni

L'evento client response.create include la configurazione dell'inferenza, ad esempio instructions, e temperature. Questi campi possono eseguire l'override della configurazione della sessione solo per questa risposta.

Struttura dell'evento

{
  "type": "response.create"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.create.
response RealtimeResponseOptions Opzioni di risposta.

RealtimeClientEventSessionUpdate

L'evento client session.update viene usato per aggiornare la configurazione predefinita della sessione. Il client può inviare questo evento in qualsiasi momento per aggiornare la configurazione della sessione e qualsiasi campo può essere aggiornato in qualsiasi momento, ad eccezione della voce.

Vengono aggiornati solo i campi presenti. Per cancellare un campo, ad esempio instructions, passare una stringa vuota.

Il server risponde con un evento session.updated che contiene la configurazione effettiva completa.

Struttura dell'evento

{
  "type": "session.update"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere session.update.
sessione RealtimeRequestSession Configurazione della sessione.

Eventi del server

Dal server possono essere ricevuti 28 eventi del server:

Event Descrzione
RealtimeServerEventConversationCreated L'evento conversation.created del server viene restituito subito dopo la creazione della sessione. Viene creata una conversazione per sessione.
RealtimeServerEventConversationItemCreated L'evento server conversation.item.created viene restituito quando viene creato un elemento di conversazione.
RealtimeServerEventConversationItemRetrieved L'evento server conversation.item.retrieved viene restituito quando viene recuperato un elemento di conversazione.
RealtimeServerEventConversationItemDeleted L'evento server conversation.item.deleted viene restituito quando il client ha eliminato un elemento nella conversazione con un evento conversation.item.delete.
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted L'evento server conversation.item.input_audio_transcription.completed è il risultato della trascrizione audio per il parlato scritto nel buffer audio.
RealtimeServerEventConversationItemInputAudioTranscriptionFailed L'evento server conversation.item.input_audio_transcription.failed viene restituito quando è configurata la trascrizione audio di input e una richiesta di trascrizione per un messaggio utente non è riuscita.
RealtimeServerEventConversationItemTruncated L'evento server conversation.item.truncated viene restituito quando il client tronca un elemento di messaggio audio assistente precedente con un evento conversation.item.truncate.
RealtimeServerEventError L'evento server error viene restituito quando si verifica un errore, che potrebbe essere un problema del client o un problema del server.
RealtimeServerEventInputAudioBufferCleared L'evento server input_audio_buffer.cleared viene restituito quando il client cancella il buffer audio di input con un evento input_audio_buffer.clear.
RealtimeServerEventInputAudioBufferCommitted L'evento server input_audio_buffer.committed viene restituito quando viene eseguito il commit di un buffer audio di input, dal client o automaticamente in modalità VAD del server.
RealtimeServerEventInputAudioBufferSpeechStarted L'evento server input_audio_buffer.speech_started viene restituito in modalità server_vad quando viene rilevato il riconoscimento vocale nel buffer audio.
RealtimeServerEventInputAudioBufferSpeechStopped L'evento server input_audio_buffer.speech_stopped viene restituito in modalità server_vad quando il server rileva la fine della voce nel buffer audio.
RealtimeServerEventOutputAudioBufferCleared L'evento server output_audio_buffer.cleared viene restituito quando l'utente ha interrotto (input_audio_buffer.speech_started) o quando il client ha generato l'evento output_audio_buffer.clear per tagliare manualmente la risposta audio corrente.

Questo evento è applicabile solo per WebRTC.
RealtimeServerEventOutputAudioBufferStarted L'evento server output_audio_buffer.started viene restituito quando il server inizia a trasmettere l'audio al client. Questo evento viene generato dopo l'aggiunta di una parte di contenuto audio (response.content_part.added) alla risposta.

Questo evento è applicabile solo per WebRTC.
RealtimeServerEventOutputAudioBufferStopped L'evento server output_audio_buffer.stopped viene restituito quando il buffer audio di output è stato completamente svuotato nel server e non sarà più disponibile alcun audio.

Questo evento è applicabile solo per WebRTC.
RealtimeServerEventRateLimitsUpdated L'evento server rate_limits.updated viene generato all'inizio di una risposta per indicare i limiti di frequenza aggiornati.
RealtimeServerEventResponseAudioDelta L'evento server response.audio.delta viene restituito quando viene aggiornato l'audio generato dal modello.
RealtimeServerEventResponseAudioDone L'evento server response.audio.done viene restituito al termine dell'audio generato dal modello.
RealtimeServerEventResponseAudioTranscriptDelta L'evento server response.audio_transcript.delta viene restituito quando viene aggiornata la trascrizione dell'output audio generata dal modello.
RealtimeServerEventResponseAudioTranscriptDone L'evento server response.audio_transcript.done viene restituito quando viene eseguita la trascrizione dell'output audio generata dal modello.
RealtimeServerEventResponseContentPartAdded L'evento server response.content_part.added viene restituito quando viene aggiunta una nuova parte di contenuto a un elemento del messaggio di assistente.
RealtimeServerEventResponseContentPartDone L'evento server response.content_part.done viene restituito quando viene eseguita la trasmissione di una parte del contenuto.
RealtimeServerEventResponseCreated L'evento server response.created viene restituito quando viene creata una nuova risposta. Si tratta del primo evento di creazione della risposta, in cui la risposta si trova in uno stato iniziale di in_progress.
RealtimeServerEventResponseDone L'evento server response.done viene restituito quando viene eseguita una risposta in streaming.
RealtimeServerEventResponseFunctionCallArgumentsDelta L'evento server response.function_call_arguments.delta viene restituito quando gli argomenti della chiamata di funzione generati dal modello vengono aggiornati.
RealtimeServerEventResponseFunctionCallArgumentsDone L'evento server response.function_call_arguments.done viene restituito quando gli argomenti di chiamata di funzione generati dal modello vengono eseguiti in streaming.
RealtimeServerEventResponseOutputItemAdded L'evento server response.output_item.added viene restituito quando viene creato un nuovo elemento durante la generazione della risposta.
RealtimeServerEventResponseOutputItemDone L'evento server response.output_item.done viene restituito al termine del flusso di un elemento.
RealtimeServerEventResponseTextDelta L'evento server response.text.delta viene restituito quando viene aggiornato il testo generato dal modello.
RealtimeServerEventResponseTextDone L'evento server response.text.done viene restituito quando il testo generato dal modello viene eseguito in streaming.
RealtimeServerEventSessionCreated L'evento server session.created è il primo evento server quando si stabilisce una nuova connessione all'API Realtime. Questo evento crea e restituisce una nuova sessione con la configurazione di sessione predefinita.
RealtimeServerEventSessionUpdated L'evento server session.updated viene restituito quando una sessione viene aggiornata dal client. Se si verifica un errore, il server invia invece un evento error.

RealtimeServerEventConversationCreated

L'evento conversation.created del server viene restituito subito dopo la creazione della sessione. Viene creata una conversazione per sessione.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.created.
conversazione oggetto Risorsa di conversazione.

Proprietà della conversazione

Campo TIPO Descrzione
id corda ID univoco della conversazione.
oggetto corda Il tipo di oggetto deve essere realtime.conversation.

RealtimeServerEventConversationItemCreated

L'evento server conversation.item.created viene restituito quando viene creato un elemento di conversazione. Esistono diversi scenari che producono questo evento:

  • Il server genera una risposta, che se ha esito positivo produce uno o due elementi, ovvero di tipo message (ruolo assistant) o di tipo function_call.
  • Viene eseguito il commit del buffer audio di input, dal client o dal server (in modalità server_vad). Il server accetta il contenuto del buffer audio di input e lo aggiunge a un nuovo elemento del messaggio utente.
  • Il client ha inviato un evento conversation.item.create per aggiungere un nuovo elemento alla conversazione.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.created.
previous_item_id corda L'ID dell'elemento precedente nel contesto della conversazione consente al client di comprendere l'ordine della conversazione.
oggetto RealtimeConversationResponseItem Elemento creato.

RealtimeServerEventConversationItemRetrieved

L'evento server conversation.item.retrieved viene restituito quando viene recuperato un elemento di conversazione.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.retrieved.
event_id corda ID dell'evento.
oggetto RealtimeConversationResponseItem Elemento recuperato.

RealtimeServerEventConversationItemDeleted

L'evento server conversation.item.deleted viene restituito quando il client ha eliminato un elemento nella conversazione con un evento conversation.item.delete. Questo evento viene usato per sincronizzare la comprensione della cronologia delle conversazioni del server con la visualizzazione del client.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.deleted.
item_id corda ID dell'elemento eliminato.

RealtimeServerEventConversationItemInputAudioTranscriptionCompleted

L'evento server conversation.item.input_audio_transcription.completed è il risultato della trascrizione audio per il parlato scritto nel buffer audio.

La trascrizione inizia quando viene eseguito il commit del buffer audio di input dal client o dal server (in modalità server_vad). La trascrizione viene eseguita in modo asincrono con la creazione della risposta, in modo che questo evento possa venire prima o dopo gli eventi di risposta.

I modelli API in tempo reale accettano l'audio in modo nativo e pertanto la trascrizione di input è un processo separato eseguito in un modello di riconoscimento vocale separato, ad whisper-1esempio . Pertanto, la trascrizione può divergere in qualche modo dall'interpretazione del modello e deve essere considerata una guida approssimativa.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.input_audio_transcription.completed.
item_id corda ID dell'elemento del messaggio utente contenente l'audio.
content_index numero intero Indice della parte di contenuto contenente l'audio.
transcript corda Testo trascritto.

RealtimeServerEventConversationItemInputAudioTranscriptionFailed

L'evento server conversation.item.input_audio_transcription.failed viene restituito quando è configurata la trascrizione audio di input e una richiesta di trascrizione per un messaggio utente non è riuscita. Questo evento è separato da altri eventi error in modo che il client possa identificare l'elemento correlato.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.input_audio_transcription.failed.
item_id corda ID dell'elemento del messaggio utente.
content_index numero intero Indice della parte di contenuto contenente l'audio.
Errore oggetto Dettagli dell'errore di trascrizione.

Vedere le proprietà annidate nella tabella successiva.

Proprietà degli errori

Campo TIPO Descrzione
type corda Tipo di errore.
codice corda Codice di errore, se disponibile.
message corda Messaggio di errore leggibile.
param corda Parametro correlato all'errore, se presente.

RealtimeServerEventConversationItemTruncated

L'evento server conversation.item.truncated viene restituito quando il client tronca un elemento di messaggio audio assistente precedente con un evento conversation.item.truncate. Questo evento viene usato per sincronizzare la comprensione dell'audio del server con la riproduzione del client.

Questo evento tronca l'audio e rimuove la trascrizione del testo sul lato server per assicurarsi che non ci sia testo nel contesto che l'utente non conosce.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere conversation.item.truncated.
item_id corda ID dell'elemento del messaggio dell'assistente troncato.
content_index numero intero Indice della parte di contenuto troncata.
audio_end_ms numero intero Durata fino alla quale l'audio è stato troncato, in millisecondi.

RealtimeServerEventError

L'evento server error viene restituito quando si verifica un errore, che potrebbe essere un problema del client o un problema del server. La maggior parte degli errori è recuperabile e la sessione rimane aperta.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere error.
Errore oggetto Dettagli dell'errore.

Vedere le proprietà annidate nella tabella successiva.

Proprietà degli errori

Campo TIPO Descrzione
type corda Tipo di errore. Ad esempio, "invalid_request_error" e "server_error" sono tipi di errore.
codice corda Codice di errore, se disponibile.
message corda Messaggio di errore leggibile.
param corda Parametro correlato all'errore, se presente.
event_id corda ID dell'evento client che ha causato l'errore, se applicabile.

RealtimeServerEventInputAudioBufferCleared

L'evento server input_audio_buffer.cleared viene restituito quando il client cancella il buffer audio di input con un evento input_audio_buffer.clear.

Struttura dell'evento

{
  "type": "input_audio_buffer.cleared"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere input_audio_buffer.cleared.

RealtimeServerEventInputAudioBufferCommitted

L'evento server input_audio_buffer.committed viene restituito quando viene eseguito il commit di un buffer audio di input, dal client o automaticamente in modalità VAD del server. La proprietà item_id è l'ID dell'elemento del messaggio utente creato. Un evento conversation.item.created viene quindi inviato anche al client.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere input_audio_buffer.committed.
previous_item_id corda ID dell'elemento precedente dopo il quale viene inserito il nuovo elemento.
item_id corda ID dell'elemento del messaggio utente creato.

RealtimeServerEventInputAudioBufferSpeechStarted

L'evento server input_audio_buffer.speech_started viene restituito in modalità server_vad quando viene rilevato il riconoscimento vocale nel buffer audio. Questo evento può verificarsi ogni volta che l'audio viene aggiunto al buffer (a meno che il riconoscimento vocale non sia già stato rilevato).

Annotazioni

Il client potrebbe voler usare questo evento per interrompere la riproduzione audio o fornire feedback visivo all'utente.

Il client dovrebbe aspettarsi di ricevere un evento input_audio_buffer.speech_stopped quando il riconoscimento vocale si arresta. La proprietà item_id è l'ID dell'elemento del messaggio utente creato all'arresto vocale. item_id viene incluso anche nell'evento input_audio_buffer.speech_stopped, a meno che il client non esegua manualmente il commit del buffer audio durante l'attivazione di VAD.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere input_audio_buffer.speech_started.
audio_start_ms numero intero Millisecondi dall'inizio di tutto l'audio scritto nel buffer durante la sessione quando è stato rilevato il riconoscimento vocale per la prima volta. Questa proprietà corrisponde all'inizio dell'audio inviato al modello e include quindi l'oggetto prefix_padding_ms configurato nella sessione.
item_id corda ID dell'elemento del messaggio utente creato all'arresto vocale.

RealtimeServerEventInputAudioBufferSpeechStopped

L'evento server input_audio_buffer.speech_stopped viene restituito in modalità server_vad quando il server rileva la fine della voce nel buffer audio.

Il server invia anche un evento conversation.item.created con l'elemento del messaggio utente creato dal buffer audio.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere input_audio_buffer.speech_stopped.
audio_end_ms numero intero Millisecondi dall'avvio della sessione all'arresto del parlato. Questa proprietà corrisponde alla fine dell'audio inviato al modello e include quindi l'oggetto min_silence_duration_ms configurato nella sessione.
item_id corda ID dell'elemento del messaggio utente creato.

RealtimeServerEventOutputAudioBufferCleared

L'evento server output_audio_buffer.cleared viene restituito quando il buffer audio di output viene cancellato.

Annotazioni

Questo evento è applicabile solo per WebRTC.

Ciò si verifica in modalità VAD quando l'utente ha interrotto (input_audio_buffer.speech_started) o quando il client ha emesso l'evento output_audio_buffer.clear per tagliare manualmente la risposta audio corrente.

Struttura dell'evento

{
  "type": "output_audio_buffer.cleared"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere output_audio_buffer.cleared.
event_id corda ID dell'evento del server.
response_id corda ID univoco della risposta che ha prodotto l'audio.

RealtimeServerEventOutputAudioBufferStarted

L'evento server output_audio_buffer.started viene restituito quando il server inizia a trasmettere l'audio al client. Questo evento viene generato dopo l'aggiunta di una parte di contenuto audio (response.content_part.added) alla risposta.

Annotazioni

Questo evento è applicabile solo per WebRTC.

Struttura dell'evento

{
  "type": "output_audio_buffer.started",
  "event_id": "<item_id>",
  "response_id": "<response_id>"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere output_audio_buffer.started.
event_id corda ID dell'evento del server.
response_id corda ID univoco della risposta che ha prodotto l'audio.

RealtimeServerEventOutputAudioBufferStopped

L'evento server output_audio_buffer.stopped viene restituito quando il buffer audio di output è stato completamente svuotato nel server e non sarà più disponibile alcun audio.

Annotazioni

Questo evento è applicabile solo per WebRTC.

Questo evento viene restituito dopo che i dati di risposta completi sono stati inviati al client tramite l'evento response.done .

Struttura dell'evento

{
  "type": "output_audio_buffer.stopped",
  "audio_end_ms": 0,
  "item_id": "<item_id>"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere output_audio_buffer.stopped.
event_id corda ID dell'evento del server.
response_id corda ID univoco della risposta che ha prodotto l'audio.

RealtimeServerEventRateLimitsUpdated

L'evento server rate_limits.updated viene generato all'inizio di una risposta per indicare i limiti di frequenza aggiornati.

Quando viene creata una risposta, alcuni token sono riservati per i token di output. I limiti di velocità indicati di seguito riflettono la prenotazione, che viene quindi modificata di conseguenza al termine della risposta.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere rate_limits.updated.
rate_limits matrice di RealtimeServerEventRateLimitsUpdatedRateLimitsItem Elenco di informazioni sul limite di velocità.

RealtimeServerEventResponseAudioDelta

L'evento server response.audio.delta viene restituito quando viene aggiornato l'audio generato dal modello.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.audio.delta.
response_id corda ID della risposta
item_id corda ID dell'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
content_index numero intero Indice della parte di contenuto nella matrice di contenuto dell'elemento.
delta corda Delta dei dati audio con codifica Base64.

RealtimeServerEventResponseAudioDone

L'evento server response.audio.done viene restituito al termine dell'audio generato dal modello.

Questo evento viene restituito anche quando una risposta viene interrotta, incompleta o annullata.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.audio.done.
response_id corda ID della risposta
item_id corda ID dell'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
content_index numero intero Indice della parte di contenuto nella matrice di contenuto dell'elemento.

RealtimeServerEventResponseAudioTranscriptDelta

L'evento server response.audio_transcript.delta viene restituito quando viene aggiornata la trascrizione dell'output audio generata dal modello.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.audio_transcript.delta.
response_id corda ID della risposta
item_id corda ID dell'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
content_index numero intero Indice della parte di contenuto nella matrice di contenuto dell'elemento.
delta corda Delta della trascrizione.

RealtimeServerEventResponseAudioTranscriptDone

L'evento server response.audio_transcript.done viene restituito quando viene eseguita la trascrizione dell'output audio generata dal modello.

Questo evento viene restituito anche quando una risposta viene interrotta, incompleta o annullata.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.audio_transcript.done.
response_id corda ID della risposta
item_id corda ID dell'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
content_index numero intero Indice della parte di contenuto nella matrice di contenuto dell'elemento.
transcript corda Trascrizione finale dell'audio.

RealtimeServerEventResponseContentPartAdded

L'evento server response.content_part.added viene restituito quando viene aggiunta una nuova parte di contenuto a un elemento del messaggio di assistente durante la generazione della risposta.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.content_part.added.
response_id corda ID della risposta
item_id corda ID dell'elemento a cui è stata aggiunta la parte di contenuto.
output_index numero intero Indice dell'elemento di output nella risposta.
content_index numero intero Indice della parte di contenuto nella matrice di contenuto dell'elemento.
part RealtimeContentPart Parte del contenuto aggiunta.

Proprietà della parte

Campo TIPO Descrzione
type RealtimeContentPartType

RealtimeServerEventResponseContentPartDone

L'evento server response.content_part.done viene restituito quando una parte del contenuto viene eseguita in streaming in un elemento di messaggio assistente.

Questo evento viene restituito anche quando una risposta viene interrotta, incompleta o annullata.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.content_part.done.
response_id corda ID della risposta
item_id corda ID dell'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
content_index numero intero Indice della parte di contenuto nella matrice di contenuto dell'elemento.
part RealtimeContentPart Parte del contenuto eseguita.

Proprietà della parte

Campo TIPO Descrzione
type RealtimeContentPartType

RealtimeServerEventResponseCreated

L'evento server response.created viene restituito quando viene creata una nuova risposta. Si tratta del primo evento di creazione della risposta, in cui la risposta si trova in uno stato iniziale di in_progress.

Struttura dell'evento

{
  "type": "response.created"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.created.
response RealtimeResponse Oggetto risposta.

RealtimeServerEventResponseDone

L'evento server response.done viene restituito quando viene eseguita una risposta in streaming. Questo evento viene sempre generato, indipendentemente dallo stato finale. L'oggetto risposta incluso nell'evento response.done include tutti gli elementi di output nella risposta, ma omette i dati audio non elaborati.

Struttura dell'evento

{
  "type": "response.done"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.done.
response RealtimeResponse Oggetto risposta.

RealtimeServerEventResponseFunctionCallArgumentsDelta

L'evento server response.function_call_arguments.delta viene restituito quando gli argomenti della chiamata di funzione generati dal modello vengono aggiornati.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.function_call_arguments.delta.
response_id corda ID della risposta
item_id corda ID dell'elemento di chiamata di funzione.
output_index numero intero Indice dell'elemento di output nella risposta.
call_id corda ID della chiamata di funzione.
delta corda Gli argomenti delta come stringa JSON.

RealtimeServerEventResponseFunctionCallArgumentsDone

L'evento server response.function_call_arguments.done viene restituito quando gli argomenti di chiamata di funzione generati dal modello vengono eseguiti in streaming.

Questo evento viene restituito anche quando una risposta viene interrotta, incompleta o annullata.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.function_call_arguments.done.
response_id corda ID della risposta
item_id corda ID dell'elemento di chiamata di funzione.
output_index numero intero Indice dell'elemento di output nella risposta.
call_id corda ID della chiamata di funzione.
arguments corda Argomenti finali come stringa JSON.

RealtimeServerEventResponseOutputItemAdded

L'evento server response.output_item.added viene restituito quando viene creato un nuovo elemento durante la generazione della risposta.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.output_item.added.
response_id corda ID della risposta a cui appartiene l'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
oggetto RealtimeConversationResponseItem Elemento aggiunto.

RealtimeServerEventResponseOutputItemDone

L'evento server response.output_item.done viene restituito al termine del flusso di un elemento.

Questo evento viene restituito anche quando una risposta viene interrotta, incompleta o annullata.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.output_item.done.
response_id corda ID della risposta a cui appartiene l'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
oggetto RealtimeConversationResponseItem Elemento completato in streaming.

RealtimeServerEventResponseTextDelta

L'evento server response.text.delta viene restituito quando viene aggiornato il testo generato dal modello. Il testo corrisponde alla parte del contenuto text di un elemento del messaggio di assistente.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.text.delta.
response_id corda ID della risposta
item_id corda ID dell'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
content_index numero intero Indice della parte di contenuto nella matrice di contenuto dell'elemento.
delta corda Delta del testo.

RealtimeServerEventResponseTextDone

L'evento server response.text.done viene restituito quando il testo generato dal modello viene eseguito in streaming. Il testo corrisponde alla parte del contenuto text di un elemento del messaggio di assistente.

Questo evento viene restituito anche quando una risposta viene interrotta, incompleta o annullata.

Struttura dell'evento

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

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere response.text.done.
response_id corda ID della risposta
item_id corda ID dell'elemento.
output_index numero intero Indice dell'elemento di output nella risposta.
content_index numero intero Indice della parte di contenuto nella matrice di contenuto dell'elemento.
Testo corda Contenuto del testo finale.

RealtimeServerEventSessionCreated

L'evento server session.created è il primo evento server quando si stabilisce una nuova connessione all'API Realtime. Questo evento crea e restituisce una nuova sessione con la configurazione di sessione predefinita.

Struttura dell'evento

{
  "type": "session.created"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere session.created.
sessione RealtimeResponseSession Oggetto sessione.

RealtimeServerEventSessionUpdated

L'evento server session.updated viene restituito quando una sessione viene aggiornata dal client. Se si verifica un errore, il server invia invece un evento error.

Struttura dell'evento

{
  "type": "session.updated"
}

Proprietà

Campo TIPO Descrzione
type corda Il tipo di evento deve essere session.updated.
sessione RealtimeResponseSession Oggetto sessione.

Components

RealtimeAudioFormat

Valori consentiti:

  • pcm16
  • g711_ulaw
  • g711_alaw

RealtimeAudioInputTranscriptionModel

Valori consentiti:

  • whisper-1
  • gpt-4o-transcribe
  • gpt-4o-mini-transcribe
  • gpt-4o-transcribe-diarize
  • gpt-4o-mini-transcribe-2025-12-15

RealtimeAudioInputTranscriptionSettings

Campo TIPO Descrzione
language corda La lingua dell'audio di input. Specificare il linguaggio di input in formato ISO-639-1 (ad esempio en) migliorerà l'accuratezza e la latenza.
model RealtimeAudioInputTranscriptionModel Modello per la trascrizione dell'input audio. Ad esempio: whisper-1.
prompt corda Richiesta di trascrizione dell'input audio. Testo facoltativo per guidare lo stile del modello o continuare un segmento audio precedente. Per il whisper-1 modello, il prompt è un elenco di parole chiave. Per i modelli della serie gpt-4o-transcribe e il modello gpt-4o-transcribe-diarize, il prompt è una stringa di testo libero, ad esempio "aspettarsi parole relative alla tecnologia".

RealtimeAudioInputAudioNoiseReductionSettings

Campo TIPO Descrzione
type corda Tipo di riduzione del rumore. Specificare near_field per microfoni a corto raggio, come ad esempio cuffie, o far_field per microfoni a lungo raggio, sia come quelli dei portatili che della sala riunioni.

RealtimeClientEvent

Campo TIPO Descrzione
type RealtimeClientEventType Tipo dell'evento client.
event_id corda ID univoco dell'evento. Il client può specificare l'ID per identificare l'evento.

RealtimeClientEventType

Valori consentiti:

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

RealtimeContentPart

Campo TIPO Descrzione
type RealtimeContentPartType Tipo di contenuto.

Proprietà dell'oggetto function.

Valori consentiti: input_text, input_audio, item_reference, text.
Testo corda Contenuto di testo. Questa proprietà è applicabile ai tipi di contenuto input_text e text.
id corda ID di un elemento di conversazione precedente a cui fare riferimento negli elementi creati sia dal client che dal server. Questa proprietà è applicabile per il tipo di contenuto item_reference negli eventi response.create.
audio corda Byte audio con codifica base64. Questa proprietà è applicabile per il tipo di contenuto input_audio.
transcript corda Trascrizione dell'audio. Questa proprietà è applicabile per il tipo di contenuto input_audio.

RealtimeContentPartType

Valori consentiti:

  • input_text
  • input_audio
  • text
  • audio

RealtimeConversationItemBase

Elemento da aggiungere alla conversazione.

Questa tabella descrive tutte le proprietà RealtimeConversationItem. Le proprietà applicabili per evento dipendono da RealtimeItemType.

Campo TIPO Descrzione
id corda ID univoco dell'elemento. Il client può specificare l'ID per gestire il contesto lato server. Se il client non fornisce un ID, il server ne genera uno.
type RealtimeItemType Tipo dell'elemento.

Valori consentiti: message, function_call, function_call_output
oggetto corda Identificatore dell'oggetto API restituito. Il valore sarà sempre realtime.item.
stato RealtimeItemStatus Stato dell'elemento. Questo campo non influisce sulla conversazione, ma viene accettato per coerenza con l'evento conversation.item.created.

Valori consentiti: completed, incomplete
ruolo RealtimeMessageRole Ruolo del mittente del messaggio. Questa proprietà è applicabile solo agli elementi message.

Valori consentiti: system, user, assistant
contenuto matrice di RealtimeContentPart Il contenuto del messaggio. Questa proprietà è applicabile solo agli elementi message.

- Gli elementi del messaggio del ruolo system supportano solo il contenuto input_text.
- Gli elementi del messaggio del ruolo user supportano solo il contenuto input_text e input_audio.
- Gli elementi del messaggio del ruolo assistant supportano solo il contenuto text.
call_id corda ID della chiamata di funzione (per gli elementi function_call e function_call_output). Se viene passato a un elemento function_call_output, il server verificherà che nella cronologia delle conversazioni esista un elemento function_call con lo stesso ID.
nome corda Nome della funzione chiamata (per gli elementi function_call).
arguments corda Argomenti della chiamata di funzione (per gli elementi function_call).
output corda Output della chiamata di funzione (per gli elementi function_call_output).

ElementoRichiestaConversazioneInTempoReale

Usare l'oggetto RealtimeConversationRequestItem per creare un nuovo elemento nella conversazione tramite l'evento conversation.item.create .

Campo TIPO Descrzione
type RealtimeItemType Tipo dell'elemento.
id corda ID univoco dell'elemento. Il client può specificare l'ID per gestire il contesto lato server. Se il client non fornisce un ID, il server ne genera uno.

RealtimeConversationResponseItem

L'oggetto RealtimeConversationResponseItem rappresenta un elemento nella conversazione. Viene usato in alcuni degli eventi del server, ad esempio:

Campo TIPO Descrzione
oggetto corda Identificatore per l'oggetto API restituito.

Valori consentiti: realtime.item
type RealtimeItemType Tipo dell'elemento.

Valori consentiti: message, function_call, function_call_output
id corda ID univoco dell'elemento. Il client può specificare l'ID per gestire il contesto lato server. Se il client non fornisce un ID, il server ne genera uno.

Questa proprietà è nullable.

RealtimeFunctionTool

Definizione di uno strumento di funzione usato dall'endpoint in tempo reale.

Campo TIPO Descrzione
type corda Tipo dello strumento.

Valori consentiti: function
nome corda Nome della funzione.
descrizione corda Descrizione della funzione, incluse le linee guida sull'utilizzo. Ad esempio, "Usare questa funzione per ottenere l'ora corrente".
parameters oggetto Parametri della funzione sotto forma di oggetto JSON.

RealtimeItemStatus

Valori consentiti:

  • in_progress
  • completed
  • incomplete

TipoDiOggettoInTempoReale

Valori consentiti:

  • message
  • function_call
  • function_call_output

RealtimeMessageRole

Valori consentiti:

  • system
  • user
  • assistant

RealtimeRequestAssistantMessageItem

Campo TIPO Descrzione
ruolo corda Ruolo del messaggio.

Valori consentiti: assistant
contenuto matrice di RealtimeRequestTextContentPart Il contenuto del messaggio.

RealtimeRequestAudioContentPart

Campo TIPO Descrzione
type corda Tipo della parte di contenuto.

Valori consentiti: input_audio
transcript corda Trascrizione dell'audio.

RealtimeRequestFunctionCallItem

Campo TIPO Descrzione
type corda Tipo dell'elemento.

Valori consentiti: function_call
nome corda Nome dell'elemento di chiamata di funzione.
call_id corda ID dell'elemento di chiamata di funzione.
arguments corda Argomenti dell'elemento di chiamata di funzione.
stato RealtimeItemStatus Stato dell'elemento.

RealtimeRequestFunctionCallOutputItem

Campo TIPO Descrzione
type corda Tipo dell'elemento.

Valori consentiti: function_call_output
call_id corda ID dell'elemento di chiamata di funzione.
output corda Output dell'elemento di chiamata di funzione.

RealtimeRequestMessageItem

Campo TIPO Descrzione
type corda Tipo dell'elemento.

Valori consentiti: message
ruolo RealtimeMessageRole Ruolo del messaggio.
stato RealtimeItemStatus Stato dell'elemento.

RealtimeRequestMessageReferenceItem

Campo TIPO Descrzione
type corda Tipo dell'elemento.

Valori consentiti: message
id corda ID dell'elemento del messaggio.

RealtimeRequestSession

Usare l'oggetto RealtimeRequestSession quando si vuole aggiornare la configurazione della sessione tramite l'evento session.update .

Campo TIPO Descrzione
modalities array Modalità supportate dalla sessione.

Valori consentiti: text, audio

Ad esempio, "modalities": ["text", "audio"] è l'impostazione predefinita che abilita le modalità di testo e audio. Per abilitare solo il testo, impostare "modalities": ["text"]. Non è possibile abilitare solo l'audio.
instructions corda Le istruzioni (messaggio di sistema) per guidare il testo e le risposte audio del modello.

Ecco alcune istruzioni di esempio per guidare il contenuto e il formato delle risposte di testo e audio:
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Ecco alcune istruzioni di esempio per guidare il comportamento audio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Anche se il modello potrebbe non seguire sempre queste istruzioni, forniscono indicazioni sul comportamento desiderato.
voice RealtimeVoice Voce usata per la risposta del modello per la sessione.

Una volta usata la voce nella sessione per la risposta audio del modello, non può essere modificata.
input_audio_format RealtimeAudioFormat Formato per l'audio di input.
output_audio_format RealtimeAudioFormat Formato per l'audio di output.
input_audio_noise_reduction RealtimeAudioInputAudioNoiseReductionSettings Configurazione per la riduzione del rumore audio di input. Può essere impostato su Null per disattivare. La riduzione del rumore filtra l'audio aggiunto al buffer audio di input prima che venga inviato a VAD e al modello. Filtrare l'audio può migliorare l'accuratezza del rilevamento dei turni e dell'attività vocale (VAD), riducendo i falsi positivi, e le prestazioni del modello migliorando la percezione dell'audio di input.

Questa proprietà è nullable.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Configurazione per la trascrizione audio di input. La configurazione è null (off) per impostazione predefinita. La trascrizione audio di input non è nativa del modello, perché il modello usa direttamente l'audio. La trascrizione viene eseguita in modo asincrono attraverso l'endpoint /audio/transcriptions e deve essere considerata come linee guida per il contenuto audio di input anziché esattamente quello che il modello ha sentito. Per indicazioni aggiuntive sul servizio di trascrizione, il client può facoltativamente impostare la lingua e richiedere la trascrizione.

Questa proprietà è nullable.
turn_detection RealtimeTurnDetection Impostazioni di rilevamento dei turni per la sessione.

Questa proprietà è nullable.
strumenti matrice di RealtimeTool Strumenti disponibili per il modello per la sessione.
tool_choice RealtimeToolChoice Scelta dello strumento per la sessione.

Valori consentiti: auto, none e required. In caso contrario, è possibile specificare il nome della funzione da usare.
temperatura numero Temperatura di campionamento per il modello. I valori di temperatura consentiti sono limitati a 0.6 tramite 1.2. Il valore predefinito è 0.8.
max_response_output_tokens integer o "inf" Numero massimo di token di output per ogni risposta dell'assistente, incluse le chiamate agli strumenti.

Specificare un numero intero compreso tra 1 e 4096 per limitare i token di output. In caso contrario, impostare il valore su "inf" per consentire il numero massimo di token.

Ad esempio, per limitare i token di output a 1000, impostare "max_response_output_tokens": 1000. Per consentire il numero massimo di token, impostare "max_response_output_tokens": "inf".

Il valore predefinito è "inf".

RealtimeRequestSystemMessageItem

Campo TIPO Descrzione
ruolo corda Ruolo del messaggio.

Valori consentiti: system
contenuto matrice di RealtimeRequestTextContentPart Il contenuto del messaggio.

RealtimeRequestTextContentPart

Campo TIPO Descrzione
type corda Tipo della parte di contenuto.

Valori consentiti: input_text
Testo corda Contenuto di testo.

RealtimeRequestUserMessageItem

Campo TIPO Descrzione
ruolo corda Ruolo del messaggio.

Valori consentiti: user
contenuto matrice di RealtimeRequestTextContentPart o RealtimeRequestAudioContentPart Il contenuto del messaggio.

RealtimeResponse

Campo TIPO Descrzione
oggetto corda Oggetto risposta.

Valori consentiti: realtime.response
id corda ID univoco della risposta.
stato RealtimeResponseStatus Stato della risposta.

Il valore di stato predefinito è in_progress.
dettagli dello stato RealtimeResponseStatusDetails Dettagli dello stato della risposta.

Questa proprietà è nullable.
output matrice di RealtimeConversationResponseItem Elementi di output della risposta.
usage oggetto Statistiche di utilizzo per la risposta. Ogni sessione API Realtime gestisce un contesto di conversazione e aggiunge nuovi elementi alla conversazione. L'output dei turni precedenti (token di testo e audio) è l'input per turni successivi.

Vedere le proprietà nidificate.
+ token_totali numero intero Numero totale di token nella risposta, inclusi il testo di input e output e i token audio.

Proprietà dell'oggetto usage.
+ input_tokens numero intero Numero di token di input usati nella risposta, inclusi token di testo e audio.

Proprietà dell'oggetto usage.
+ output_tokens numero intero Numero di token di output inviati nella risposta, inclusi token di testo e audio.

Proprietà dell'oggetto usage.
+ input_token_details oggetto Dettagli sui token di input usati nella risposta.

Proprietà dell'oggetto usage.

Vedere le proprietà nidificate.
+ token memorizzati nella cache numero intero Numero di token memorizzati nella cache usati nella risposta.

Proprietà dell'oggetto input_token_details.
+ token_di_testo numero intero Numero di token di testo usati nella risposta.

Proprietà dell'oggetto input_token_details.
+ audio_tokens numero intero Numero di token audio usati nella risposta.

Proprietà dell'oggetto input_token_details.
+ output_token_details oggetto Dettagli sui token di output usati nella risposta.

Proprietà dell'oggetto usage.

Vedere le proprietà nidificate.
+ token_di_testo numero intero Numero di token di testo usati nella risposta.

Proprietà dell'oggetto output_token_details.
+ audio_tokens numero intero Numero di token audio usati nella risposta.

Proprietà dell'oggetto output_token_details.

RealtimeResponseAudioContentPart

Campo TIPO Descrzione
type corda Tipo della parte di contenuto.

Valori consentiti: audio
transcript corda Trascrizione dell'audio.

Questa proprietà è nullable.

RealtimeResponseBase

Risorsa di risposta.

RealtimeResponseFunctionCallItem

Campo TIPO Descrzione
type corda Tipo dell'elemento.

Valori consentiti: function_call
nome corda Nome dell'elemento di chiamata di funzione.
call_id corda ID dell'elemento di chiamata di funzione.
arguments corda Argomenti dell'elemento di chiamata di funzione.
stato RealtimeItemStatus Stato dell'elemento.

RealtimeResponseFunctionCallOutputItem

Campo TIPO Descrzione
type corda Tipo dell'elemento.

Valori consentiti: function_call_output
call_id corda ID dell'elemento di chiamata di funzione.
output corda Output dell'elemento di chiamata di funzione.

RealtimeResponseMessageItem

Campo TIPO Descrzione
type corda Tipo dell'elemento.

Valori consentiti: message
ruolo RealtimeMessageRole Ruolo del messaggio.
contenuto array Il contenuto del messaggio.

Elementi della matrice: RealtimeResponseTextContentPart
stato RealtimeItemStatus Stato dell'elemento.

OpzioniDiRispostaInTempoReale

Campo TIPO Descrzione
modalities array Modalità supportate dalla sessione.

Valori consentiti: text, audio

Ad esempio, "modalities": ["text", "audio"] è l'impostazione predefinita che abilita le modalità di testo e audio. Per abilitare solo il testo, impostare "modalities": ["text"]. Non è possibile abilitare solo l'audio.
instructions corda Le istruzioni (messaggio di sistema) per guidare il testo e le risposte audio del modello.

Ecco alcune istruzioni di esempio per guidare il contenuto e il formato delle risposte di testo e audio:
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Ecco alcune istruzioni di esempio per guidare il comportamento audio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Anche se il modello potrebbe non seguire sempre queste istruzioni, forniscono indicazioni sul comportamento desiderato.
voice RealtimeVoice Voce usata per la risposta del modello per la sessione.

Una volta usata la voce nella sessione per la risposta audio del modello, non può essere modificata.
output_audio_format RealtimeAudioFormat Formato per l'audio di output.
strumenti matrice di RealtimeTool Strumenti disponibili per il modello per la sessione.
tool_choice RealtimeToolChoice Scelta dello strumento per la sessione.
temperatura numero Temperatura di campionamento per il modello. I valori di temperatura consentiti sono limitati a 0.6 tramite 1.2. Il valore predefinito è 0.8.
max__output_tokens integer o "inf" Numero massimo di token di output per ogni risposta dell'assistente, incluse le chiamate agli strumenti.

Specificare un numero intero compreso tra 1 e 4096 per limitare i token di output. In caso contrario, impostare il valore su "inf" per consentire il numero massimo di token.

Ad esempio, per limitare i token di output a 1000, impostare "max_response_output_tokens": 1000. Per consentire il numero massimo di token, impostare "max_response_output_tokens": "inf".

Il valore predefinito è "inf".
conversazione corda Controlla la conversazione a cui viene aggiunta la risposta. I valori supportati sono auto e none.

Il valore auto (o non impostare questa proprietà) garantisce che il contenuto della risposta venga aggiunto alla conversazione predefinita della sessione.

Impostare questa proprietà su none per creare una risposta fuori banda in cui gli elementi non verranno aggiunti alla conversazione predefinita. Per altre informazioni, vedere la guida pratica.

L'impostazione predefinita è "auto"
metadata map Impostare fino a 16 coppie chiave-valore che possono essere collegate a un oggetto. Ciò può essere utile per archiviare informazioni aggiuntive sull'oggetto in un formato strutturato. Le chiavi possono essere lunghe al massimo 64 caratteri, mentre i valori al massimo 512 caratteri.

Ad esempio: metadata: { topic: "classification" }
ingresso array Elementi di input da includere nel prompt del modello. Crea un nuovo contesto per questa risposta, senza includere la conversazione predefinita. Può includere riferimenti agli elementi della conversazione predefinita.

Elementi della matrice: RealtimeConversationItemBase

Sessione di Risposta in Tempo Reale

L'oggetto RealtimeResponseSession rappresenta una sessione nell'API Realtime. Viene usato in alcuni degli eventi del server, ad esempio:

Campo TIPO Descrzione
oggetto corda Oggetto sessione.

Valori consentiti: realtime.session
id corda ID univoco della sessione.
model corda Modello utilizzato per la sessione.
modalities array Modalità supportate dalla sessione.

Valori consentiti: text, audio

Ad esempio, "modalities": ["text", "audio"] è l'impostazione predefinita che abilita le modalità di testo e audio. Per abilitare solo il testo, impostare "modalities": ["text"]. Non è possibile abilitare solo l'audio.
instructions corda Le istruzioni (messaggio di sistema) per guidare il testo e le risposte audio del modello.

Ecco alcune istruzioni di esempio per guidare il contenuto e il formato delle risposte di testo e audio:
"instructions": "be succinct"
"instructions": "act friendly"
"instructions": "here are examples of good responses"

Ecco alcune istruzioni di esempio per guidare il comportamento audio:
"instructions": "talk quickly"
"instructions": "inject emotion into your voice"
"instructions": "laugh frequently"

Anche se il modello potrebbe non seguire sempre queste istruzioni, forniscono indicazioni sul comportamento desiderato.
voice RealtimeVoice Voce usata per la risposta del modello per la sessione.

Una volta usata la voce nella sessione per la risposta audio del modello, non può essere modificata.
input_audio_format RealtimeAudioFormat Formato per l'audio di input.
output_audio_format RealtimeAudioFormat Formato per l'audio di output.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Impostazioni per la trascrizione dell'input audio.

Questa proprietà è nullable.
turn_detection RealtimeTurnDetection Impostazioni di rilevamento dei turni per la sessione.

Questa proprietà è nullable.
strumenti matrice di RealtimeTool Strumenti disponibili per il modello per la sessione.
tool_choice RealtimeToolChoice Scelta dello strumento per la sessione.
temperatura numero Temperatura di campionamento per il modello. I valori di temperatura consentiti sono limitati a 0.6 tramite 1.2. Il valore predefinito è 0.8.
max_response_output_tokens integer o "inf" Numero massimo di token di output per ogni risposta dell'assistente, incluse le chiamate agli strumenti.

Specificare un numero intero compreso tra 1 e 4096 per limitare i token di output. In caso contrario, impostare il valore su "inf" per consentire il numero massimo di token.

Ad esempio, per limitare i token di output a 1000, impostare "max_response_output_tokens": 1000. Per consentire il numero massimo di token, impostare "max_response_output_tokens": "inf".

Stato di Risposta in Tempo Reale

Valori consentiti:

  • in_progress
  • completed
  • cancelled
  • incomplete
  • failed

RealtimeResponseStatusDetails

Campo TIPO Descrzione
type RealtimeResponseStatus Stato della risposta.

RealtimeResponseTextContentPart

Campo TIPO Descrzione
type corda Tipo della parte di contenuto.

Valori consentiti: text
Testo corda Contenuto di testo.

RealtimeServerEvent

Campo TIPO Descrzione
type RealtimeServerEventType Tipo dell'evento server.
event_id corda ID univoco dell'evento del server.

RealtimeServerEventRateLimitsUpdatedRateLimitsItem

Campo TIPO Descrzione
nome corda Nome della proprietà limite di frequenza di cui questo elemento include informazioni.
limit numero intero Limite massimo configurato per questa proprietà limite di velocità.
rimanente numero intero Quota rimanente disponibile per il limite configurato per questa proprietà limite di velocità.
reset_seconds numero Tempo rimanente, in secondi, fino a quando questa proprietà limite di velocità non viene reimpostata.

TipoDiEventoDelServerInTempoReale

Valori consentiti:

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

RealtimeServerVadTurnDetection

Campo TIPO Descrzione
type corda Tipo di rilevamento dei turni.

Valori consentiti: server_vad
threshold numero Soglia di attivazione per il rilevamento dei turni VAD del server. In ambienti rumorosi potrebbe essere necessario aumentare la soglia per evitare falsi positivi. In ambienti non attendibili, potrebbe essere necessario ridurre la soglia per evitare i falsi negativi.

Il valore predefinito è 0.5. È possibile impostare la soglia su un valore compreso tra 0.0 e 1.0.
prefix_padding_ms corda Durata dell'audio vocale (in millisecondi) da includere prima dell'inizio della voce rilevata.

Il valore predefinito è 300.
silence_duration_ms corda Durata del silenzio (in millisecondi) per rilevare la fine del parlato. Si vuole rilevare la fine del discorso il prima possibile, ma non troppo presto per evitare di tagliare l'ultima parte del discorso.

Il modello risponderà più rapidamente se si imposta questo valore su un numero inferiore, ma potrebbe tagliare l'ultima parte del parlato. Se si imposta questo valore su un numero maggiore, il modello attenderà più tempo per rilevare la fine del parlato, ma potrebbe richiedere più tempo per rispondere.

RealtimeSessionBase

Configurazione dell'oggetto sessione in tempo reale.

RealtimeTool

Rappresentazione di base di una definizione di strumento in tempo reale.

Campo TIPO Descrzione
type RealtimeToolType Tipo dello strumento.

RealtimeToolChoice

Set combinato di rappresentazioni disponibili per un parametro tool_choice in tempo reale, che include entrambe le opzioni di valori letterali stringa, ad esempio 'auto' e riferimenti strutturati agli strumenti definiti.

RealtimeToolChoiceFunctionObject

Rappresentazione di un oggetto tool_choice in tempo reale che seleziona uno strumento funzione denominato.

Campo TIPO Descrzione
type corda Tipo di tool_choice.

Valori consentiti: function
funzione oggetto Strumento funzione da selezionare.

Vedere le proprietà nidificate.
+ nome corda Nome dello strumento della funzione.

Proprietà dell'oggetto function.

RealtimeToolChoiceLiteral

Set disponibile di opzioni letterali stringa a livello di modalità per l'endpoint in tempo reale. L'insieme disponibile di opzioni tool_choice letterali stringa a livello di modalità per l'endpoint in tempo reale.

Valori consentiti:

  • auto
  • none
  • required

RealtimeToolChoiceObject

Rappresentazione di base per una selezione tool_choice in tempo reale di uno strumento denominato.

Campo TIPO Descrzione
type RealtimeToolType Tipo di tool_choice.

Tipo di strumento in tempo reale

I discriminatori del tipo di strumento supportati per gli strumenti in tempo reale. Attualmente sono supportati solo gli strumenti "function".

Valori consentiti:

  • function

RealtimeTurnDetection

Campo TIPO Descrzione
type RealtimeTurnDetectionType Tipo di rilevamento dei turni.

Valori consentiti: semantic_vad o server_vad
threshold numero Soglia di attivazione per il rilevamento dei turni VAD (server_vad) del server. In ambienti rumorosi potrebbe essere necessario aumentare la soglia per evitare falsi positivi. In ambienti non attendibili, potrebbe essere necessario ridurre la soglia per evitare i falsi negativi.

Il valore predefinito è 0.5. È possibile impostare la soglia su un valore compreso tra 0.0 e 1.0.

Questa proprietà si applica esclusivamente al rilevamento dei turni server_vad.
prefix_padding_ms corda Durata dell'audio vocale (in millisecondi) da includere prima dell'inizio della voce rilevata.

Il valore predefinito è 300 millisecondi.

Questa proprietà si applica esclusivamente al rilevamento dei turni server_vad.
silence_duration_ms corda Durata del silenzio (in millisecondi) per rilevare la fine del parlato. Si vuole rilevare la fine del discorso il prima possibile, ma non troppo presto per evitare di tagliare l'ultima parte del discorso.

Il modello risponderà più rapidamente se si imposta questo valore su un numero inferiore, ma potrebbe tagliare l'ultima parte del parlato. Se si imposta questo valore su un numero maggiore, il modello attenderà più tempo per rilevare la fine del parlato, ma potrebbe richiedere più tempo per rispondere.

Il valore predefinito è 200 millisecondi.

Questa proprietà si applica esclusivamente al rilevamento dei turni server_vad.
crea_risposta boolean Indica se il server creerà automaticamente una risposta quando VAD è abilitato e il riconoscimento vocale si arresta.

Il valore predefinito è true.
risposta all'interruzione boolean Indica se il server interrompe automaticamente qualsiasi risposta in corso con output alla conversazione predefinita (auto) quando si verifica un evento di avvio VAD.

Il valore predefinito è true.
entusiasmo corda Il desiderio del modello di rispondere e interrompere l'utente. Specificare low di attendere più tempo per consentire all'utente di continuare a parlare. Specificare high di suddividere l'audio il prima possibile per risposte più rapide. Il valore predefinito è auto equivalente a medio.

Questa proprietà si applica esclusivamente al rilevamento dei turni semantic_vad.

RealtimeTurnDetectionType

Valori consentiti:

  • semantic_vad - VaD semantico rileva quando l'utente ha terminato di parlare in base alle parole che hanno pronunciato. L'audio di input viene valutato in base alla probabilità che l'utente abbia finito di parlare. Quando la probabilità è bassa, il modello attenderà un timeout. Quando la probabilità è elevata, non è necessario attendere.
  • server_vad - Il server valuta l'audio dell'utente dal client. Il server usa automaticamente l'audio per avviare la generazione della risposta nelle conversazioni applicabili quando viene rilevata la fine del parlato.

RealtimeVoice

Valori consentiti:

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