Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die VoIP-Live-API bietet echtzeitbasierte bidirektionale Kommunikation für sprachfähige Anwendungen mithilfe von WebSocket-Verbindungen. Diese API unterstützt erweiterte Features wie Spracherkennung, Text-zu-Sprache-Synthese, Avatarstreaming, Animationsdaten und umfassende Audioverarbeitungsfunktionen.
Die API verwendet JSON-formatierte Ereignisse, die über WebSocket-Verbindungen gesendet werden, um Unterhaltungen, Audiodatenströme, Avatarinteraktionen und Echtzeitantworten zu verwalten. Ereignisse werden in Clientereignisse (gesendet von Client an Server) und Serverereignisse (vom Server an den Client gesendet) kategorisiert.
Wichtige Merkmale
- Echtzeit-Audioverarbeitung: Unterstützung für mehrere Audioformate, einschließlich PCM16 bei verschiedenen Sampleraten und G.711-Codecs
- Erweiterte Sprachoptionen: OpenAI-Stimmen, benutzerdefinierte Azure-Stimmen, Azure-Standardstimme und Azure-persönliche Stimmen
- Avatarintegration: WebRTC-basiertes Avatarstreaming mit Video, Animation und Blendshapes
- Intelligente Turnerkennung: Mehrere VAD-Optionen, einschließlich azure-semantischer VAD und serverseitiger Erkennung
- Audioverbesserung: Integrierte Rauschreduzierung und Echounterdrückung
- Funktionsaufrufe: Toolintegration für erweiterte Unterhaltungsfunktionen
- Flexible Sitzungsverwaltung: Konfigurierbare Modalitäten, Anweisungen und Antwortparameter
Clientereignisse
Die VoIP-Live-API unterstützt die folgenden Clientereignisse, die vom Client an den Server gesendet werden können:
| Event | Description |
|---|---|
| session.update | Aktualisieren der Sitzungskonfiguration, einschließlich VoIP, Modalitäten, Aktivieren der Erkennung und anderer Einstellungen |
| session.avatar.connect | Herstellen einer Avatarverbindung durch Bereitstellen von Client-SDP für WebRTC-Aushandlung |
| input_audio_buffer.append | Anfügen von Audiobytes an den Eingabeaudiopuffer |
| input_audio_buffer.commit | Commit des Eingabeaudiopuffers für die Verarbeitung |
| input_audio_buffer.clear | Löschen des Eingabeaudiopuffers |
| conversation.item.create | Hinzufügen eines neuen Elements zum Unterhaltungskontext |
| conversation.item.retrieve | Abrufen eines bestimmten Elements aus der Unterhaltung |
| conversation.item.truncate | Abschneiden einer Audionachricht eines Assistenten |
| conversation.item.delete | Entfernen eines Elements aus der Unterhaltung |
| response.create | Weisen Sie den Server an, eine Antwort über Modellferenz zu erstellen. |
| response.cancel | Abbrechen einer laufenden Antwort |
| mcp_approval_response | Senden einer Genehmigung oder Ablehnung für einen MCP-Toolaufruf, der eine Genehmigung erfordert |
session.update
Aktualisieren Sie die Konfiguration der Sitzung. Dieses Ereignis kann jederzeit gesendet werden, um Einstellungen wie Sprache, Modalitäten, Erkennung, Tools und andere Sitzungsparameter zu ändern. Beachten Sie, dass eine Sitzung nach dem Initialisieren einer Sitzung mit einem bestimmten Modell nicht mehr in ein anderes Modell geändert werden kann.
Ereignisstruktur
{
"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"
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "session.update" sein. |
| Sitzung | RealtimeRequestSession | Sitzungskonfigurationsobjekt mit zu aktualisierenden Feldern |
Beispiel mit benutzerdefinierter Azure 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
Richten Sie eine Avatarverbindung ein, indem Sie das SDP-Angebot (Session Description Protocol) des Clients für die WebRTC-Medienverhandlung bereitstellen. Dieses Ereignis ist erforderlich, wenn Avatarfeatures verwendet werden.
Ereignisstruktur
{
"type": "session.avatar.connect",
"client_sdp": "<client_sdp>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "session.avatar.connect" sein. |
| client_sdp | Schnur | Das SDP-Angebot des Clients für die WebRTC-Verbindungseinrichtung |
input_audio_buffer.append
Fügen Sie Audiobytes an den Eingabeaudiopuffer an.
Ereignisstruktur
{
"type": "input_audio_buffer.append",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "input_audio_buffer.append" sein. |
| audio | Schnur | Base64-codierte Audiodaten |
input_audio_buffer.commit
Übernehmen Sie den Eingabeaudiopuffer für die Verarbeitung.
Ereignisstruktur
{
"type": "input_audio_buffer.commit"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "input_audio_buffer.commit" sein. |
input_audio_buffer.clear
Löschen Sie den Eingabeaudiopuffer.
Ereignisstruktur
{
"type": "input_audio_buffer.clear"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "input_audio_buffer.clear" sein. |
conversation.item.create
Fügen Sie dem Unterhaltungskontext ein neues Element hinzu. Dazu können Nachrichten, Funktionsaufrufe und Funktionsaufrufantworten gehören. Elemente können an bestimmten Positionen im Unterhaltungsverlauf eingefügt werden.
Ereignisstruktur
{
"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?"
}
]
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "conversation.item.create" sein. |
| previous_item_id | Schnur | Wahlfrei. ID des Elements, nach dem dieses Element eingefügt werden soll. Falls nicht angegeben, wird an das Ende angefügt. |
| item | RealtimeConversationRequestItem | Das Element, das der Unterhaltung hinzugefügt werden soll |
Beispiel für Audioinhalte
{
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello there"
}
]
}
}
Beispiel mit Funktionsaufruf
{
"type": "conversation.item.create",
"item": {
"type": "function_call",
"name": "get_weather",
"call_id": "call_123",
"arguments": "{\"location\": \"San Francisco\", \"unit\": \"celsius\"}"
}
}
Beispiel für MCP-Aufruf
{
"type": "conversation.item.create",
"item": {
"type": "mcp_call",
"approval_request_id": null,
"arguments": "",
"server_label": "deepwiki",
"name": "ask_question",
"output": null,
"error": null
}
}
conversation.item.retrieve
Dient zum Abrufen eines bestimmten Elements aus dem Unterhaltungsverlauf. Dies ist nützlich, um verarbeitete Audiodaten nach der Rauschunterdrückung und VAD zu prüfen.
Ereignisstruktur
{
"type": "conversation.item.retrieve",
"item_id": "item_ABC123"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "conversation.item.retrieve" sein. |
| item_id | Schnur | Die ID des abzurufenden Elements |
conversation.item.truncate
Kürzen Sie den Audioinhalt einer Assistentennachricht. Dies ist nützlich, um die Wiedergabe an einem bestimmten Punkt zu beenden und das Verständnis des Servers mit dem Clientstatus zu synchronisieren.
Ereignisstruktur
{
"type": "conversation.item.truncate",
"item_id": "item_ABC123",
"content_index": 0,
"audio_end_ms": 5000
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "conversation.item.truncate" sein. |
| item_id | Schnur | Die ID des Nachrichtenelements des Assistenten, das abgeschnitten werden soll |
| content_index | Integer | Der Index des Zuschneidens des Inhaltsteils |
| audio_end_ms | Integer | Die Dauer, bis zu der die Audiodaten abgeschnitten werden sollen, in Millisekunden |
conversation.item.delete
Entfernen Sie ein Element aus dem Unterhaltungsverlauf.
Ereignisstruktur
{
"type": "conversation.item.delete",
"item_id": "item_ABC123"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "conversation.item.delete" sein. |
| item_id | Schnur | Die ID des zu löschenden Elements |
response.create
Weisen Sie den Server an, eine Antwort über Modellleitungen zu erstellen. Dieses Ereignis kann antwortspezifische Konfiguration angeben, die die Sitzungsstandardwerte überschreibt.
Ereignisstruktur
{
"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
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.create" sein. |
| response | RealtimeResponseOptions | Optionale Antwortkonfiguration, die Die Sitzungsstandardwerte außer Kraft setzt |
Beispiel mit Toolauswahl
{
"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
}
}
Beispiel mit Animation
{
"type": "response.create",
"response": {
"modalities": ["audio", "animation"],
"animation": {
"model_name": "default",
"outputs": ["blendshapes", "viseme_id"]
},
"voice": {
"type": "azure-custom",
"name": "my-expressive-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"style": "excited"
}
}
}
response.cancel
Abbrechen einer laufenden Antwort. Dadurch wird die Antwortgenerierung und die zugehörige Audioausgabe sofort beendet.
Ereignisstruktur
{
"type": "response.cancel"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.cancel" sein. |
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein conversation.item.retrieve. |
| item_id | Schnur | Die ID des abzurufenden Elements. |
| event_id | Schnur | Die ID des Ereignisses. |
RealtimeClientEventConversationItemTruncate
Das Clientereignis conversation.item.truncate wird verwendet, um die Audiodaten einer vorherigen Assistentennachricht abgeschnitten zu haben. Der Server erzeugt Audio schneller als Echtzeit, daher ist dieses Ereignis nützlich, wenn der Benutzer unterbricht, um Audio abgeschnitten zu werden, das an den Client gesendet wurde, aber noch nicht wiedergegeben wurde. Das Verständnis des Audiosignals mit der Wiedergabe des Clients auf dem Server wird synchronisiert.
Durch das Abschneiden von Audiodaten wird die serverseitige Texttranskription gelöscht, um sicherzustellen, dass kein Text im Kontext vorhanden ist, den der Benutzer nicht kennt.
Wenn das Clientereignis erfolgreich ist, antwortet der Server mit einem conversation.item.truncated Ereignis.
Ereignisstruktur
{
"type": "conversation.item.truncate",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein conversation.item.truncate. |
| item_id | Schnur | Die ID des Nachrichtenelements des Assistenten, das abgeschnitten werden soll. Nur Nachrichtenelemente des Assistenten können abgeschnitten werden. |
| content_index | Integer | Der Index des inhaltsteils, der abgeschnitten werden soll. Legen Sie diese Eigenschaft auf "0" fest. |
| audio_end_ms | Integer | Inklusive Dauer bis zum Abschneiden von Audiodaten in Millisekunden. Wenn die audio_end_ms größer als die tatsächliche Audiodauer ist, antwortet der Server mit einem Fehler. |
RealtimeClientEventInputAudioBufferAppend
Das Clientereignis input_audio_buffer.append wird verwendet, um Audiobytes an den Eingabeaudiopuffer anzufügen. Der Audiopuffer ist temporärer Speicher, in den Sie schreiben und später commiten können.
Im Server VAD-Modus (VoIP-Aktivitätserkennung) wird der Audiopuffer verwendet, um Die Sprache zu erkennen, und der Server entscheidet, wann ein Commit ausgeführt werden soll. Wenn die Server-VAD deaktiviert ist, kann der Client auswählen, wie viel Audio in jedem Ereignis bis zu maximal 15 MiB platziert werden soll. Beispielsweise kann das Streaming kleinerer Blöcke vom Client zulassen, dass die VAD reaktionsfähiger ist.
Im Gegensatz zu den meisten anderen Clientereignissen sendet der Server keine Bestätigungsantwort an das Clientereignis input_audio_buffer.append .
Ereignisstruktur
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein input_audio_buffer.append. |
| audio | Schnur | Base64-codierte Audiobytes. Dieser Wert muss sich im Format befinden, das durch das input_audio_format Feld in der Sitzungskonfiguration angegeben wird. |
RealtimeClientEventInputAudioBufferClear
Das Clientereignis input_audio_buffer.clear wird verwendet, um die Audiobytes im Puffer zu löschen.
Der Server antwortet mit einem input_audio_buffer.cleared Ereignis.
Ereignisstruktur
{
"type": "input_audio_buffer.clear"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein input_audio_buffer.clear. |
RealtimeClientEventInputAudioBufferCommit
Das Clientereignis input_audio_buffer.commit wird verwendet, um den Benutzereingabeaudiopuffer zu übernehmen, wodurch ein neues Benutzernachrichtenelement in der Unterhaltung erstellt wird. Audio wird transkribiert, wenn input_audio_transcription sie für die Sitzung konfiguriert ist.
Wenn sich der Client im Server-VAD-Modus befindet, muss dieses Ereignis nicht gesendet werden, wird der Server automatisch für den Audiopuffer commits ausgeführt. Ohne Server-VAD muss der Client den Audiopuffer übernehmen, um ein Benutzernachrichtenelement zu erstellen. Dieses Clientereignis erzeugt einen Fehler, wenn der Eingabeaudiopuffer leer ist.
Beim Commit des Eingabeaudiopuffers wird keine Antwort aus dem Modell erstellt.
Der Server antwortet mit einem input_audio_buffer.committed Ereignis.
Ereignisstruktur
{
"type": "input_audio_buffer.commit"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein input_audio_buffer.commit. |
RealtimeClientEventResponseCancel
Das Clientereignis response.cancel wird verwendet, um eine laufende Antwort abzubrechen.
Der Server antwortet mit einem response.done Ereignis mit einem Status von response.status=cancelled.
Ereignisstruktur
{
"type": "response.cancel"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.cancel. |
RealtimeClientEventResponseCreate
Das Clientereignis response.create wird verwendet, um den Server anzuweisen, eine Antwort über modellseitige Ableitungen zu erstellen. Wenn die Sitzung im VaD-Modus des Servers konfiguriert ist, erstellt der Server automatisch Antworten.
Eine Antwort enthält mindestens einen item, und kann zwei haben, in diesem Fall ist die zweite ein Funktionsaufruf. Diese Elemente werden an den Unterhaltungsverlauf angefügt.
Der Server antwortet mit einem response.created Ereignis, einem oder mehreren Element- und Inhaltsereignissen (z conversation.item.created . B. und response.content_part.added), und schließlich ein response.done Ereignis, um anzugeben, dass die Antwort abgeschlossen ist.
Ereignisstruktur
{
"type": "response.create"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.create. |
| response | RealtimeResponseOptions | Die Antwortoptionen. |
RealtimeClientEventSessionUpdate
Das Clientereignis session.update wird verwendet, um die Standardkonfiguration der Sitzung zu aktualisieren. Der Client kann dieses Ereignis jederzeit senden, um die Sitzungskonfiguration zu aktualisieren, und jedes Feld kann jederzeit aktualisiert werden, mit Ausnahme von VoIP.
Es werden nur felder aktualisiert, die vorhanden sind. Um ein Feld (z instructions. B. ) zu löschen, übergeben Sie eine leere Zeichenfolge.
Der Server antwortet mit einem session.updated Ereignis, das die vollständige effektive Konfiguration enthält.
Ereignisstruktur
{
"type": "session.update"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein session.update. |
| Sitzung | RealtimeRequestSession | Die Sitzungskonfiguration. |
Serverereignisse
Die VoIP-Live-API sendet die folgenden Serverereignisse, um Status, Antworten und Daten an den Client zu kommunizieren:
| Event | Description |
|---|---|
| Fehler | Gibt an, dass während der Verarbeitung ein Fehler aufgetreten ist. |
| session.created | Gesendet, wenn eine neue Sitzung erfolgreich eingerichtet wurde |
| session.updated | Gesendet, wenn die Sitzungskonfiguration aktualisiert wird |
| session.avatar.connecting | Gibt an, dass die WebRTC-Verbindung des Avatars eingerichtet wird. |
| conversation.item.created | Gesendet, wenn der Unterhaltung ein neues Element hinzugefügt wird |
| conversation.item.retrieved | Antwort auf die Anforderung "conversation.item.retrieve" |
| conversation.item.truncated | Bestätigt das Abschneiden des Elements. |
| conversation.item.deleted | Bestätigt das Löschen von Elementen. |
| conversation.item.input_audio_transcription.completed | Die Audiotranskription für die Eingabe ist abgeschlossen. |
| conversation.item.input_audio_transcription.delta | Audiotranskription für Streamingeingaben |
| conversation.item.input_audio_transcription.failed | Fehler bei der Audiotranskription für die Eingabe |
| input_audio_buffer.commit | Der Eingabeaudiopuffer wurde zur Verarbeitung zugesichert. |
| input_audio_buffer.cleared | Der Eingabeaudiopuffer wurde gelöscht. |
| input_audio_buffer.speech_started | Spracherkennung im Eingabeaudiopuffer (VAD) |
| input_audio_buffer.speech_stopped | Die Sprachausgabe wurde im Eingabeaudiopuffer (VAD) beendet. |
| response.created | Neue Reaktionsgenerierung wurde gestartet |
| response.done | Die Antwortgenerierung ist abgeschlossen. |
| response.output_item.added | Neues Ausgabeelement zur Antwort hinzugefügt |
| response.output_item.done | Ausgabeelement ist abgeschlossen |
| response.content_part.added | Dem Ausgabeelement hinzugefügter neuer Inhaltsteil |
| response.content_part.done | Inhaltsteil ist abgeschlossen |
| response.text.delta | Streamen von Textinhalten aus dem Modell |
| response.text.done | Der Textinhalt ist abgeschlossen. |
| response.audio_transcript.delta | Streamen von Audiotranskript |
| response.audio_transcript.done | Audiotranskript ist abgeschlossen |
| response.audio.delta | Streamen von Audioinhalten aus dem Modell |
| response.audio.done | Audioinhalte sind abgeschlossen |
| response.animation_blendshapes.delta | Daten zum Streamen von Animationen blendshapes |
| response.animation_blendshapes.done | Animations-Blendshapes-Daten sind abgeschlossen |
| response.audio_timestamp.delta | Streamen von Audiozeitstempelinformationen |
| response.audio_timestamp.done | Audiozeitstempelinformationen sind abgeschlossen |
| response.animation_viseme.delta | Streaminganimation viseme-Daten |
| response.animation_viseme.done | Animations viseme-Daten sind abgeschlossen |
| response.function_call_arguments.delta | Aufrufargumente der Streamingfunktion |
| response.function_call_arguments.done | Funktionsaufrufargumente sind abgeschlossen |
| mcp_list_tools.in_progress | DIE MCP-Toolauflistung wird ausgeführt |
| mcp_list_tools.completed | MCP-Toolauflistung ist abgeschlossen |
| mcp_list_tools.failed | Fehler bei der MCP-Toolauflistung |
| response.mcp_call_arguments.delta | Streaming von MCP-Aufrufargumenten |
| response.mcp_call_arguments.done | MCP-Aufrufargumente sind abgeschlossen |
| response.mcp_call.in_progress | MCP-Aufruf wird ausgeführt |
| response.mcp_call.completed | MCP-Aufruf ist abgeschlossen |
| response.mcp_call.failed | MCP-Aufruf fehlgeschlagen |
session.created
Gesendet, wenn eine neue Sitzung erfolgreich eingerichtet wurde. Dies ist das erste Ereignis, das nach dem Herstellen einer Verbindung mit der API empfangen wird.
Ereignisstruktur
{
"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"
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "session.created" sein. |
| Sitzung | RealtimeResponseSession | Das erstellte Sitzungsobjekt |
session.updated
Gesendet, wenn die Sitzungskonfiguration als Reaktion auf ein session.update Clientereignis erfolgreich aktualisiert wird.
Ereignisstruktur
{
"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
}
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "session.updated" sein. |
| Sitzung | RealtimeResponseSession | Das aktualisierte Sitzungsobjekt |
session.avatar.connecting
Gibt an, dass eine Avatar-WebRTC-Verbindung hergestellt wird. Dieses Ereignis wird als Reaktion auf ein session.avatar.connect Clientereignis gesendet.
Ereignisstruktur
{
"type": "session.avatar.connecting",
"server_sdp": "<server_sdp>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "session.avatar.connecting" sein. |
conversation.item.created
Gesendet, wenn der Unterhaltung ein neues Element hinzugefügt wird, entweder über ein Clientereignis conversation.item.create oder automatisch während der Antwortgenerierung.
Ereignisstruktur
{
"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?"
}
]
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "conversation.item.created" sein. |
| previous_item_id | Schnur | ID des Elements, nach dem dieses Element eingefügt wurde |
| item | RealtimeConversationResponseItem | Das erstellte Unterhaltungselement |
Beispiel mit Audioelement
{
"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
Wird als Reaktion auf ein conversation.item.retrieve Clientereignis gesendet und stellt das angeforderte Unterhaltungselement bereit.
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "conversation.item.created" sein. |
| item | RealtimeConversationResponseItem | Das erstellte Unterhaltungselement |
conversation.item.truncated
Das Serverereignis conversation.item.truncated wird zurückgegeben, wenn der Client ein früheres Audionachrichtenelement des Assistenten mit einem conversation.item.truncate Ereignis abschneidet. Dieses Ereignis wird verwendet, um das Verständnis des Servers mit der Wiedergabe des Clients zu synchronisieren.
Dieses Ereignis schneidet die Audiodaten ab und entfernt die serverseitige Texttranskription, um sicherzustellen, dass kein Text im Kontext vorhanden ist, den der Benutzer nicht kennt.
Ereignisstruktur
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein conversation.item.truncated. |
| item_id | Schnur | Die ID des Nachrichtenelements des Assistenten, das abgeschnitten wurde. |
| content_index | Integer | Der Index des Inhaltsteils, der abgeschnitten wurde. |
| audio_end_ms | Integer | Die Dauer, bis zu der die Audiodaten abgeschnitten wurden, in Millisekunden. |
conversation.item.deleted
Wird als Reaktion auf ein conversation.item.delete Clientereignis gesendet und bestätigt, dass das angegebene Element aus der Unterhaltung entfernt wurde.
Ereignisstruktur
{
"type": "conversation.item.deleted",
"item_id": "item_ABC123"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "conversation.item.deleted" sein. |
| item_id | Schnur | ID des gelöschten Elements |
response.created
Gesendet, wenn eine neue Antwortgenerierung beginnt. Dies ist das erste Ereignis in einer Antwortsequenz.
Ereignisstruktur
{
"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
}
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.created" sein. |
| response | RealtimeResponse | Das Antwortobjekt, das erstellt wurde |
response.done
Gesendet, wenn die Antwortgenerierung abgeschlossen ist. Dieses Ereignis enthält die endgültige Antwort mit allen Ausgabeelementen und Nutzungsstatistiken.
Ereignisstruktur
{
"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
}
}
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.done" sein. |
| response | RealtimeResponse | Das abgeschlossene Antwortobjekt |
response.output_item.added
Wird gesendet, wenn der Antwort während der Generierung ein neues Ausgabeelement hinzugefügt wird.
Ereignisstruktur
{
"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": []
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.output_item.added" sein. |
| response_id | Schnur | DIE ID der Antwort, zu der dieses Element gehört |
| output_index | Integer | Index des Elements im Ausgabearray der Antwort |
| item | RealtimeConversationResponseItem | Das Ausgabeelement, das hinzugefügt wurde |
response.output_item.done
Gesendet, wenn ein Ausgabeelement abgeschlossen ist.
Ereignisstruktur
{
"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."
}
]
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.output_item.done" sein. |
| response_id | Schnur | DIE ID der Antwort, zu der dieses Element gehört |
| output_index | Integer | Index des Elements im Ausgabearray der Antwort |
| item | RealtimeConversationResponseItem | Das abgeschlossene Ausgabeelement |
response.content_part.added
Das Serverereignis response.content_part.added wird zurückgegeben, wenn während der Antwortgenerierung ein neues Inhaltsteil einem Assistentennachrichtenelement hinzugefügt wird.
Ereignisstruktur
{
"type": "response.content_part.added",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"part": {
"type": "text",
"text": ""
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.content_part.added" sein. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | DIE ID des Elements, zu dem dieser Inhaltsteil gehört |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index dieses Inhaltsteils im Element |
| part | RealtimeContentPart | Der hinzugefügte Inhaltsteil |
response.content_part.done
Das Serverereignis response.content_part.done wird zurückgegeben, wenn das Streaming eines Inhaltsteils in einem Assistentennachrichtenelement abgeschlossen ist.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Ereignisstruktur
{
"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."
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.content_part.done" sein. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | DIE ID des Elements, zu dem dieser Inhaltsteil gehört |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index dieses Inhaltsteils im Element |
| part | RealtimeContentPart | Der fertige Inhaltsteil |
response.text.delta
Streamen von Textinhalten aus dem Modell. Wird inkrementell gesendet, wenn das Modell Text generiert.
Ereignisstruktur
{
"type": "response.text.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.text.delta" sein. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
| delta | Schnur | Inkrementeller Textinhalt |
response.text.done
Gesendet, wenn die Textinhaltsgenerierung abgeschlossen ist.
Ereignisstruktur
{
"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?"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.text.done" sein. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
| Text | Schnur | Der vollständige Textinhalt |
response.audio.delta
Streamen von Audioinhalten aus dem Modell. Audio wird als base64-codierte Daten bereitgestellt.
Ereignisstruktur
{
"type": "response.audio.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.audio.delta" sein. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
| delta | Schnur | Base64-codierte Audiodatenabschnitt |
response.audio.done
Gesendet, wenn die Generierung von Audioinhalten abgeschlossen ist.
Ereignisstruktur
{
"type": "response.audio.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.audio.done" sein. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
response.audio_transcript.delta
Streamingtranskript der generierten Audioinhalte.
Ereignisstruktur
{
"type": "response.audio_transcript.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm doing"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.audio_transcript.delta" sein. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
| delta | Schnur | Inkrementeller Transkriptionstext |
response.audio_transcript.done
Gesendet, wenn die Audiotranskripterstellung abgeschlossen ist.
Ereignisstruktur
{
"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?"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "response.audio_transcript.done" sein. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
| transcript | Schnur | Der vollständige Transkripttext |
conversation.item.input_audio_transcription.completed
Das Serverereignis conversation.item.input_audio_transcription.completed ist das Ergebnis der Audiotranskription für die in den Audiopuffer geschriebene Sprache.
Die Transkription beginnt, wenn der Eingabeaudiopuffer vom Client oder Server (im server_vad Modus) zugesichert wird. Die Transkription wird asynchron mit der Antworterstellung ausgeführt, sodass dieses Ereignis vor oder nach den Antwortereignissen erfolgen kann.
Realtime-API-Modelle akzeptieren audionativ und somit ist ein separater Prozess, der auf einem separaten Spracherkennungsmodell wie z whisper-1. B. ausgeführt wird. So kann die Transkription etwas von der Interpretation des Modells abweichen und sollte als grobe Anleitung behandelt werden.
Ereignisstruktur
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein conversation.item.input_audio_transcription.completed. |
| item_id | Schnur | Die ID des Benutzernachrichtenelements, das die Audiodaten enthält. |
| content_index | Integer | Der Index des Inhaltsteils, der die Audiodaten enthält. |
| transcript | Schnur | Der transkribierte Text. |
conversation.item.input_audio_transcription.delta
Das Serverereignis conversation.item.input_audio_transcription.delta wird zurückgegeben, wenn die Audiotranskription für die Eingabe konfiguriert ist und eine Transkriptionsanforderung für eine Benutzernachricht ausgeführt wird. Dieses Ereignis stellt teilweise Transkriptionsergebnisse bereit, sobald sie verfügbar sind.
Ereignisstruktur
{
"type": "conversation.item.input_audio_transcription.delta",
"item_id": "<item_id>",
"content_index": 0,
"delta": "<delta>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein conversation.item.input_audio_transcription.delta. |
| item_id | Schnur | Die ID des Benutzernachrichtenelements. |
| content_index | Integer | Der Index des Inhaltsteils, der die Audiodaten enthält. |
| delta | Schnur | Der inkrementelle Transkriptionstext. |
conversation.item.input_audio_transcription.failed
Das Serverereignis conversation.item.input_audio_transcription.failed wird zurückgegeben, wenn die Audiotranskription für die Eingabe konfiguriert ist und eine Transkriptionsanforderung für eine Benutzernachricht fehlgeschlagen ist. Dieses Ereignis ist von anderen error Ereignissen getrennt, sodass der Client das zugehörige Element identifizieren kann.
Ereignisstruktur
{
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein conversation.item.input_audio_transcription.failed. |
| item_id | Schnur | Die ID des Benutzernachrichtenelements. |
| content_index | Integer | Der Index des Inhaltsteils, der die Audiodaten enthält. |
| Fehler | Objekt | Details des Transkriptionsfehlers. Siehe geschachtelte Eigenschaften in der nächsten Tabelle. |
Fehlereigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Fehlers. |
| Code | Schnur | Falls vorhanden, fehlercode. |
| message | Schnur | Eine für Menschen lesbare Fehlermeldung. |
| param | Schnur | Parameter im Zusammenhang mit dem Fehler, falls vorhanden. |
response.animation_blendshapes.delta
Das Serverereignis response.animation_blendshapes.delta wird zurückgegeben, wenn das Modell Animationsmischungsdaten als Teil einer Antwort generiert. Dieses Ereignis stellt daten inkrementelle Blendshapes bereit, sobald es verfügbar wird.
Ereignisstruktur
{
"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]
...
]
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.animation_blendshapes.delta. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
| frame_index | Integer | Index des ersten Frames in diesem Batch von Frames |
| Rahmen | Array eines Float-Arrays | Array von Blendshape-Frames, jeder Frame ist ein Array von Blendshape-Werten. |
response.animation_blendshapes.done
Das Serverereignis response.animation_blendshapes.done wird zurückgegeben, wenn das Modell das Generieren von Animationsmischungsdaten als Teil einer Antwort abgeschlossen hat.
Ereignisstruktur
{
"type": "response.animation_blendshapes.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.animation_blendshapes.done. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
response.audio_timestamp.delta
Das Serverereignis response.audio_timestamp.delta wird zurückgegeben, wenn das Modell Audiozeitstempeldaten als Teil einer Antwort generiert. Dieses Ereignis stellt inkrementelle Zeitstempeldaten für die Ausgabeaudio- und Textausrichtung bereit, sobald es verfügbar wird.
Ereignisstruktur
{
"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"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.audio_timestamp.delta. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
| audio_offset_ms | Integer | Audiooffset in Millisekunden vom Anfang des Audiosignals |
| audio_duration_ms | Integer | Dauer des Audiosegments in Millisekunden |
| Text | Schnur | Das Textsegment, das diesem Audiozeitstempel entspricht |
| timestamp_type | Schnur | Der Zeitstempeltyp, derzeit wird nur "Wort" unterstützt. |
response.audio_timestamp.done
Gesendet, wenn die Audiozeitstempelgenerierung abgeschlossen ist.
Ereignisstruktur
{
"type": "response.audio_timestamp.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.audio_timestamp.done. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
response.animation_viseme.delta
Das Serverereignis response.animation_viseme.delta wird zurückgegeben, wenn das Modell Animationsdaten als Teil einer Antwort generiert. Dieses Ereignis stellt inkrementelle Viseme-Daten bereit, sobald es verfügbar wird.
Ereignisstruktur
{
"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
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.animation_viseme.delta. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
| audio_offset_ms | Integer | Audiooffset in Millisekunden vom Anfang des Audiosignals |
| viseme_id | Integer | Die Viseme-ID, die der Mundform für animation entspricht |
response.animation_viseme.done
Das Serverereignis response.animation_viseme.done wird zurückgegeben, wenn das Modell das Generieren von Animationsdaten als Teil einer Antwort abgeschlossen hat.
Ereignisstruktur
{
"type": "response.animation_viseme.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.animation_viseme.done. |
| response_id | Schnur | ID der Antwort |
| item_id | Schnur | ID des Elements |
| output_index | Integer | Index des Elements in der Antwort |
| content_index | Integer | Index des Inhaltsteils |
Das Serverereignis response.animation_viseme.delta wird zurückgegeben, wenn das Modell Animationsdaten als Teil einer Antwort generiert. Dieses Ereignis stellt inkrementelle Viseme-Daten bereit, sobald es verfügbar wird.
Fehler
Das Serverereignis error wird zurückgegeben, wenn ein Fehler auftritt, bei dem es sich um ein Clientproblem oder ein Serverproblem handeln kann. Die meisten Fehler können wiederhergestellt werden, und die Sitzung bleibt geöffnet.
Ereignisstruktur
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein error. |
| Fehler | Objekt | Details des Fehlers. Siehe geschachtelte Eigenschaften in der nächsten Tabelle. |
Fehlereigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Fehlers. Beispielsweise sind "invalid_request_error" und "server_error" Fehlertypen. |
| Code | Schnur | Falls vorhanden, fehlercode. |
| message | Schnur | Eine für Menschen lesbare Fehlermeldung. |
| param | Schnur | Parameter im Zusammenhang mit dem Fehler, falls vorhanden. |
| event_id | Schnur | Die ID des Clientereignisses, das den Fehler verursacht hat, falls zutreffend. |
input_audio_buffer.cleared
Das Serverereignis input_audio_buffer.cleared wird zurückgegeben, wenn der Client den Eingabeaudiopuffer mit einem input_audio_buffer.clear Ereignis löscht.
Ereignisstruktur
{
"type": "input_audio_buffer.cleared"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein input_audio_buffer.cleared. |
input_audio_buffer.commit
Das Serverereignis input_audio_buffer.committed wird zurückgegeben, wenn ein Eingabeaudiopuffer vom Client oder automatisch im Server-VAD-Modus zugesichert wird. Die item_id Eigenschaft ist die ID des erstellten Benutzernachrichtenelements. Daher wird auch ein conversation.item.created Ereignis an den Client gesendet.
Ereignisstruktur
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein input_audio_buffer.committed. |
| previous_item_id | Schnur | Die ID des vorherigen Elements, nach dem das neue Element eingefügt wird. |
| item_id | Schnur | Die ID des erstellten Benutzernachrichtenelements. |
input_audio_buffer.speech_started
Das Serverereignis input_audio_buffer.speech_started wird im server_vad Modus zurückgegeben, wenn die Spracherkennung im Audiopuffer erkannt wird. Dieses Ereignis kann jederzeit auftreten, wenn dem Puffer Audio hinzugefügt wird (es sei denn, die Spracherkennung wurde bereits erkannt).
Hinweis
Der Client möchte dieses Ereignis möglicherweise verwenden, um die Audiowiedergabe zu unterbrechen oder dem Benutzer visuelles Feedback zu geben.
Der Client sollte erwarten, dass ein input_audio_buffer.speech_stopped Ereignis empfangen wird, wenn die Spracherkennung beendet wird. Die item_id Eigenschaft ist die ID des Benutzernachrichtenelements, das beim Beenden der Sprachausgabe erstellt wurde. Dies item_id ist auch im input_audio_buffer.speech_stopped Ereignis enthalten, es sei denn, der Client verpflichtet den Audiopuffer während der VAD-Aktivierung manuell.
Ereignisstruktur
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein input_audio_buffer.speech_started. |
| audio_start_ms | Integer | Millisekunden vom Anfang aller Audiodaten, die während der Sitzung in den Puffer geschrieben wurden, als die Spracherkennung zum ersten Mal erkannt wurde. Diese Eigenschaft entspricht dem Anfang der an das Modell gesendeten Audiodaten und enthält somit die prefix_padding_ms in der Sitzung konfigurierte. |
| item_id | Schnur | Die ID des Benutzernachrichtenelements, das beim Beenden der Spracherkennung erstellt wurde. |
input_audio_buffer.speech_stopped
Das Serverereignis input_audio_buffer.speech_stopped wird im server_vad Modus zurückgegeben, wenn der Server das Ende der Spracherkennung im Audiopuffer erkennt.
Der Server sendet außerdem ein conversation.item.created Ereignis mit dem benutzernachrichtenelement, das aus dem Audiopuffer erstellt wurde.
Ereignisstruktur
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein input_audio_buffer.speech_stopped. |
| audio_end_ms | Integer | Millisekunden seit beginn der Sitzung, als die Sprachausgabe beendet wurde. Diese Eigenschaft entspricht dem Ende der an das Modell gesendeten Audiodaten und enthält somit die min_silence_duration_ms in der Sitzung konfigurierte. |
| item_id | Schnur | Die ID des erstellten Benutzernachrichtenelements. |
rate_limits.updated
Das Serverereignis rate_limits.updated wird am Anfang einer Antwort ausgegeben, um die aktualisierten Ratengrenzwerte anzugeben.
Wenn eine Antwort erstellt wird, sind einige Token für die Ausgabetoken reserviert. Die hier gezeigten Zinslimits spiegeln die Reservierung wider, die dann nach Abschluss der Antwort entsprechend angepasst wird.
Ereignisstruktur
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein rate_limits.updated. |
| rate_limits | Array von RealtimeRateLimitsItem | Die Liste der Informationen zum Satzgrenzwert. |
response.audio.delta
Das Serverereignis response.audio.delta wird zurückgegeben, wenn das modellgenerierte Audio aktualisiert wird.
Ereignisstruktur
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.audio.delta. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Elements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | Integer | Der Index des Inhaltsteils im Inhaltsarray des Elements. |
| delta | Schnur | Base64-codiertes Audiodatendelta. |
response.audio.done
Das Serverereignis response.audio.done wird zurückgegeben, wenn das modellgenerierte Audio abgeschlossen ist.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Ereignisstruktur
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.audio.done. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Elements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | Integer | Der Index des Inhaltsteils im Inhaltsarray des Elements. |
response.audio_transcript.delta
Das Serverereignis response.audio_transcript.delta wird zurückgegeben, wenn die modellgenerierte Transkription der Audioausgabe aktualisiert wird.
Ereignisstruktur
{
"type": "response.audio_transcript.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.audio_transcript.delta. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Elements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | Integer | Der Index des Inhaltsteils im Inhaltsarray des Elements. |
| delta | Schnur | Das Transkriptdelta. |
response.audio_transcript.done
Das Serverereignis response.audio_transcript.done wird zurückgegeben, wenn die modellgenerierte Transkription der Audioausgabe streamingt wird.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Ereignisstruktur
{
"type": "response.audio_transcript.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"transcript": "<transcript>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.audio_transcript.done. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Elements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | Integer | Der Index des Inhaltsteils im Inhaltsarray des Elements. |
| transcript | Schnur | Die endgültige Transkription der Audiodaten. |
response.function_call_arguments.delta
Das Serverereignis response.function_call_arguments.delta wird zurückgegeben, wenn die vom Modell generierten Funktionsaufrufargumente aktualisiert werden.
Ereignisstruktur
{
"type": "response.function_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"delta": "<delta>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.function_call_arguments.delta. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Funktionsaufrufelements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| call_id | Schnur | Die ID des Funktionsaufrufs. |
| delta | Schnur | Die Argumente delta als JSON-Zeichenfolge. |
response.function_call_arguments.done
Das Serverereignis response.function_call_arguments.done wird zurückgegeben, wenn die vom Modell generierten Funktionsaufrufargumente streamingt werden.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Ereignisstruktur
{
"type": "response.function_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"arguments": "<arguments>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.function_call_arguments.done. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Funktionsaufrufelements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| call_id | Schnur | Die ID des Funktionsaufrufs. |
| Argumente | Schnur | Die endgültigen Argumente als JSON-Zeichenfolge. |
mcp_list_tools.in_progress
Das Serverereignis mcp_list_tools.in_progress wird zurückgegeben, wenn der Dienst beginnt, verfügbare Tools von einem Mcp-Server aufzulisten.
Ereignisstruktur
{
"type": "mcp_list_tools.in_progress",
"item_id": "<mcp_list_tools_item_id>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein mcp_list_tools.in_progress. |
| item_id | Schnur | Die ID des verarbeiteten MCP-Listentools-Elements . |
mcp_list_tools.completed
Das Serverereignis mcp_list_tools.completed wird zurückgegeben, wenn der Dienst die Auflistung der verfügbaren Tools von einem Mcp-Server abgeschlossen hat.
Ereignisstruktur
{
"type": "mcp_list_tools.completed",
"item_id": "<mcp_list_tools_item_id>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein mcp_list_tools.completed. |
| item_id | Schnur | Die ID des verarbeiteten MCP-Listentools-Elements . |
mcp_list_tools.failed
Das Serverereignis mcp_list_tools.failed wird zurückgegeben, wenn der Dienst keine verfügbaren Tools von einem Mcp-Server auflistet.
Ereignisstruktur
{
"type": "mcp_list_tools.failed",
"item_id": "<mcp_list_tools_item_id>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein mcp_list_tools.failed. |
| item_id | Schnur | Die ID des verarbeiteten MCP-Listentools-Elements . |
response.mcp_call_arguments.delta
Das Serverereignis response.mcp_call_arguments.delta wird zurückgegeben, wenn die vom Modell generierten Mcp-Toolaufrufargumente aktualisiert werden.
Ereignisstruktur
{
"type": "response.mcp_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"delta": "<delta>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.mcp_call_arguments.delta. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Mcp-Toolaufrufelements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| delta | Schnur | Die Argumente delta als JSON-Zeichenfolge. |
response.mcp_call_arguments.done
Das Serverereignis response.mcp_call_arguments.done wird zurückgegeben, wenn das vom Modell generierte Mcp-Toolaufrufargumente streamingt werden.
Ereignisstruktur
{
"type": "response.mcp_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"arguments": "<arguments>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.mcp_call_arguments.done. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Mcp-Toolaufrufelements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| Argumente | Schnur | Die endgültigen Argumente als JSON-Zeichenfolge. |
response.mcp_call.in_progress
Das Serverereignis response.mcp_call.in_progress wird zurückgegeben, wenn ein MCP-Toolaufruf die Verarbeitung startet.
Ereignisstruktur
{
"type": "response.mcp_call.in_progress",
"item_id": "<item_id>",
"output_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.mcp_call.in_progress. |
| item_id | Schnur | Die ID des Mcp-Toolaufrufelements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
response.mcp_call.completed
Das Serverereignis response.mcp_call.completed wird zurückgegeben, wenn ein MCP-Toolaufruf erfolgreich abgeschlossen wird.
Ereignisstruktur
{
"type": "response.mcp_call.completed",
"item_id": "<item_id>",
"output_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.mcp_call.completed. |
| item_id | Schnur | Die ID des Mcp-Toolaufrufelements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
response.mcp_call.failed
Das Serverereignis response.mcp_call.failed wird zurückgegeben, wenn ein MCP-Toolaufruf fehlschlägt.
Ereignisstruktur
{
"type": "response.mcp_call.failed",
"item_id": "<item_id>",
"output_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.mcp_call.failed. |
| item_id | Schnur | Die ID des Mcp-Toolaufrufelements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
response.output_item.added
Das Serverereignis response.output_item.added wird zurückgegeben, wenn während der Antwortgenerierung ein neues Element erstellt wird.
Ereignisstruktur
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.output_item.added. |
| response_id | Schnur | Die ID der Antwort, zu der das Element gehört. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| item | RealtimeConversationResponseItem | Das Hinzugefügte Element. |
response.output_item.done
Das Serverereignis response.output_item.done wird zurückgegeben, wenn das Streaming eines Elements abgeschlossen ist.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Ereignisstruktur
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.output_item.done. |
| response_id | Schnur | Die ID der Antwort, zu der das Element gehört. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| item | RealtimeConversationResponseItem | Das Element, das das Streaming abgeschlossen hat. |
response.text.delta
Das Serverereignis response.text.delta wird zurückgegeben, wenn der modellgenerierte Text aktualisiert wird. Der Text entspricht dem text Inhaltsteil eines Assistentennachrichtenelements.
Ereignisstruktur
{
"type": "response.text.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.text.delta. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Elements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | Integer | Der Index des Inhaltsteils im Inhaltsarray des Elements. |
| delta | Schnur | Das Textdelta. |
response.text.done
Das Serverereignis response.text.done wird zurückgegeben, wenn der modellgenerierte Text gestreamt wird. Der Text entspricht dem text Inhaltsteil eines Assistentennachrichtenelements.
Dieses Ereignis wird auch zurückgegeben, wenn eine Antwort unterbrochen, unvollständig oder abgebrochen wird.
Ereignisstruktur
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
Eigenschaften
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Ereignistyp muss sein response.text.done. |
| response_id | Schnur | Die ID der Antwort. |
| item_id | Schnur | Die ID des Elements. |
| output_index | Integer | Der Index des Ausgabeelements in der Antwort. |
| content_index | Integer | Der Index des Inhaltsteils im Inhaltsarray des Elements. |
| Text | Schnur | Der endgültige Textinhalt. |
Komponenten
Audioformate
RealtimeAudioFormat
Basisaudioformat, das für Eingabeaudio verwendet wird.
Zulässige Werte:
-
pcm16- 16-Bit-PCM-Audioformat -
g711_ulaw- G.711 μ-law audio format -
g711_alaw- G.711 A-law audio format
RealtimeOutputAudioFormat
Audioformat, das für die Ausgabe von Audio mit bestimmten Samplingraten verwendet wird.
Zulässige Werte:
-
pcm16- 16-Bit-PCM-Audioformat bei der Standard-Samplingrate (24kHz) -
pcm16_8000hz- 16-Bit-PCM-Audioformat bei 8kHz Samplingrate -
pcm16_16000hz- 16-Bit-PCM-Audioformat bei 16kHz Samplingrate -
g711_ulaw- G.711 μ-Law -Audioformat (mu-law) bei 8kHz Samplingrate -
g711_alaw- G.711 A-law audio format at 8kHz sampling rate
RealtimeAudioInputTranscriptionSettings
Konfiguration für die Eingabeaudiotranskription.
| Feld | Typ | Description |
|---|---|---|
| Modell | Schnur | Das Transkriptionsmodell. Unterstützt mit gpt-realtime und gpt-realtime-mini:whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize.Unterstützt mit allen anderen Modellen und Agents: azure-speech |
| language | Schnur | Optionaler Sprachcode in BCP-47 (z. B. en-US), oder ISO-639-1 (z. B en. ) oder Multisprachen mit automatischer Erkennung (z. B en,zh. ). |
| custom_speech | Objekt | Optionale Konfiguration für benutzerdefinierte Sprachmodelle, nur gültig für azure-speech das Modell. |
| phrase_list | string[] | Optionale Liste von Begriffshinweisen zur Verzerrungserkennung, nur gültig für azure-speech das Modell. |
| prompt | Schnur | Optionaler Eingabeaufforderungstext zur Anleitung der Transkription, nur gültig für whisper-1, gpt-4o-transcribegpt-4o-mini-transcribe und gpt-4o-transcribe-diarize Modelle. |
RealtimeInputAudioNoiseReductionSettings
Dies kann folgendes sein:
RealtimeOpenAINoiseReduction
OpenAI-Rauschreduzierungskonfiguration mit expliziten Typfeld, nur für gpt-realtime und gpt-realtime-mini Modelle verfügbar.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur |
near_field oder far_field |
RealtimeAzureDeepNoiseSuppression
Konfiguration zur Rauschunterdrückung bei Audioeingang.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "azure_deep_noise_suppression" sein. |
RealtimeInputAudioEchoCancellationSettings
Echounterdrückungskonfiguration für die serverseitige Audioverarbeitung.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "server_echo_cancellation" sein. |
VoIP-Konfiguration
RealtimeVoice
Union aller unterstützten Sprachkonfigurationen.
Dies kann folgendes sein:
RealtimeOpenAIVoice
OpenAI-Sprachkonfiguration mit expliziten Typfeldern.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "openai" sein. |
| name | Schnur | OpenAI-Sprachname: alloy, , ash, balladcoral, echosageshimmerverse, marincedar |
RealtimeAzureVoice
Basis für Azure-VoIP-Konfigurationen. Dies ist eine diskriminierte Vereinigung mit verschiedenen Typen:
RealtimeAzureStandardVoice
Azure-Standard-VoIP-Konfiguration.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "azure-standard" sein. |
| name | Schnur | Sprachname (darf nicht leer sein) |
| Temperatur | number | Wahlfrei. Temperatur zwischen 0,0 und 1,0 |
| custom_lexicon_url | Schnur | Wahlfrei. URL zu benutzerdefiniertem Lexicon |
| prefer_locales | string[] | Wahlfrei. Bevorzugte Gebietsschemas Gebietsschemas bevorzugen ändern die Akzente der Sprachen. Wenn der Wert nicht festgelegt ist, verwendet TTS den Standardakzent jeder Sprache. Wenn TTS z. B. Englisch spricht, wird es den amerikanischen Englischakzent verwenden. Und wenn Sie Spanisch sprechen, wird es den mexikanischen spanischen Akzent verwenden. Wenn die prefer_locales festgelegt ["en-GB", "es-ES"]ist, ist der englische Akzent britisches Englisch, und der spanische Akzent ist Europäisches Spanisch. Und TTS kann auch andere Sprachen wie Französisch, Chinesisch usw. sprechen. |
| Gebietsschema | Schnur | Wahlfrei. Gebietsschemaspezifikation Erzwingen des Gebietsschemas für die TTS-Ausgabe. Wenn nicht festgelegt, verwendet TTS immer das angegebene Gebietsschema, um zu sprechen. z. B. das Gebietsschema festlegen en-US, verwendet TTS immer amerikanischen Englischakzent, um den Textinhalt zu sprechen, auch wenn sich der Textinhalt in einer anderen Sprache befindet. Und TTS gibt stumm, wenn sich der Textinhalt in Chinesisch befindet. |
| style | Schnur | Wahlfrei. Sprachstil |
| Pech | Schnur | Wahlfrei. Anpassung des Neigungswinkels |
| Rate | Schnur | Wahlfrei. Anpassung der Sprachrate |
| volume | Schnur | Wahlfrei. Volumenanpassung |
RealtimeAzureCustomVoice
Benutzerdefinierte Azure-Sprachkonfiguration (bevorzugt für benutzerdefinierte Stimmen).
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "azure-custom" sein. |
| name | Schnur | Sprachname (darf nicht leer sein) |
| endpoint_id | Schnur | Endpunkt-ID (darf nicht leer sein) |
| Temperatur | number | Wahlfrei. Temperatur zwischen 0,0 und 1,0 |
| custom_lexicon_url | Schnur | Wahlfrei. URL zu benutzerdefiniertem Lexicon |
| prefer_locales | string[] | Wahlfrei. Bevorzugte Gebietsschemas Gebietsschemas bevorzugen ändern die Akzente der Sprachen. Wenn der Wert nicht festgelegt ist, verwendet TTS den Standardakzent jeder Sprache. Wenn TTS z. B. Englisch spricht, wird es den amerikanischen Englischakzent verwenden. Und wenn Sie Spanisch sprechen, wird es den mexikanischen spanischen Akzent verwenden. Wenn die prefer_locales festgelegt ["en-GB", "es-ES"]ist, ist der englische Akzent britisches Englisch, und der spanische Akzent ist Europäisches Spanisch. Und TTS kann auch andere Sprachen wie Französisch, Chinesisch usw. sprechen. |
| Gebietsschema | Schnur | Wahlfrei. Gebietsschemaspezifikation Erzwingen des Gebietsschemas für die TTS-Ausgabe. Wenn nicht festgelegt, verwendet TTS immer das angegebene Gebietsschema, um zu sprechen. z. B. das Gebietsschema festlegen en-US, verwendet TTS immer amerikanischen Englischakzent, um den Textinhalt zu sprechen, auch wenn sich der Textinhalt in einer anderen Sprache befindet. Und TTS gibt stumm, wenn sich der Textinhalt in Chinesisch befindet. |
| style | Schnur | Wahlfrei. Sprachstil |
| Pech | Schnur | Wahlfrei. Anpassung des Neigungswinkels |
| Rate | Schnur | Wahlfrei. Anpassung der Sprachrate |
| volume | Schnur | Wahlfrei. Volumenanpassung |
Beispiel:
{
"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.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "azure-personal" sein. |
| name | Schnur | Sprachname (darf nicht leer sein) |
| Temperatur | number | Wahlfrei. Temperatur zwischen 0,0 und 1,0 |
| Modell | Schnur | Zugrunde liegendes neurales Modell: DragonLatestNeural, PhoenixLatestNeuralPhoenixV2Neural |
| custom_lexicon_url | Schnur | Wahlfrei. URL zu benutzerdefiniertem Lexicon |
| prefer_locales | string[] | Wahlfrei. Bevorzugte Gebietsschemas Gebietsschemas bevorzugen ändern die Akzente der Sprachen. Wenn der Wert nicht festgelegt ist, verwendet TTS den Standardakzent jeder Sprache. Wenn TTS z. B. Englisch spricht, wird es den amerikanischen Englischakzent verwenden. Und wenn Sie Spanisch sprechen, wird es den mexikanischen spanischen Akzent verwenden. Wenn die prefer_locales festgelegt ["en-GB", "es-ES"]ist, ist der englische Akzent britisches Englisch, und der spanische Akzent ist Europäisches Spanisch. Und TTS kann auch andere Sprachen wie Französisch, Chinesisch usw. sprechen. |
| Gebietsschema | Schnur | Wahlfrei. Gebietsschemaspezifikation Erzwingen des Gebietsschemas für die TTS-Ausgabe. Wenn nicht festgelegt, verwendet TTS immer das angegebene Gebietsschema, um zu sprechen. z. B. das Gebietsschema festlegen en-US, verwendet TTS immer amerikanischen Englischakzent, um den Textinhalt zu sprechen, auch wenn sich der Textinhalt in einer anderen Sprache befindet. Und TTS gibt stumm, wenn sich der Textinhalt in Chinesisch befindet. |
| Pech | Schnur | Wahlfrei. Anpassung des Neigungswinkels |
| Rate | Schnur | Wahlfrei. Anpassung der Sprachrate |
| volume | Schnur | Wahlfrei. Volumenanpassung |
Erkennung drehen
RealtimeTurnDetection
Konfiguration für die Turnerkennung. Dies ist eine diskriminierte Vereinigung, die mehrere VAD-Typen unterstützt.
RealtimeServerVAD
Basis-VAD-basierte Dreherkennung.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "server_vad" sein. |
| threshold | number | Wahlfrei. Aktivierungsschwellenwert (0,0-1.0) |
| prefix_padding_ms | Integer | Wahlfrei. Audioabstand vor dem Start der Sprache |
| silence_duration_ms | Integer | Wahlfrei. Stille Dauer zum Erkennen des Sprachendes |
| end_of_utterance_detection | RealtimeEOUDetection | Wahlfrei. End-of-utterance detection config |
| Antwort_erstellen | boolean | Wahlfrei. Aktivieren oder deaktivieren Sie, ob eine Antwort generiert wird. |
| interrupt_response | boolean | Wahlfrei. Aktivieren oder Deaktivieren von Barge-In-Unterbrechungen (Standard: false) |
| auto_truncate | boolean | Wahlfrei. Automatische Abkürzung bei Unterbrechung (Standard: false) |
RealtimeOpenAISemanticVAD
OpenAI-Semantik-VAD-Konfiguration, die ein Modell verwendet, um zu bestimmen, wann der Benutzer die Rede abgeschlossen hat. Nur für gpt-realtime und gpt-realtime-mini Modelle verfügbar.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "semantic_vad" sein. |
| Eifer | Schnur | Wahlfrei. Dies ist eine Möglichkeit, zu steuern, wie eifrig das Modell ist, den Benutzer zu unterbrechen und das maximale Wartezeittimeout zu optimieren. Auch wenn das Modell nicht antwortet, wirkt es sich im Transkriptionsmodus darauf aus, wie das Audio geblockt wird. Die folgenden Werte sind zulässig: - auto (Standard) entspricht medium,- low wird dem Benutzer die Zeit nehmen, zu sprechen,- high wird die Audiowiedergabe so schnell wie möglich abblocken.Wenn sie möchten, dass das Modell häufiger im Unterhaltungsmodus reagiert oder Transkriptionsereignisse schneller im Transkriptionsmodus zurückgegeben werden soll, können Sie eifrig highfestlegen.Wenn Sie es dem Benutzer hingegen ermöglichen möchten, im Unterhaltungsmodus unterbrechungsfrei zu sprechen, oder wenn Sie größere Transkriptblöcke im Transkriptionsmodus wünschen, können Sie eifrig festlegen low. |
| Antwort_erstellen | boolean | Wahlfrei. Aktivieren oder deaktivieren Sie, ob eine Antwort generiert wird. |
| interrupt_response | boolean | Wahlfrei. Aktivieren oder Deaktivieren von Barge-In-Unterbrechungen (Standard: false) |
RealtimeAzureSemanticVAD
Azure Semantic VAD, der bestimmt, wann der Benutzer mit einem semantischen Sprachmodell beginnt und spricht, was eine robustere Erkennung in lauten Umgebungen ermöglicht.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "azure_semantic_vad" sein. |
| threshold | number | Wahlfrei. Aktivierungsschwellenwert |
| prefix_padding_ms | Integer | Wahlfrei. Audioabstand vor der Spracherkennung |
| silence_duration_ms | Integer | Wahlfrei. Stille Dauer für Sprachende |
| end_of_utterance_detection | RealtimeEOUDetection | Wahlfrei. EOU-Erkennungskonfiguration |
| speech_duration_ms | Integer | Wahlfrei. Minimale Sprachdauer |
| remove_filler_words | boolean | Wahlfrei. Füllwörter entfernen (Standard: false) |
| Sprachen | string[] | Wahlfrei. Unterstützt Englisch. Andere Sprachen werden ignoriert. |
| Antwort_erstellen | boolean | Wahlfrei. Aktivieren oder deaktivieren Sie, ob eine Antwort generiert wird. |
| interrupt_response | boolean | Wahlfrei. Aktivieren oder Deaktivieren von Barge-In-Unterbrechungen (Standard: false) |
| auto_truncate | boolean | Wahlfrei. Automatische Abkürzung bei Unterbrechung (Standard: false) |
RealtimeAzureSemanticVADMultilingual
Azure semantic VAD (Standardvariante).
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "azure_semantic_vad_multilingual" sein. |
| threshold | number | Wahlfrei. Aktivierungsschwellenwert |
| prefix_padding_ms | Integer | Wahlfrei. Audioabstand vor der Spracherkennung |
| silence_duration_ms | Integer | Wahlfrei. Stille Dauer für Sprachende |
| end_of_utterance_detection | RealtimeEOUDetection | Wahlfrei. EOU-Erkennungskonfiguration |
| speech_duration_ms | Integer | Wahlfrei. Minimale Sprachdauer |
| remove_filler_words | boolean | Wahlfrei. Entfernen Von Füllwörtern (Standard: false). |
| Sprachen | string[] | Wahlfrei. Unterstützt Englisch, Spanisch, Französisch, Italienisch, Deutsch (DE), Japanisch, Portugiesisch, Chinesisch, Koreanisch, Hindi. Andere Sprachen werden ignoriert. |
| Antwort_erstellen | boolean | Wahlfrei. Aktivieren oder deaktivieren Sie, ob eine Antwort generiert wird. |
| interrupt_response | boolean | Wahlfrei. Aktivieren oder Deaktivieren von Barge-In-Unterbrechungen (Standard: false) |
| auto_truncate | boolean | Wahlfrei. Automatische Abkürzung bei Unterbrechung (Standard: false) |
RealtimeEOUDetection
Azure End-of-Utterance (EOU) könnte angeben, wann der Endbenutzer nicht mehr spricht, während natürliche Pausen möglich sind. Die Erkennung der Beendigung von Äußerungen kann vorzeitige Signale zu Sprecherwechseln erheblich reduzieren, ohne dass eine für die Benutzenden erkennbare Latenz auftritt.
| Feld | Typ | Description |
|---|---|---|
| Modell | Schnur |
semantic_detection_v1 Könnte englisch oder semantic_detection_v1_multilingual unterstützt Englisch, Spanisch, Französisch, Italienisch, Deutsch (DE), Japanisch, Portugiesisch, Chinesisch, Koreanisch, Hindi |
| threshold_level | Schnur | Wahlfrei. Erkennungsschwellenwert low (medium, highdefaultund medium), die Standardeinstellung entspricht. Mit einer niedrigeren Einstellung wird die Wahrscheinlichkeit, dass der Satz abgeschlossen ist, höher sein. |
| timeout_ms | number | Wahlfrei. Maximale Zeit in Millisekunden, um auf mehr Benutzersprache zu warten. Der Standardwert ist 1000 ms. |
Avatarkonfiguration
RealtimeAvatarConfig
Konfiguration für Avatarstreaming und -verhalten.
| Feld | Typ | Description |
|---|---|---|
| ice_servers | RealtimeIceServer[] | Wahlfrei. ICE-Server für WebRTC |
| Zeichen | Schnur | Zeichenname oder ID für den Avatar |
| style | Schnur | Wahlfrei. Avatarstil (emotionaler Ton, Sprechender Stil) |
| Angepasst | boolean | Gibt an, ob der Avatar angepasst wird. |
| video | RealtimeVideoParams | Wahlfrei. Videokonfiguration |
RealtimeIceServer
ICE-Serverkonfiguration für WebRTC-Verbindungsverhandlung.
| Feld | Typ | Description |
|---|---|---|
| urls | string[] | ICE-Server-URLs (TURN- oder STUN-Endpunkte) |
| username | Schnur | Wahlfrei. Benutzername für die Authentifizierung |
| credential | Schnur | Wahlfrei. Anmeldeinformationen für die Authentifizierung |
RealtimeVideoParams
Videostreamingparameter für Avatar.
| Feld | Typ | Description |
|---|---|---|
| Bitrate | Integer | Wahlfrei. Bitrate in Bits pro Sekunde (Standard: 2000000) |
| Codec | Schnur | Wahlfrei. Videocodec, derzeit nur h264 (Standard: h264) |
| crop | RealtimeVideoCrop | Wahlfrei. Zuschneideeinstellungen |
| Auflösung | RealtimeVideoResolution | Wahlfrei. Auflösungseinstellungen |
RealtimeVideoCrop
Definition des Videozuschneiderechtecks.
| Feld | Typ | Description |
|---|---|---|
| top_left | ganze Zahl[] | Obere linke Ecke [x, y], nicht negative ganze Zahlen |
| bottom_right | ganze Zahl[] | Untere rechte Ecke [x, y], nicht negative ganze Zahlen |
RealtimeVideoResolution
Spezifikation der Videoauflösung.
| Feld | Typ | Description |
|---|---|---|
| width | Integer | Breite in Pixeln (muss 0 sein > ) |
| height | Integer | Höhe in Pixeln (muss 0 sein > ) |
Animationskonfiguration
RealtimeAnimation
Konfiguration für Animationsausgaben, einschließlich Blendformen und Visemes.
| Feld | Typ | Description |
|---|---|---|
| model_name | Schnur | Wahlfrei. Animationsmodellname (Standard: "default") |
| Ergebnisse | RealtimeAnimationOutputType[] | Wahlfrei. Ausgabetypen (Standard: ["blendshapes"]) |
RealtimeAnimationOutputType
Arten von Animationsdaten, die ausgegeben werden sollen.
Zulässige Werte:
-
blendshapes- Gesichts-Blendshapes-Daten -
viseme_id- Viseme-Bezeichnerdaten
Sitzungskonfiguration
RealtimeRequestSession
Sitzungskonfigurationsobjekt, das in session.update Ereignissen verwendet wird.
| Feld | Typ | Description |
|---|---|---|
| Modell | Schnur | Wahlfrei. Zu verwendende Modellname |
| modalities | RealtimeModality[] | Wahlfrei. Die unterstützten Modalitäten für die Sitzung. Beispielsweise ist "modalities": ["text", "audio"] die Standardeinstellung, die sowohl Text- als auch Audiomodalitäten aktiviert. Um nur Text zu aktivieren, legen Sie "Modalitäten" fest: ["text"]. Um die Avatarausgabe zu aktivieren, legen Sie "Modalitäten" fest: ["text", "audio", "avatar"]. Sie können nicht nur Audio aktivieren. |
| Animation | RealtimeAnimation | Wahlfrei. Animationskonfiguration |
| VoIP | RealtimeVoice | Wahlfrei. VoIP-Konfiguration |
| instructions | Schnur | Wahlfrei. Systemanweisungen für das Modell. Die Anweisungen können die Ausgabeaudio leiten, wenn OpenAI-Stimmen verwendet werden, aber möglicherweise nicht für Azure-Stimmen gelten. |
| input_audio_sampling_rate | Integer | Wahlfrei. Eingabeaudio-Samplingrate in Hz (Standard: 24000 für pcm16, 8000 für g711_ulaw und g711_alaw) |
| input_audio_format | RealtimeAudioFormat | Wahlfrei. Eingabeaudioformat (Standard: pcm16) |
| output_audio_format | RealtimeOutputAudioFormat | Wahlfrei. Ausgabeaudioformat (Standard: pcm16) |
| input_audio_noise_reduction | RealtimeInputAudioNoiseReductionSettings | Konfiguration zur Rauschunterdrückung bei Audioeingang. Dies kann auf NULL festgelegt werden, um den Vorgang zu deaktivieren. Bei der Rauschunterdrücken werden Audiodaten, die dem Eingabeaudiopuffer hinzugefügt werden, gefiltert, bevor sie an VAD und das Modell gesendet werden. Durch die Filterung der Audiodaten können die Genauigkeit der VAD und der Sprecherwechselerkennung (Reduzierung falsch positiver Ergebnisse) sowie die Modellleistung verbessert werden, indem die Wahrnehmung der Eingabeaudiodaten verbessert wird. Diese Eigenschaft kann null sein. |
| input_audio_echo_cancellation | RealtimeInputAudioEchoCancellationSettings | Konfiguration für die Audiounterdrückung der Eingabe. Dies kann auf NULL festgelegt werden, um den Vorgang zu deaktivieren. Diese dienstseitige Echounterdrückung kann dazu beitragen, die Qualität der Eingabeaudio zu verbessern, indem die Auswirkungen von Echo und Hall reduziert werden. Diese Eigenschaft kann null sein. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Die Konfiguration für die Eingabeaudiotranskription. Die Konfiguration ist standardmäßig NULL (aus). Die Audiotranskription von Eingaben ist nicht nativ für das Modell, da das Modell Audio direkt nutzt. Die Transkription wird asynchron über den /audio/transcriptions Endpunkt ausgeführt und sollte als Anleitung für Eingabeaudioinhalte behandelt werden, anstatt genau das, was das Modell gehört hat. Für zusätzliche Anleitungen für den Transkriptionsdienst kann der Client optional die Sprache festlegen und zur Transkription auffordern.Diese Eigenschaft kann null sein. |
| turn_detection | RealtimeTurnDetection | Die Aktivierungseinstellungen für die Sitzung. Dies kann auf NULL festgelegt werden, um den Vorgang zu deaktivieren. |
| Werkzeuge | Array von RealtimeTool | Die Tools, die für das Modell für die Sitzung verfügbar sind. |
| tool_choice | RealtimeToolChoice | Die Toolauswahl für die Sitzung. Zulässige Werte: auto, none, und required. Andernfalls können Sie den Namen der zu verwendenden Funktion angeben. |
| Temperatur | number | Die Samplingtemperatur für das Modell. Die zulässigen Temperaturwerte sind auf [0,6, 1,2] beschränkt. Der Standardwert ist 0,8. |
| max_response_output_tokens | ganze Zahl oder "inf" | Die maximale Anzahl von Ausgabetoken pro Assistentenantwort, einschließlich der Toolaufrufe. Geben Sie eine ganze Zahl zwischen 1 und 4096 an, um die Ausgabetoken einzuschränken. Legen Sie andernfalls den Wert auf "inf" fest, um die maximale Anzahl von Token zuzulassen. Legen Sie beispielsweise fest, "max_response_output_tokens": 1000um die Ausgabetoken auf 1000 zu beschränken. Legen Sie fest "max_response_output_tokens": "inf", um die maximale Anzahl von Token zuzulassen.Wird standardmäßig auf "inf" festgelegt. |
| Avatar | RealtimeAvatarConfig | Wahlfrei. Avatarkonfiguration |
| output_audio_timestamp_types | RealtimeAudioTimestampType[] | Wahlfrei. Zeitstempeltypen für Ausgabeaudio |
RealtimeModality
Unterstützte Sitzungsmodalitäten.
Zulässige Werte:
-
text- Texteingabe/Ausgabe -
audio- Audioeingabe/-ausgabe -
animation- Animationsausgabe -
avatar- Avatar-Videoausgabe
RealtimeAudioTimestampType
Ausgabezeitstempeltypen, die in Audioantwortinhalten unterstützt werden.
Zulässige Werte:
-
word- Zeitstempel pro Wort im Ausgabeaudio
Toolkonfiguration
Wir unterstützen zwei Arten von Tools: Funktionsaufrufe und MCP-Tools, mit denen Sie eine Verbindung mit einem Mcp-Server herstellen können.
RealtimeTool
Tooldefinition für Funktionsaufrufe.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "function" sein. |
| name | Schnur | Funktionsname |
| Beschreibung | Schnur | Funktionsbeschreibung und Nutzungsrichtlinien |
| parameters | Objekt | Funktionsparameter als JSON-Schemaobjekt |
RealtimeToolChoice
Toolauswahlstrategie.
Dies kann folgendes sein:
-
"auto"- Lassen Sie das Modell auswählen -
"none"- Verwenden Sie keine Tools -
"required"- Muss ein Tool verwenden -
{ "type": "function", "name": "function_name" }- Bestimmte Funktion verwenden
MCPTool
MCP-Toolkonfiguration.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "mcp" sein. |
| Serverbeschriftung | Schnur | Erforderlich. Die Bezeichnung des MCP-Servers. |
| server_url | Schnur | Erforderlich. Die Server-URL des MCP-Servers. |
| erlaubte_Werkzeuge | string[] | Wahlfrei. Die Liste der zulässigen Toolnamen. Wenn nicht angegeben, sind alle Tools zulässig. |
| headers | Objekt | Wahlfrei. Zusätzliche Header, die in MCP-Anforderungen eingeschlossen werden sollen. |
| Autorisierung | Schnur | Wahlfrei. Autorisierungstoken für MCP-Anforderungen. |
| Genehmigung erforderlich | Zeichenfolge oder Wörterbuch | Wahlfrei. Wenn dieser Wert auf eine Zeichenfolge festgelegt ist, muss der Wert sein never oder always. Wenn sie auf ein Wörterbuch festgelegt ist, muss es im Format vorliegen {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}. Der Standardwert ist always. Wenn diese Einstellung alwaysfestgelegt ist, erfordert die Toolausführung eine Genehmigung, mcp_approval_request wird an den Client gesendet, wenn das Mcp-Argument abgeschlossen ist, und wird nur ausgeführt, wenn mcp_approval_response empfangen approve=true wird. Bei Festlegung auf neverwird das Tool automatisch ohne Genehmigung ausgeführt. |
RealtimeConversationResponseItem
Dies ist ein Union-Typ, der eine der folgenden Sein kann:
RealtimeConversationUserMessageItem
Benutzernachrichtenelement.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Die eindeutige ID des Elements. |
| type | Schnur | Muss "message" sein. |
| Objekt | Schnur | Muss "conversation.item" sein. |
| role | Schnur | Muss "user" sein. |
| Inhalt | RealtimeInputTextContentPart | Der Inhalt der Nachricht. |
| status | RealtimeItemStatus | Der Status des Elements. |
RealtimeConversationAssistantMessageItem
Nachrichtenelement des Assistenten.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Die eindeutige ID des Elements. |
| type | Schnur | Muss "message" sein. |
| Objekt | Schnur | Muss "conversation.item" sein. |
| role | Schnur | Muss "assistant" sein. |
| Inhalt | RealtimeOutputTextContentPart[] oder RealtimeOutputAudioContentPart[] | Der Inhalt der Nachricht. |
| status | RealtimeItemStatus | Der Status des Elements. |
RealtimeConversationSystemMessageItem
Systemnachrichtenelement.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Die eindeutige ID des Elements. |
| type | Schnur | Muss "message" sein. |
| Objekt | Schnur | Muss "conversation.item" sein. |
| role | Schnur | Muss "system" sein. |
| Inhalt | RealtimeInputTextContentPart[] | Der Inhalt der Nachricht. |
| status | RealtimeItemStatus | Der Status des Elements. |
RealtimeConversationFunctionCallItem
Anforderungselement für Funktionsaufrufe.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Die eindeutige ID des Elements. |
| type | Schnur | Muss "function_call" sein. |
| Objekt | Schnur | Muss "conversation.item" sein. |
| name | Schnur | Der Name der aufzurufenden Funktion. |
| Argumente | Schnur | Die Argumente für den Funktionsaufruf als JSON-Zeichenfolge. |
| call_id | Schnur | Die eindeutige ID des Funktionsaufrufs. |
| status | RealtimeItemStatus | Der Status des Elements. |
RealtimeConversationFunctionCallOutputItem
Antwortelement für Funktionsaufrufe.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Die eindeutige ID des Elements. |
| type | Schnur | Muss "function_call_output" sein. |
| Objekt | Schnur | Muss "conversation.item" sein. |
| name | Schnur | Der Name der Funktion, die aufgerufen wurde. |
| output | Schnur | Die Ausgabe des Funktionsaufrufs. |
| call_id | Schnur | Die eindeutige ID des Funktionsaufrufs. |
| status | RealtimeItemStatus | Der Status des Elements. |
RealtimeConversationMCPListToolsItem
Antwortelement der MCP-Listentools.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Die eindeutige ID des Elements. |
| type | Schnur | Muss "mcp_list_tools" sein. |
| Serverbeschriftung | Schnur | Die Bezeichnung des MCP-Servers. |
RealtimeConversationMCPCallItem
MCP-Anrufantwortelement.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Die eindeutige ID des Elements. |
| type | Schnur | Muss "mcp_call" sein. |
| Serverbeschriftung | Schnur | Die Bezeichnung des MCP-Servers. |
| name | Schnur | Der Name des tools, das aufgerufen werden soll. |
| approval_request_id | Schnur | Die Id der Genehmigungsanforderung für den MCP-Aufruf. |
| Argumente | Schnur | Die Argumente für den MCP-Aufruf. |
| output | Schnur | Die Ausgabe des MCP-Aufrufs. |
| Fehler | Objekt | Die Fehlerdetails, wenn der MCP-Aufruf fehlgeschlagen ist. |
RealtimeConversationMCPApprovalRequestItem
MCP-Genehmigungsanforderungselement.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Die eindeutige ID des Elements. |
| type | Schnur | Muss "mcp_approval_request" sein. |
| Serverbeschriftung | Schnur | Die Bezeichnung des MCP-Servers. |
| name | Schnur | Der Name des tools, das aufgerufen werden soll. |
| Argumente | Schnur | Die Argumente für den MCP-Aufruf. |
RealtimeItemStatus
Status von Unterhaltungselementen.
Zulässige Werte:
-
in_progress- Wird zurzeit verarbeitet -
completed- Erfolgreich abgeschlossen -
incomplete- Unvollständig (unterbrochen oder fehlgeschlagen)
RealtimeContentPart
Inhaltsteil innerhalb einer Nachricht.
RealtimeInputTextContentPart
Textinhaltsteil.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "input_text" sein. |
| Text | Schnur | Der Textinhalt |
RealtimeOutputTextContentPart
Textinhaltsteil.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "text" sein. |
| Text | Schnur | Der Textinhalt |
RealtimeInputAudioContentPart
Audioinhaltsteil.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "input_audio" sein. |
| audio | Schnur | Wahlfrei. Base64-codierte Audiodaten |
| transcript | Schnur | Wahlfrei. Audiotranskript |
RealtimeOutputAudioContentPart
Audioinhaltsteil.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Muss "audio" sein. |
| audio | Schnur | Base64-codierte Audiodaten |
| transcript | Schnur | Wahlfrei. Audiotranskript |
Antwortobjekte
RealtimeResponse
Response-Objekt, das eine Modell-Ableitungsantwort darstellt.
| Feld | Typ | Description |
|---|---|---|
| id | Schnur | Wahlfrei. Antwort-ID |
| Objekt | Schnur | Wahlfrei. Immer "realtime.response" |
| status | RealtimeResponseStatus | Wahlfrei. Antwortstatus |
| status_details | RealtimeResponseStatusDetails | Wahlfrei. Details zum Status |
| output | RealtimeConversationResponseItem[] | Wahlfrei. Ausgabeelemente |
| usage | RealtimeUsage | Wahlfrei. Tokenverwendungsstatistiken |
| conversation_id | Schnur | Wahlfrei. Zugeordnete Unterhaltungs-ID |
| VoIP | RealtimeVoice | Wahlfrei. VoIP, die für die Antwort verwendet wird |
| modalities | string[] | Wahlfrei. Verwendete Modalitäten |
| output_audio_format | RealtimeOutputAudioFormat | Wahlfrei. Verwendetes Audioformat |
| Temperatur | number | Wahlfrei. Verwendete Temperatur |
| max_response_output_tokens | ganze Zahl oder "inf" | Wahlfrei. Max. verwendete Token |
RealtimeResponseStatus
Antwortstatuswerte.
Zulässige Werte:
-
in_progress- Die Antwort wird generiert. -
completed- Antwort erfolgreich abgeschlossen -
cancelled- Antwort wurde abgebrochen -
incomplete- Antwort unvollständig (unterbrochen) -
failed– Fehler bei der Antwort
RealtimeUsage
Tokenverwendungsstatistiken.
| Feld | Typ | Description |
|---|---|---|
| Gesamtanzahl Tokens | Integer | Verwendete Gesamttoken |
| input_tokens | Integer | Verwendete Eingabetoken |
| output_tokens | Integer | Generierte Ausgabetoken |
| input_token_details | TokenDetails | Aufschlüsselung von Eingabetoken |
| output_token_details | TokenDetails | Aufschlüsselung der Ausgabetoken |
TokenDetails
Detaillierte Aufschlüsselung der Tokenverwendung.
| Feld | Typ | Description |
|---|---|---|
| cached_tokens | Integer | Wahlfrei. Zwischengespeicherte Token verwendet |
| text_tokens | Integer | Wahlfrei. Verwendete Texttoken |
| audio_tokens | Integer | Wahlfrei. Verwendete Audiotoken |
Fehlerbehandlung
RealtimeErrorDetails
Fehlerinformationsobjekt.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Fehlertyp (z. B. "invalid_request_error", ) "server_error" |
| Code | Schnur | Wahlfrei. Spezifischer Fehlercode |
| message | Schnur | Beschreibung für lesbare Fehler |
| param | Schnur | Wahlfrei. Parameter im Zusammenhang mit dem Fehler |
| event_id | Schnur | Wahlfrei. ID des Clientereignisses, das den Fehler verursacht hat |
RealtimeConversationRequestItem
Sie verwenden das RealtimeConversationRequestItem Objekt, um ein neues Element in der Unterhaltung über das ereignis conversation.item.create zu erstellen.
Dies ist ein Union-Typ, der eine der folgenden Sein kann:
RealtimeSystemMessageItem
Ein Systemnachrichtenelement.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Elements Zulässige Werte: message |
| role | Schnur | Die Rolle der Nachricht. Zulässige Werte: system |
| Inhalt | Array von RealtimeInputTextContentPart | Der Inhalt der Nachricht. |
| id | Schnur | Die eindeutige ID des Elements. Der Client kann die ID angeben, um den serverseitigen Kontext zu verwalten. Wenn der Client keine ID bereitstellt, generiert der Server eine. |
RealtimeUserMessageItem
Ein Benutzernachrichtenelement.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Elements Zulässige Werte: message |
| role | Schnur | Die Rolle der Nachricht. Zulässige Werte: user |
| Inhalt | Array von RealtimeInputTextContentPart oder RealtimeInputAudioContentPart | Der Inhalt der Nachricht. |
| id | Schnur | Die eindeutige ID des Elements. Der Client kann die ID angeben, um den serverseitigen Kontext zu verwalten. Wenn der Client keine ID bereitstellt, generiert der Server eine. |
RealtimeAssistantMessageItem
Ein Nachrichtenelement des Assistenten.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Elements Zulässige Werte: message |
| role | Schnur | Die Rolle der Nachricht. Zulässige Werte: assistant |
| Inhalt | Array von RealtimeOutputTextContentPart | Der Inhalt der Nachricht. |
RealtimeFunctionCallItem
Ein Funktionsaufrufelement.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Elements Zulässige Werte: function_call |
| name | Schnur | Der Name der aufzurufenden Funktion. |
| Argumente | Schnur | Die Argumente des Funktionsaufrufs als JSON-Zeichenfolge. |
| call_id | Schnur | Die ID des Funktionsaufrufelements. |
| id | Schnur | Die eindeutige ID des Elements. Der Client kann die ID angeben, um den serverseitigen Kontext zu verwalten. Wenn der Client keine ID bereitstellt, generiert der Server eine. |
RealtimeFunctionCallOutputItem
Ein Funktionsaufrufausgabeelement.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Elements Zulässige Werte: function_call_output |
| call_id | Schnur | Die ID des Funktionsaufrufelements. |
| output | Schnur | Die Ausgabe des Funktionsaufrufs, dies ist eine Freiformzeichenfolge mit dem Funktionsergebnis, könnte auch leer sein. |
| id | Schnur | Die eindeutige ID des Elements. Wenn der Client keine ID bereitstellt, generiert der Server eine. |
RealtimeMCPApprovalResponseItem
Ein MCP-Genehmigungsantwortelement.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Elements Zulässige Werte: mcp_approval_response |
| billigen | boolean | Gibt an, ob die MCP-Anforderung genehmigt wurde. |
| approval_request_id | Schnur | Die ID der MCP-Genehmigungsanforderung. |
RealtimeFunctionTool
Die Definition eines Funktionstools, wie es vom Echtzeitendpunkt verwendet wird.
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Tools. Zulässige Werte: function |
| name | Schnur | Der Name der Funktion. |
| Beschreibung | Schnur | Die Beschreibung der Funktion, einschließlich Verwendungsrichtlinien. Beispiel: "Verwenden Sie diese Funktion, um die aktuelle Uhrzeit abzurufen.". |
| parameters | Objekt | Die Parameter der Funktion in Form eines JSON-Objekts. |
RealtimeItemStatus
Zulässige Werte:
in_progresscompletedincomplete
RealtimeResponseAudioContentPart
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Inhaltsteils Zulässige Werte: audio |
| transcript | Schnur | Die Transkription des Audiosignals. Diese Eigenschaft kann null sein. |
RealtimeResponseFunctionCallItem
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Elements Zulässige Werte: function_call |
| name | Schnur | Der Name des Funktionsaufrufelements. |
| call_id | Schnur | Die ID des Funktionsaufrufelements. |
| Argumente | Schnur | Die Argumente des Funktionsaufrufelements. |
| status | RealtimeItemStatus | Der Status des Elements. |
RealtimeResponseFunctionCallOutputItem
| Feld | Typ | Description |
|---|---|---|
| type | Schnur | Der Typ des Elements Zulässige Werte: function_call_output |
| call_id | Schnur | Die ID des Funktionsaufrufelements. |
| output | Schnur | Die Ausgabe des Funktionsaufrufelements. |
RealtimeResponseOptions
| Feld | Typ | Description |
|---|---|---|
| modalities | Array | Die Modalitäten, die die Sitzung unterstützt. Zulässige Werte: text, audioBeispielsweise ist die Standardeinstellung, "modalities": ["text", "audio"] die sowohl Text- als auch Audiomodalitäten aktiviert. Legen Sie fest "modalities": ["text"], um nur Text zu aktivieren. Sie können nicht nur Audio aktivieren. |
| instructions | Schnur | Die Anweisungen (die Systemmeldung), um die Antworten des Modells zu leiten. |
| VoIP | RealtimeVoice | Die Für die Modellantwort für die Sitzung verwendete Stimme. Sobald die Stimme in der Sitzung für die Audioantwort des Modells verwendet wird, kann sie nicht mehr geändert werden. |
| Werkzeuge | Array von RealtimeTool | Die Tools, die für das Modell für die Sitzung verfügbar sind. |
| tool_choice | RealtimeToolChoice | Die Toolauswahl für die Sitzung. |
| Temperatur | number | Die Samplingtemperatur für das Modell. Die zulässigen Temperaturwerte sind auf [0,6, 1,2] beschränkt. Der Standardwert ist 0,8. |
| max_response_output_tokens | ganze Zahl oder "inf" | Die maximale Anzahl von Ausgabetoken pro Assistentenantwort, einschließlich der Toolaufrufe. Geben Sie eine ganze Zahl zwischen 1 und 4096 an, um die Ausgabetoken einzuschränken. Legen Sie andernfalls den Wert auf "inf" fest, um die maximale Anzahl von Token zuzulassen. Legen Sie beispielsweise fest, "max_response_output_tokens": 1000um die Ausgabetoken auf 1000 zu beschränken. Legen Sie fest "max_response_output_tokens": "inf", um die maximale Anzahl von Token zuzulassen.Wird standardmäßig auf "inf" festgelegt. |
| Gespräch | Schnur | Steuert, zu welcher Unterhaltung die Antwort hinzugefügt wird. Unterstützte Werte sind auto und none.Der auto Wert (oder nicht das Festlegen dieser Eigenschaft) stellt sicher, dass der Inhalt der Antwort zur Standardunterhaltung der Sitzung hinzugefügt wird.Legen Sie diese Eigenschaft fest, um eine Out-of-Band-Antwort zu none erstellen, bei der elemente nicht zur Standardunterhaltung hinzugefügt werden. Der Standardwert lautet "auto". |
| metadata | Karte | Bis zu 16 Schlüssel-Wert-Paare, die an ein Objekt angefügt werden können. Dies kann hilfreich sein, um zusätzliche Informationen zum Objekt in einem strukturierten Format zu speichern. Schlüssel dürfen maximal 64 Zeichen und Werte dürfen höchstens 512 Zeichen lang sein. Beispiel: metadata: { topic: "classification" } |
RealtimeResponseSession
Das RealtimeResponseSession Objekt stellt eine Sitzung in der Realtime-API dar. Es wird in einigen der Serverereignisse verwendet, z. B.:
| Feld | Typ | Description |
|---|---|---|
| Objekt | Schnur | Das Sitzungsobjekt. Zulässige Werte: realtime.session |
| id | Schnur | Die eindeutige ID der Sitzung. |
| Modell | Schnur | Das modell, das für die Sitzung verwendet wird. |
| modalities | Array | Die Modalitäten, die die Sitzung unterstützt. Zulässige Werte: text, audioBeispielsweise ist die Standardeinstellung, "modalities": ["text", "audio"] die sowohl Text- als auch Audiomodalitäten aktiviert. Legen Sie fest "modalities": ["text"], um nur Text zu aktivieren. Sie können nicht nur Audio aktivieren. |
| instructions | Schnur | Die Anweisungen (die Systemmeldung), um die Text- und Audioantworten des Modells zu leiten. Im Folgenden finden Sie einige Beispielanweisungen, mit denen Sie den Inhalt und das Format von Text- und Audioantworten unterstützen: "instructions": "be succinct""instructions": "act friendly""instructions": "here are examples of good responses"Im Folgenden finden Sie einige Beispielanweisungen zur Anleitung des Audioverhaltens: "instructions": "talk quickly""instructions": "inject emotion into your voice""instructions": "laugh frequently"Obwohl das Modell diese Anweisungen möglicherweise nicht immer befolgt, bieten sie Anleitungen zum gewünschten Verhalten. |
| VoIP | RealtimeVoice | Die Für die Modellantwort für die Sitzung verwendete Stimme. Sobald die Stimme in der Sitzung für die Audioantwort des Modells verwendet wird, kann sie nicht mehr geändert werden. |
| input_audio_sampling_rate | Integer | Die Samplingrate für die Eingabeaudio. |
| input_audio_format | RealtimeAudioFormat | Das Format für die Eingabeaudio. |
| output_audio_format | RealtimeAudioFormat | Das Format für die Ausgabeaudio. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Die Einstellungen für die Audioeingabetranskription. Diese Eigenschaft kann null sein. |
| turn_detection | RealtimeTurnDetection | Die Aktivierungseinstellungen für die Sitzung. Diese Eigenschaft kann null sein. |
| Werkzeuge | Array von RealtimeTool | Die Tools, die für das Modell für die Sitzung verfügbar sind. |
| tool_choice | RealtimeToolChoice | Die Toolauswahl für die Sitzung. |
| Temperatur | number | Die Samplingtemperatur für das Modell. Die zulässigen Temperaturwerte sind auf [0,6, 1,2] beschränkt. Der Standardwert ist 0,8. |
| max_response_output_tokens | ganze Zahl oder "inf" | Die maximale Anzahl von Ausgabetoken pro Assistentenantwort, einschließlich der Toolaufrufe. Geben Sie eine ganze Zahl zwischen 1 und 4096 an, um die Ausgabetoken einzuschränken. Legen Sie andernfalls den Wert auf "inf" fest, um die maximale Anzahl von Token zuzulassen. Legen Sie beispielsweise fest, "max_response_output_tokens": 1000um die Ausgabetoken auf 1000 zu beschränken. Legen Sie fest "max_response_output_tokens": "inf", um die maximale Anzahl von Token zuzulassen. |
RealtimeResponseStatusDetails
| Feld | Typ | Description |
|---|---|---|
| type | RealtimeResponseStatus | Der Status der Antwort. |
RealtimeRateLimitsItem
| Feld | Typ | Description |
|---|---|---|
| name | Schnur | Der Name der Eigenschaft "Rate Limit", zu dem dieses Element Informationen enthält. |
| Grenze | Integer | Der maximale konfigurierte Grenzwert für diese Zinsgrenzwerteigenschaft. |
| remaining | Integer | Das verbleibende Kontingent, das gegen den konfigurierten Grenzwert für diese Zinsgrenzwerteigenschaft verfügbar ist. |
| reset_seconds | number | Die verbleibende Zeit in Sekunden, bis diese Ratelimit-Eigenschaft zurückgesetzt wird. |
Verwandte Ressourcen
- Testen Sie den Voice Live-Schnellstart
- Probieren Sie den Voice-Live-Agents-Quickstart aus.
- Weitere Informationen zur Verwendung der VoIP-Live-API