Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs API głosu na żywo zapewnia komunikację dwukierunkową w czasie rzeczywistym dla aplikacji obsługujących głos przy użyciu połączeń Protokołu WebSocket. Ten interfejs API obsługuje zaawansowane funkcje, w tym rozpoznawanie mowy, syntezę tekstu na mowę, przesyłanie strumieniowe awatarów, dane animacji i kompleksowe możliwości przetwarzania dźwięku.
Interfejs API używa zdarzeń sformatowanych w formacie JSON wysyłanych za pośrednictwem połączeń Protokołu WebSocket do zarządzania konwersacjami, strumieniami audio, interakcjami awatara i odpowiedziami w czasie rzeczywistym. Zdarzenia są podzielone na kategorie zdarzeń klienta (wysyłanych z klienta do serwera) i zdarzeń serwera (wysyłanych z serwera do klienta).
Najważniejsze funkcje
- Przetwarzanie audio w czasie rzeczywistym: obsługa wielu formatów audio, w tym PCM16 z różnymi szybkościami próbkowania i koderami G.711
- Zaawansowane opcje głosowe: głosy OpenAI, niestandardowe głosy platformy Azure, standardowe głosy platformy Azure i osobiste głosy platformy Azure
- Integracja awatara: przesyłanie strumieniowe awatara opartego na protokole WebRTC za pomocą wideo, animacji i blendshapes
- Wykrywanie inteligentnego turnu: wiele opcji vaD, w tym semantyczne wykrywanie vaD platformy Azure i wykrywanie po stronie serwera
- Ulepszenia dźwięku: wbudowana redukcja szumu i anulowanie echa
- Wywoływanie funkcji: integracja narzędzi w celu uzyskania rozszerzonych możliwości konwersacyjnych
- Elastyczne zarządzanie sesjami: konfigurowalne modalności, instrukcje i parametry odpowiedzi
Zdarzenia klienta
Interfejs API voice live obsługuje następujące zdarzenia klienta, które można wysyłać z klienta do serwera:
| Event | Description |
|---|---|
| session.update | Aktualizowanie konfiguracji sesji, w tym połączeń głosowych, modalności, wykrywania obrotu i innych ustawień |
| session.avatar.connect | Nawiązywanie połączenia awatara przez zapewnienie protokołu SDP klienta na potrzeby negocjacji webRTC |
| input_audio_buffer.append | Dołączanie bajtów audio do wejściowego buforu audio |
| input_audio_buffer.commit | Zatwierdzanie wejściowego buforu audio na potrzeby przetwarzania |
| input_audio_buffer.clear | Czyszczenie wejściowego buforu audio |
| conversation.item.create | Dodawanie nowego elementu do kontekstu konwersacji |
| conversation.item.retrieve | Pobieranie określonego elementu z konwersacji |
| conversation.item.truncate | Obcięcie komunikatu dźwiękowego asystenta |
| conversation.item.delete | Usuwanie elementu z konwersacji |
| response.create | Poinstruuj serwer, aby utworzył odpowiedź za pomocą wnioskowania modelu |
| response.cancel | Anulowanie odpowiedzi w toku |
| mcp_approval_response | Wysyłanie zatwierdzenia lub odrzucenia dla wywołania narzędzia MCP, które wymaga zatwierdzenia |
session.update
Zaktualizuj konfigurację sesji. To zdarzenie można wysłać w dowolnym momencie, aby zmodyfikować ustawienia, takie jak głos, modalność, wykrywanie kolei, narzędzia i inne parametry sesji. Należy pamiętać, że po zainicjowaniu sesji przy użyciu określonego modelu nie można go zmienić na inny model.
Struktura zdarzeń
{
"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"
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "session.update" |
| sesja | RealtimeRequestSession | Obiekt konfiguracji sesji z polami do aktualizacji |
Przykład z usługą Azure Custom Voice
{
"type": "session.update",
"session": {
"voice": {
"type": "azure-custom",
"name": "my-custom-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"temperature": 0.7,
"style": "cheerful"
},
"input_audio_noise_reduction": {
"type": "azure_deep_noise_suppression"
},
"avatar": {
"character": "lisa",
"customized": false,
"video": {
"resolution": {
"width": 1920,
"height": 1080
},
"bitrate": 2000000
}
}
}
}
session.avatar.connect
Ustanów połączenie awatara, podając ofertę protokołu SDP (Session Description Protocol) klienta na potrzeby negocjacji multimediów WebRTC. To zdarzenie jest wymagane w przypadku korzystania z funkcji awatara.
Struktura zdarzeń
{
"type": "session.avatar.connect",
"client_sdp": "<client_sdp>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "session.avatar.connect" |
| client_sdp | ciąg | Oferta SDP klienta dla ustanowienia połączenia WebRTC |
input_audio_buffer.append
Dołącz bajty audio do wejściowego buforu audio.
Struktura zdarzeń
{
"type": "input_audio_buffer.append",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "input_audio_buffer.append" |
| audio | ciąg | Dane audio zakodowane w formacie Base64 |
input_audio_buffer.commit
Zatwierdź wejściowy bufor audio na potrzeby przetwarzania.
Struktura zdarzeń
{
"type": "input_audio_buffer.commit"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "input_audio_buffer.commit" |
input_audio_buffer.clear
Wyczyść wejściowy bufor audio.
Struktura zdarzeń
{
"type": "input_audio_buffer.clear"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "input_audio_buffer.clear" |
conversation.item.create
Dodaj nowy element do kontekstu konwersacji. Może to obejmować komunikaty, wywołania funkcji i odpowiedzi wywołania funkcji. Elementy można wstawić na określonych pozycjach w historii konwersacji.
Struktura zdarzeń
{
"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?"
}
]
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.create" |
| previous_item_id | ciąg | Opcjonalny. Identyfikator elementu, po którym ma być wstawiony ten element. Jeśli nie zostanie podana, dołącza do końca |
| element | RealtimeConversationRequestItem | Element do dodania do konwersacji |
Przykład z zawartością audio
{
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello there"
}
]
}
}
Przykład z wywołaniem funkcji
{
"type": "conversation.item.create",
"item": {
"type": "function_call",
"name": "get_weather",
"call_id": "call_123",
"arguments": "{\"location\": \"San Francisco\", \"unit\": \"celsius\"}"
}
}
Przykład z wywołaniem MCP
{
"type": "conversation.item.create",
"item": {
"type": "mcp_call",
"approval_request_id": null,
"arguments": "",
"server_label": "deepwiki",
"name": "ask_question",
"output": null,
"error": null
}
}
conversation.item.retrieve
Pobierz określony element z historii konwersacji. Jest to przydatne do sprawdzania przetworzonego dźwięku po anulowaniu szumu i vaD.
Struktura zdarzeń
{
"type": "conversation.item.retrieve",
"item_id": "item_ABC123"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.retrieve" |
| item_id | ciąg | Identyfikator elementu do pobrania |
conversation.item.truncate
Obcięcie zawartości audio komunikatu asystenta. Jest to przydatne w przypadku zatrzymywania odtwarzania w określonym punkcie i synchronizowania zrozumienia serwera ze stanem klienta.
Struktura zdarzeń
{
"type": "conversation.item.truncate",
"item_id": "item_ABC123",
"content_index": 0,
"audio_end_ms": 5000
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.truncate" |
| item_id | ciąg | Identyfikator elementu komunikatu asystenta do obcinania |
| content_index | liczba całkowita | Indeks części zawartości do obcinania |
| audio_end_ms | liczba całkowita | Czas trwania, do którego należy obcinać dźwięk w milisekundach |
conversation.item.delete
Usuń element z historii konwersacji.
Struktura zdarzeń
{
"type": "conversation.item.delete",
"item_id": "item_ABC123"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.delete" |
| item_id | ciąg | Identyfikator elementu do usunięcia |
response.create
Poinstruuj serwer, aby utworzył odpowiedź za pomocą wnioskowania modelu. To zdarzenie może określać konfigurację specyficzną dla odpowiedzi, która zastępuje wartości domyślne sesji.
Struktura zdarzeń
{
"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
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.create" |
| response | RealtimeResponseOptions | Opcjonalna konfiguracja odpowiedzi, która zastępuje wartości domyślne sesji |
Przykład z wyborem narzędzi
{
"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
}
}
Przykład z animacją
{
"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
Anuluj odpowiedź w toku. Spowoduje to natychmiastowe zatrzymanie generowania odpowiedzi i powiązanych danych wyjściowych dźwięku.
Struktura zdarzeń
{
"type": "response.cancel"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.cancel" |
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.retrieve. |
| item_id | ciąg | Identyfikator elementu do pobrania. |
| event_id | ciąg | Identyfikator zdarzenia. |
RealtimeClientEventConversationItemTruncate
Zdarzenie klienta conversation.item.truncate służy do obcinania dźwięku poprzedniego asystenta. Serwer generuje dźwięk szybciej niż w czasie rzeczywistym, więc to zdarzenie jest przydatne, gdy użytkownik przerywa obcięcie dźwięku, który został wysłany do klienta, ale nie został jeszcze odtwarzany. Informacje o dźwięku serwera z odtwarzaniem klienta są synchronizowane.
Obcięcie dźwięku usuwa transkrypcję tekstu po stronie serwera, aby upewnić się, że nie ma tekstu w kontekście, o którego użytkownik nie wie.
Jeśli zdarzenie klienta zakończy się pomyślnie, serwer odpowie zdarzeniem conversation.item.truncated .
Struktura zdarzeń
{
"type": "conversation.item.truncate",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.truncate. |
| item_id | ciąg | Identyfikator elementu komunikatu asystenta do obcinania. Można obcinać tylko elementy komunikatów asystenta. |
| content_index | liczba całkowita | Indeks części zawartości do obcinania. Ustaw tę właściwość na wartość "0". |
| audio_end_ms | liczba całkowita | Czas trwania włącznie, do którego dźwięk jest obcięty, w milisekundach. Jeśli audio_end_ms jest większy niż rzeczywisty czas trwania dźwięku, serwer odpowiada z powodu błędu. |
RealtimeClientEventInputAudioBufferAppend
Zdarzenie klienta input_audio_buffer.append służy do dołączania bajtów audio do wejściowego buforu audio. Bufor audio jest magazynem tymczasowym, do którego można zapisywać dane, a następnie zatwierdzać.
W trybie vaD serwera (wykrywanie aktywności głosowej) bufor audio jest używany do wykrywania mowy, a serwer decyduje, kiedy zatwierdzić. Gdy funkcja VAD serwera jest wyłączona, klient może wybrać ilość dźwięku do umieszczenia w każdym zdarzeń maksymalnie 15 MiB. Na przykład przesyłanie strumieniowe mniejszych fragmentów z klienta może umożliwić dynamiczne działanie vaD.
W przeciwieństwie do większości innych zdarzeń klienta serwer nie wysyła odpowiedzi potwierdzenia na zdarzenie klienta input_audio_buffer.append .
Struktura zdarzeń
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.append. |
| audio | ciąg | Bajty audio zakodowane w formacie Base64. Ta wartość musi być w formacie określonym przez input_audio_format pole w konfiguracji sesji. |
RealtimeClientEventInputAudioBufferClear
Zdarzenie klienta input_audio_buffer.clear służy do czyszczenia bajtów audio w buforze.
Serwer odpowiada za pomocą input_audio_buffer.cleared zdarzenia.
Struktura zdarzeń
{
"type": "input_audio_buffer.clear"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.clear. |
RealtimeClientEventInputAudioBufferCommit
Zdarzenie klienta input_audio_buffer.commit służy do zatwierdzania buforu audio wejściowego użytkownika, który tworzy nowy element wiadomości użytkownika w konwersacji. Dźwięk jest transkrypcji, jeśli input_audio_transcription jest skonfigurowany dla sesji.
W trybie vaD serwera klient nie musi wysyłać tego zdarzenia, serwer zatwierdza bufor audio automatycznie. Bez funkcji VAD serwera klient musi zatwierdzić bufor audio, aby utworzyć element komunikatu użytkownika. To zdarzenie klienta generuje błąd, jeśli wejściowy bufor audio jest pusty.
Zatwierdzenie wejściowego buforu audio nie powoduje utworzenia odpowiedzi na podstawie modelu.
Serwer odpowiada za pomocą input_audio_buffer.committed zdarzenia.
Struktura zdarzeń
{
"type": "input_audio_buffer.commit"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.commit. |
RealtimeClientEventResponseCancel
Zdarzenie klienta response.cancel służy do anulowania odpowiedzi w toku.
Serwer odpowie zdarzeniem response.done o stanie response.status=cancelled.
Struktura zdarzeń
{
"type": "response.cancel"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.cancel. |
RealtimeClientEventResponseCreate
Zdarzenie klienta response.create służy do poinstruowania serwera o utworzeniu odpowiedzi za pośrednictwem wnioskowania modelu. Po skonfigurowaniu sesji w trybie vaD serwera serwer automatycznie tworzy odpowiedzi.
Odpowiedź zawiera co najmniej jeden itemelement i może mieć dwa, w tym przypadku drugie jest wywołaniem funkcji. Te elementy są dołączane do historii konwersacji.
Serwer odpowiada za pomocą response.created zdarzenia, co najmniej jednego elementu i zdarzeń zawartości (takich jak conversation.item.created i response.content_part.added), a na koniec response.done zdarzenie wskazujące, że odpowiedź została ukończona.
Struktura zdarzeń
{
"type": "response.create"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.create. |
| response | RealtimeResponseOptions | Opcje odpowiedzi. |
RealtimeClientEventSessionUpdate
Zdarzenie klienta session.update służy do aktualizowania domyślnej konfiguracji sesji. Klient może wysłać to zdarzenie w dowolnym momencie, aby zaktualizować konfigurację sesji, a dowolne pole można zaktualizować w dowolnym momencie, z wyjątkiem głosu.
Aktualizowane są tylko bieżące pola. Aby wyczyścić pole (takie jak instructions), przekaż pusty ciąg.
Serwer odpowiada zdarzeniem zawierającym pełną efektywną session.updated konfigurację.
Struktura zdarzeń
{
"type": "session.update"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość session.update. |
| sesja | RealtimeRequestSession | Konfiguracja sesji. |
Zdarzenia serwera
Interfejs API na żywo voice wysyła następujące zdarzenia serwera w celu komunikowania stanu, odpowiedzi i danych do klienta:
| Event | Description |
|---|---|
| błąd | Wskazuje, że wystąpił błąd podczas przetwarzania |
| session.created | Wysłane po pomyślnym ustanowieniu nowej sesji |
| session.updated | Wysłane po zaktualizowaniu konfiguracji sesji |
| session.avatar.connecting | Wskazuje, że trwa nawiązywanie połączenia awatara WebRTC |
| conversation.item.created | Wysłane po dodaniu nowego elementu do konwersacji |
| conversation.item.retrieved | Odpowiedź na żądanie conversation.item.retrieve |
| conversation.item.obcięty | Potwierdza obcięcie elementu |
| conversation.item.deleted | Potwierdza usunięcie elementu |
| conversation.item.input_audio_transcription.completed | Transkrypcja dźwięku wejściowego została ukończona |
| conversation.item.input_audio_transcription.delta | Transkrypcja dźwięku wejściowego przesyłania strumieniowego |
| conversation.item.input_audio_transcription.failed | Transkrypcja dźwięku wejściowego nie powiodła się |
| input_audio_buffer.committed | Bufor audio wejściowego został zatwierdzony do przetwarzania |
| input_audio_buffer.wyczyszczone | Bufor audio wejściowego został wyczyszczone |
| input_audio_buffer.speech_started | Mowa wykryta w buforze dźwięku wejściowego (VAD) |
| input_audio_buffer.speech_stopped | Mowa zakończona w wejściowym buforze audio (VAD) |
| response.created | Rozpoczęto generowanie nowej odpowiedzi |
| response.done | Generowanie odpowiedzi zostało ukończone |
| response.output_item.added | Nowy element wyjściowy dodany do odpowiedzi |
| response.output_item.done | Element wyjściowy został ukończony |
| response.content_part.added | Nowa część zawartości dodana do elementu wyjściowego |
| response.content_part.done | Część zawartości została ukończona |
| response.text.delta | Przesyłanie strumieniowe zawartości tekstowej z modelu |
| response.text.done | Zawartość tekstowa jest ukończona |
| response.audio_transcript.delta | Przesyłanie strumieniowe transkrypcji audio |
| response.audio_transcript.done | Transkrypcja audio została ukończona |
| response.audio.delta | Przesyłanie strumieniowe zawartości audio z modelu |
| response.audio.done | Zawartość audio została ukończona |
| response.animation_blendshapes.delta | Dane przesyłania strumieniowego animacji blendshapes |
| response.animation_blendshapes.done | Dane z animacji blendshapes są ukończone |
| response.audio_timestamp.delta | Informacje o znaczniku czasu przesyłania strumieniowego audio |
| response.audio_timestamp.done | Informacje o sygnaturze czasowej audio są kompletne |
| response.animation_viseme.delta | Przesyłanie strumieniowe animacji widocznych danych |
| response.animation_viseme.done | Dane wizualizacji animacji są ukończone |
| response.function_call_arguments.delta | Argumenty wywołań funkcji przesyłania strumieniowego |
| response.function_call_arguments.done | Argumenty wywołania funkcji są kompletne |
| mcp_list_tools.in_progress | Lista narzędzi MCP jest w toku |
| mcp_list_tools.completed | Lista narzędzi MCP została ukończona |
| mcp_list_tools.failed | Lista narzędzi MCP nie powiodła się |
| response.mcp_call_arguments.delta | Przesyłanie strumieniowe argumentów wywołań MCP |
| response.mcp_call_arguments.done | Argumenty wywołań MCP są kompletne |
| response.mcp_call.in_progress | Wywołanie MCP jest w toku |
| response.mcp_call.completed | Połączenie MCP zostało ukończone |
| response.mcp_call.failed | Wywołanie MCP nie powiodło się |
session.created
Wysłane po pomyślnym ustanowieniu nowej sesji. Jest to pierwsze zdarzenie odebrane po nawiązaniu połączenia z interfejsem API.
Struktura zdarzeń
{
"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"
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "session.created" |
| sesja | RealtimeResponseSession | Utworzony obiekt sesji |
session.updated
Wysłane, gdy konfiguracja sesji została pomyślnie zaktualizowana w odpowiedzi na session.update zdarzenie klienta.
Struktura zdarzeń
{
"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
}
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "session.updated" |
| sesja | RealtimeResponseSession | Zaktualizowany obiekt sesji |
session.avatar.connecting
Wskazuje, że trwa nawiązywanie połączenia awatara WebRTC. To zdarzenie jest wysyłane w odpowiedzi na session.avatar.connect zdarzenie klienta.
Struktura zdarzeń
{
"type": "session.avatar.connecting",
"server_sdp": "<server_sdp>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "session.avatar.connecting" |
conversation.item.created
Wysłane po dodaniu nowego elementu do konwersacji za pośrednictwem zdarzenia klienta conversation.item.create lub automatycznego generowania odpowiedzi.
Struktura zdarzeń
{
"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?"
}
]
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.created" |
| previous_item_id | ciąg | Identyfikator elementu, po którym ten element został wstawiony |
| element | RealtimeConversationResponseItem | Utworzony element konwersacji |
Przykład z elementem audio
{
"type": "conversation.item.created",
"item": {
"id": "item_GHI789",
"type": "message",
"status": "completed",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": null,
"transcript": "What's the weather like today?"
}
]
}
}
conversation.item.retrieved
Wysłane w odpowiedzi na conversation.item.retrieve zdarzenie klienta, podając żądany element konwersacji.
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.created" |
| element | RealtimeConversationResponseItem | Utworzony element konwersacji |
conversation.item.obcięty
Zdarzenie serwera conversation.item.truncated jest zwracane, gdy klient obcina wcześniej asystenta elementu komunikatu audio z zdarzeniem conversation.item.truncate . To zdarzenie służy do synchronizowania zrozumienia dźwięku serwera z odtwarzaniem klienta.
To zdarzenie obcina dźwięk i usuwa transkrypcję tekstu po stronie serwera, aby upewnić się, że nie ma tekstu w kontekście, o którego użytkownik nie wie.
Struktura zdarzeń
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.truncated. |
| item_id | ciąg | Identyfikator elementu komunikatu asystenta, który został obcięty. |
| content_index | liczba całkowita | Indeks części zawartości, która została obcięta. |
| audio_end_ms | liczba całkowita | Czas trwania, do którego dźwięk został obcięty, w milisekundach. |
conversation.item.deleted
Wysłane w odpowiedzi na conversation.item.delete zdarzenie klienta, potwierdzając, że określony element został usunięty z konwersacji.
Struktura zdarzeń
{
"type": "conversation.item.deleted",
"item_id": "item_ABC123"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.deleted" |
| item_id | ciąg | Identyfikator usuniętego elementu |
response.created
Wysłane po rozpoczęciu nowej generacji odpowiedzi. Jest to pierwsze zdarzenie w sekwencji odpowiedzi.
Struktura zdarzeń
{
"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
}
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.created" |
| response | Czas rzeczywistyResponse | Obiekt odpowiedzi, który został utworzony |
response.done
Wysłane po zakończeniu generowania odpowiedzi. To zdarzenie zawiera ostateczną odpowiedź ze wszystkimi elementami wyjściowymi i statystykami użycia.
Struktura zdarzeń
{
"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
}
}
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.done" |
| response | Czas rzeczywistyResponse | Ukończony obiekt odpowiedzi |
response.output_item.added
Wysłane po dodaniu nowego elementu wyjściowego do odpowiedzi podczas generowania.
Struktura zdarzeń
{
"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": []
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.output_item.added" |
| response_id | ciąg | Identyfikator odpowiedzi, do którego należy ten element |
| output_index | liczba całkowita | Indeks elementu w tablicy wyjściowej odpowiedzi |
| element | RealtimeConversationResponseItem | Element wyjściowy, który został dodany |
response.output_item.done
Wysłane po zakończeniu elementu wyjściowego.
Struktura zdarzeń
{
"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."
}
]
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.output_item.done" |
| response_id | ciąg | Identyfikator odpowiedzi, do którego należy ten element |
| output_index | liczba całkowita | Indeks elementu w tablicy wyjściowej odpowiedzi |
| element | RealtimeConversationResponseItem | Ukończony element wyjściowy |
response.content_part.added
Zdarzenie serwera response.content_part.added jest zwracane po dodaniu nowej części zawartości do elementu komunikatu asystenta podczas generowania odpowiedzi.
Struktura zdarzeń
{
"type": "response.content_part.added",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"part": {
"type": "text",
"text": ""
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.content_part.added" |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu, do którego należy ta część zawartości |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks tej części zawartości w elemencie |
| part | RealtimeContentPart | Część zawartości, która została dodana |
response.content_part.done
Zdarzenie serwera response.content_part.done jest zwracane, gdy część zawartości jest wykonywana strumieniowo w elemencie komunikatu asystenta.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"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."
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.content_part.done" |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu, do którego należy ta część zawartości |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks tej części zawartości w elemencie |
| part | RealtimeContentPart | Ukończona część zawartości |
response.text.delta
Przesyłanie strumieniowe zawartości tekstowej z modelu. Wysyłane przyrostowo w miarę generowania tekstu przez model.
Struktura zdarzeń
{
"type": "response.text.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.text.delta" |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
| delta | ciąg | Zawartość tekstu przyrostowego |
response.text.done
Wysłane po zakończeniu generowania zawartości tekstowej.
Struktura zdarzeń
{
"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?"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.text.done" |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
| SMS | ciąg | Pełna zawartość tekstowa |
response.audio.delta
Przesyłanie strumieniowe zawartości audio z modelu. Dźwięk jest dostarczany jako dane zakodowane w formacie base64.
Struktura zdarzeń
{
"type": "response.audio.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.audio.delta" |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
| delta | ciąg | Fragment danych audio zakodowanych w formacie Base64 |
response.audio.done
Wysyłane po zakończeniu generowania zawartości audio.
Struktura zdarzeń
{
"type": "response.audio.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.audio.done" |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
response.audio_transcript.delta
Przesyłanie strumieniowe transkrypcji wygenerowanej zawartości audio.
Struktura zdarzeń
{
"type": "response.audio_transcript.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm doing"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.audio_transcript.delta" |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
| delta | ciąg | Tekst transkrypcji przyrostowej |
response.audio_transcript.done
Wysyłane po zakończeniu generowania transkrypcji audio.
Struktura zdarzeń
{
"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?"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "response.audio_transcript.done" |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
| transkrypcja | ciąg | Pełny tekst transkrypcji |
conversation.item.input_audio_transcription.completed
Zdarzenie serwera conversation.item.input_audio_transcription.completed jest wynikiem transkrypcji audio dla mowy zapisanej w buforze audio.
Transkrypcja rozpoczyna się, gdy wejściowy bufor audio jest zatwierdzany przez klienta lub serwer (w server_vad trybie). Transkrypcja jest uruchamiana asynchronicznie z tworzeniem odpowiedzi, więc to zdarzenie może pojawić się przed zdarzeniami odpowiedzi lub po nim.
Modele interfejsu API czasu rzeczywistego akceptują dźwięk natywnie, a tym samym transkrypcję danych wejściowych to oddzielny proces uruchamiany w oddzielnym modelu rozpoznawania mowy, takim jak whisper-1. W związku z tym transkrypcja może nieco odbiegać od interpretacji modelu i powinna być traktowana jako szorstki przewodnik.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.input_audio_transcription.completed. |
| item_id | ciąg | Identyfikator elementu wiadomości użytkownika zawierającego dźwięk. |
| content_index | liczba całkowita | Indeks części zawartości zawierającej dźwięk. |
| transkrypcja | ciąg | Transkrypcja tekstu. |
conversation.item.input_audio_transcription.delta
Zdarzenie serwera conversation.item.input_audio_transcription.delta jest zwracane po skonfigurowaniu transkrypcji audio wejściowej, a żądanie transkrypcji dla komunikatu użytkownika jest w toku. To zdarzenie zapewnia częściowe wyniki transkrypcji w miarę ich dostępności.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.delta",
"item_id": "<item_id>",
"content_index": 0,
"delta": "<delta>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.input_audio_transcription.delta. |
| item_id | ciąg | Identyfikator elementu komunikatu użytkownika. |
| content_index | liczba całkowita | Indeks części zawartości zawierającej dźwięk. |
| delta | ciąg | Tekst transkrypcji przyrostowej. |
conversation.item.input_audio_transcription.failed
Zdarzenie serwera conversation.item.input_audio_transcription.failed jest zwracane, gdy skonfigurowano transkrypcję dźwięku wejściowego, a żądanie transkrypcji dla komunikatu użytkownika nie powiodło się. To zdarzenie jest oddzielone od innych error zdarzeń, aby klient mógł zidentyfikować powiązany element.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.input_audio_transcription.failed. |
| item_id | ciąg | Identyfikator elementu komunikatu użytkownika. |
| content_index | liczba całkowita | Indeks części zawartości zawierającej dźwięk. |
| błąd | obiekt | Szczegóły błędu transkrypcji. Zobacz właściwości zagnieżdżone w następnej tabeli. |
Właściwości błędu
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ błędu. |
| kod | ciąg | Kod błędu, jeśli istnieje. |
| komunikat | ciąg | Czytelny dla człowieka komunikat o błędzie. |
| param | ciąg | Parametr związany z błędem, jeśli istnieje. |
response.animation_blendshapes.delta
Zdarzenie serwera response.animation_blendshapes.delta jest zwracane, gdy model generuje dane blendshapes animacji w ramach odpowiedzi. To zdarzenie zapewnia przyrostowe dane blendshapes, gdy staną się dostępne.
Struktura zdarzeń
{
"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]
...
]
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.animation_blendshapes.delta. |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
| frame_index | liczba całkowita | Indeks pierwszej ramki w tej partii ramek |
| Ramki | tablica tablicy zmiennoprzecinkowych | Tablica ramek blendshape, każda ramka jest tablicą wartości blendshape |
response.animation_blendshapes.done
Zdarzenie serwera response.animation_blendshapes.done jest zwracane, gdy model zakończył generowanie danych blendshapes animacji w ramach odpowiedzi.
Struktura zdarzeń
{
"type": "response.animation_blendshapes.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.animation_blendshapes.done. |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
response.audio_timestamp.delta
Zdarzenie serwera response.audio_timestamp.delta jest zwracane, gdy model generuje dane sygnatury czasowej audio w ramach odpowiedzi. To zdarzenie zapewnia przyrostowe dane sygnatury czasowej dla wyjściowego wyrównania dźwięku i tekstu, gdy staną się dostępne.
Struktura zdarzeń
{
"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"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.audio_timestamp.delta. |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
| audio_offset_ms | liczba całkowita | Przesunięcie dźwięku w milisekundach od początku dźwięku |
| audio_duration_ms | liczba całkowita | Czas trwania segmentu audio w milisekundach |
| SMS | ciąg | Segment tekstu odpowiadający temu znacznikowi czasu dźwięku |
| timestamp_type | ciąg | Typ znacznika czasu, obecnie obsługiwany jest tylko wyraz |
response.audio_timestamp.done
Wysyłane po zakończeniu generowania znacznika czasu audio.
Struktura zdarzeń
{
"type": "response.audio_timestamp.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.audio_timestamp.done. |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
response.animation_viseme.delta
Zdarzenie serwera response.animation_viseme.delta jest zwracane, gdy model generuje dane animacji w ramach odpowiedzi. To zdarzenie zapewnia przyrostowe dane widoczne w miarę ich dostępności.
Struktura zdarzeń
{
"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
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.animation_viseme.delta. |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
| audio_offset_ms | liczba całkowita | Przesunięcie dźwięku w milisekundach od początku dźwięku |
| viseme_id | liczba całkowita | Identyfikator viseme odpowiadający kształtowi ust dla animacji |
response.animation_viseme.done
Zdarzenie serwera response.animation_viseme.done jest zwracane po zakończeniu generowania danych animacji w ramach odpowiedzi.
Struktura zdarzeń
{
"type": "response.animation_viseme.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.animation_viseme.done. |
| response_id | ciąg | Identyfikator odpowiedzi |
| item_id | ciąg | Identyfikator elementu |
| output_index | liczba całkowita | Indeks elementu w odpowiedzi |
| content_index | liczba całkowita | Indeks części zawartości |
Zdarzenie serwera response.animation_viseme.delta jest zwracane, gdy model generuje dane animacji w ramach odpowiedzi. To zdarzenie zapewnia przyrostowe dane widoczne w miarę ich dostępności.
błąd
Zdarzenie serwera error jest zwracane, gdy wystąpi błąd, który może być problemem klienta lub problemem serwera. Większość błędów można odzyskać, a sesja pozostaje otwarta.
Struktura zdarzeń
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość error. |
| błąd | obiekt | Szczegóły błędu. Zobacz właściwości zagnieżdżone w następnej tabeli. |
Właściwości błędu
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ błędu. Na przykład typy błędów "invalid_request_error" i "server_error". |
| kod | ciąg | Kod błędu, jeśli istnieje. |
| komunikat | ciąg | Czytelny dla człowieka komunikat o błędzie. |
| param | ciąg | Parametr związany z błędem, jeśli istnieje. |
| event_id | ciąg | Identyfikator zdarzenia klienta, który spowodował błąd, jeśli ma to zastosowanie. |
input_audio_buffer.wyczyszczone
Zdarzenie serwera input_audio_buffer.cleared jest zwracane, gdy klient czyści wejściowy bufor audio ze zdarzeniem input_audio_buffer.clear .
Struktura zdarzeń
{
"type": "input_audio_buffer.cleared"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.cleared. |
input_audio_buffer.committed
Zdarzenie serwera input_audio_buffer.committed jest zwracane po zatwierdzeniu wejściowego buforu audio przez klienta lub automatycznie w trybie VAD serwera. Właściwość item_id jest identyfikatorem utworzonego elementu komunikatu użytkownika. W związku z conversation.item.created tym zdarzenie jest również wysyłane do klienta.
Struktura zdarzeń
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.committed. |
| previous_item_id | ciąg | Identyfikator poprzedniego elementu, po którym zostanie wstawiony nowy element. |
| item_id | ciąg | Identyfikator utworzonego elementu wiadomości użytkownika. |
input_audio_buffer.speech_started
Zdarzenie serwera input_audio_buffer.speech_started jest zwracane w server_vad trybie, gdy mowa jest wykrywana w buforze audio. To zdarzenie może wystąpić za każdym razem, gdy dźwięk jest dodawany do buforu (chyba że mowa została już wykryta).
Uwaga / Notatka
Klient może chcieć użyć tego zdarzenia, aby przerwać odtwarzanie audio lub przekazać użytkownikowi opinię wizualną.
Klient powinien oczekiwać odebrania input_audio_buffer.speech_stopped zdarzenia po zatrzymaniu mowy. Właściwość item_id jest identyfikatorem elementu komunikatu użytkownika utworzonego po zatrzymaniu mowy. Element item_id jest również uwzględniony w input_audio_buffer.speech_stopped zdarzeniu, chyba że klient ręcznie zatwierdzi bufor audio podczas aktywacji VAD.
Struktura zdarzeń
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.speech_started. |
| audio_start_ms | liczba całkowita | Milisekundy od początku wszystkich audio zapisanych w buforze podczas sesji, gdy mowa została wykryta po raz pierwszy. Ta właściwość odpowiada początku dźwięku wysyłanego do modelu, a tym samym zawiera prefix_padding_ms skonfigurowane w sesji. |
| item_id | ciąg | Identyfikator elementu komunikatu użytkownika utworzony podczas zatrzymywania mowy. |
input_audio_buffer.speech_stopped
Zdarzenie serwera input_audio_buffer.speech_stopped jest zwracane w server_vad trybie, gdy serwer wykryje koniec mowy w buforze audio.
Serwer wysyła conversation.item.created również zdarzenie z elementem komunikatu użytkownika utworzonym na podstawie buforu audio.
Struktura zdarzeń
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.speech_stopped. |
| audio_end_ms | liczba całkowita | Milisekundy od momentu rozpoczęcia sesji po zatrzymaniu mowy. Ta właściwość odpowiada końcu dźwięku wysyłanego do modelu, a tym samym zawiera min_silence_duration_ms skonfigurowane w sesji. |
| item_id | ciąg | Identyfikator utworzonego elementu wiadomości użytkownika. |
rate_limits.updated
Zdarzenie serwera rate_limits.updated jest emitowane na początku odpowiedzi, aby wskazać zaktualizowane limity szybkości.
Po utworzeniu odpowiedzi niektóre tokeny są zarezerwowane dla tokenów wyjściowych. Przedstawione tutaj limity szybkości odzwierciedlają rezerwację, która jest następnie odpowiednio dostosowywana po zakończeniu odpowiedzi.
Struktura zdarzeń
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość rate_limits.updated. |
| rate_limits | tablica wartości RealtimeRateLimitsItem | Lista informacji o limicie szybkości. |
response.audio.delta
Zdarzenie serwera response.audio.delta jest zwracane po zaktualizowaniu dźwięku wygenerowanego przez model.
Struktura zdarzeń
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.audio.delta. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
| delta | ciąg | Delta danych audio zakodowanych w formacie Base64. |
response.audio.done
Zdarzenie serwera response.audio.done jest zwracane po zakończeniu generowania przez model dźwięku.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.audio.done. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
response.audio_transcript.delta
Zdarzenie serwera response.audio_transcript.delta jest zwracane po zaktualizowaniu transkrypcji wygenerowanej przez model danych wyjściowych dźwięku.
Struktura zdarzeń
{
"type": "response.audio_transcript.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.audio_transcript.delta. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
| delta | ciąg | Delta transkrypcji. |
response.audio_transcript.done
Zdarzenie serwera response.audio_transcript.done jest zwracane po zakończeniu przesyłania strumieniowego wygenerowanego przez model transkrypcji danych wyjściowych dźwięku.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.audio_transcript.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"transcript": "<transcript>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.audio_transcript.done. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
| transkrypcja | ciąg | Ostatnia transkrypcja dźwięku. |
response.function_call_arguments.delta
Zdarzenie serwera response.function_call_arguments.delta jest zwracane po zaktualizowaniu argumentów wywołania funkcji wygenerowanej przez model.
Struktura zdarzeń
{
"type": "response.function_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"delta": "<delta>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.function_call_arguments.delta. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu wywołania funkcji. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| call_id | ciąg | Identyfikator wywołania funkcji. |
| delta | ciąg | Argumenty delta jako ciąg JSON. |
response.function_call_arguments.done
Zdarzenie serwera response.function_call_arguments.done jest zwracane, gdy argumenty wywołania funkcji wygenerowane przez model są wykonywane strumieniowo.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.function_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"arguments": "<arguments>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.function_call_arguments.done. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu wywołania funkcji. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| call_id | ciąg | Identyfikator wywołania funkcji. |
| arguments | ciąg | Ostatnie argumenty jako ciąg JSON. |
mcp_list_tools.in_progress
Zdarzenie serwera mcp_list_tools.in_progress jest zwracane, gdy usługa rozpoczyna wyświetlanie listy dostępnych narzędzi z serwera mcp.
Struktura zdarzeń
{
"type": "mcp_list_tools.in_progress",
"item_id": "<mcp_list_tools_item_id>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość mcp_list_tools.in_progress. |
| item_id | ciąg | Identyfikator przetwarzanego elementu narzędzi listy MCP . |
mcp_list_tools.completed
Zdarzenie serwera mcp_list_tools.completed jest zwracane po zakończeniu wyświetlania listy dostępnych narzędzi z serwera mcp.
Struktura zdarzeń
{
"type": "mcp_list_tools.completed",
"item_id": "<mcp_list_tools_item_id>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość mcp_list_tools.completed. |
| item_id | ciąg | Identyfikator przetwarzanego elementu narzędzi listy MCP . |
mcp_list_tools.failed
Zdarzenie serwera mcp_list_tools.failed jest zwracane, gdy usługa nie może wyświetlić listy dostępnych narzędzi z serwera mcp.
Struktura zdarzeń
{
"type": "mcp_list_tools.failed",
"item_id": "<mcp_list_tools_item_id>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość mcp_list_tools.failed. |
| item_id | ciąg | Identyfikator przetwarzanego elementu narzędzi listy MCP . |
response.mcp_call_arguments.delta
Zdarzenie serwera response.mcp_call_arguments.delta jest zwracane po zaktualizowaniu argumentów wywołania narzędzia mcp wygenerowanego przez model.
Struktura zdarzeń
{
"type": "response.mcp_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"delta": "<delta>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.mcp_call_arguments.delta. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu wywołania narzędzia mcp. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| delta | ciąg | Argumenty delta jako ciąg JSON. |
response.mcp_call_arguments.done
Zdarzenie serwera response.mcp_call_arguments.done jest zwracane, gdy argumenty wywołania narzędzia mcp wygenerowane przez model są wykonywane strumieniowo.
Struktura zdarzeń
{
"type": "response.mcp_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"arguments": "<arguments>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.mcp_call_arguments.done. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu wywołania narzędzia mcp. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| arguments | ciąg | Ostatnie argumenty jako ciąg JSON. |
response.mcp_call.in_progress
Zdarzenie serwera response.mcp_call.in_progress jest zwracane, gdy wywołanie narzędzia MCP rozpoczyna przetwarzanie.
Struktura zdarzeń
{
"type": "response.mcp_call.in_progress",
"item_id": "<item_id>",
"output_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.mcp_call.in_progress. |
| item_id | ciąg | Identyfikator elementu wywołania narzędzia mcp. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
response.mcp_call.completed
Zdarzenie serwera response.mcp_call.completed jest zwracane po pomyślnym zakończeniu wywołania narzędzia MCP.
Struktura zdarzeń
{
"type": "response.mcp_call.completed",
"item_id": "<item_id>",
"output_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.mcp_call.completed. |
| item_id | ciąg | Identyfikator elementu wywołania narzędzia mcp. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
response.mcp_call.failed
Zdarzenie serwera response.mcp_call.failed jest zwracane, gdy wywołanie narzędzia MCP kończy się niepowodzeniem.
Struktura zdarzeń
{
"type": "response.mcp_call.failed",
"item_id": "<item_id>",
"output_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.mcp_call.failed. |
| item_id | ciąg | Identyfikator elementu wywołania narzędzia mcp. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
response.output_item.added
Zdarzenie serwera response.output_item.added jest zwracane po utworzeniu nowego elementu podczas generowania odpowiedzi.
Struktura zdarzeń
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.output_item.added. |
| response_id | ciąg | Identyfikator odpowiedzi, do której należy element. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| element | RealtimeConversationResponseItem | Element, który został dodany. |
response.output_item.done
Zdarzenie serwera response.output_item.done jest zwracane po zakończeniu przesyłania strumieniowego elementu.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.output_item.done. |
| response_id | ciąg | Identyfikator odpowiedzi, do której należy element. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| element | RealtimeConversationResponseItem | Element, który jest wykonywany strumieniowo. |
response.text.delta
Zdarzenie serwera response.text.delta jest zwracane po zaktualizowaniu tekstu wygenerowanego przez model. Tekst odpowiada text części zawartości elementu komunikatu asystenta.
Struktura zdarzeń
{
"type": "response.text.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.text.delta. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
| delta | ciąg | Delta tekstu. |
response.text.done
Zdarzenie serwera response.text.done jest zwracane po zakończeniu przesyłania strumieniowego tekstu wygenerowanego przez model. Tekst odpowiada text części zawartości elementu komunikatu asystenta.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
Właściwości
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi mieć wartość response.text.done. |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator elementu. |
| output_index | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
| SMS | ciąg | Końcowa zawartość tekstowa. |
Components
Formaty audio
RealtimeAudioFormat
Podstawowy format audio używany do wprowadzania dźwięku.
Dozwolone wartości:
-
pcm16- 16-bitowy format audio PCM -
g711_ulaw- G.711 format audio μ-law -
g711_alaw- Format audio G.711 A-law
RealtimeOutputAudioFormat
Format audio używany na potrzeby dźwięku wyjściowego z określonymi częstotliwościami próbkowania.
Dozwolone wartości:
-
pcm16- 16-bitowy format audio PCM z domyślną częstotliwością próbkowania (24kHz) -
pcm16_8000hz- 16-bitowy format audio PCM z częstotliwością próbkowania 8kHz -
pcm16_16000hz- 16-bitowy format audio PCM z częstotliwością próbkowania 16kHz -
g711_ulaw- Format audio G.711 μ-law (mu-law) z częstotliwością próbkowania 8kHz -
g711_alaw- Format audio G.711 A-law z częstotliwością próbkowania 8kHz
RealtimeAudioInputTranscriptionSettings
Konfiguracja transkrypcji dźwięku wejściowego.
| (No changes needed) | Typ | Description |
|---|---|---|
| model | ciąg | Model transkrypcji. Obsługiwane w systemach gpt-realtime i gpt-realtime-mini:whisper-1, , gpt-4o-transcribegpt-4o-mini-transcribe, , gpt-4o-transcribe-diarize.Obsługiwane we wszystkich innych modelach i agentach: azure-speech |
| język | ciąg | Opcjonalny kod języka w języku BCP-47 (np en-US. ) lub ISO-639-1 (np en. ) lub w wielu językach z wykrywaniem automatycznym (np. en,zh). |
| custom_speech | obiekt | Opcjonalna konfiguracja niestandardowych modeli mowy, ważna tylko dla azure-speech modelu. |
| phrase_list | string[] | Opcjonalna lista wskazówek fraz dotyczących rozpoznawania stronniczości, która jest prawidłowa tylko dla azure-speech modelu. |
| monit | ciąg | Opcjonalny tekst monitu, aby poprowadzić transkrypcję, prawidłową tylko dla whisper-1modeli , gpt-4o-transcribegpt-4o-mini-transcribe i gpt-4o-transcribe-diarize . |
RealtimeInputAudioNoiseReductionSettings
Może to być:
RealtimeOpenAINoiseReduction
Konfiguracja redukcji szumu interfejsu OpenAI z jawnym polem typu, dostępnym tylko dla gpt-realtime modeli i gpt-realtime-mini .
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg |
near_field lub far_field |
RealtimeAzureDeepNoiseSuppression
Konfiguracja redukcji szumu dźwięku wejściowego.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "azure_deep_noise_suppression" |
RealtimeInputAudioEchoCancellationSettings
Konfiguracja anulowania echa na potrzeby przetwarzania dźwięku po stronie serwera.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "server_echo_cancellation" |
Konfiguracja głosu
RealtimeVoice
Unii wszystkich obsługiwanych konfiguracji głosowych.
Może to być:
- Obiekt RealtimeOpenAIVoice
- Obiekt RealtimeAzureVoice
RealtimeOpenAIVoice
Konfiguracja głosu OpenAI z jawnym polem typu.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "openai" |
| nazwa | ciąg | Nazwa głosu OpenAI: alloy, , ashballadcoralechosage, , shimmerversemarincedar |
RealtimeAzureVoice
Podstawowe informacje na potrzeby konfiguracji głosowych platformy Azure. Jest to związek dyskryminowany z różnymi typami:
RealtimeAzureStandardVoice
Standardowa konfiguracja głosu platformy Azure.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "azure-standard" |
| nazwa | ciąg | Nazwa głosu (nie może być pusta) |
| temperatura | Liczba | Opcjonalny. Temperatura z zakresu od 0,0 do 1,0 |
| custom_lexicon_url | ciąg | Opcjonalny. Adres URL niestandardowego leksykonu |
| prefer_locales | string[] | Opcjonalny. Preferowane ustawienia regionalne Preferuj ustawienia regionalne zmienią akcenty języków. Jeśli wartość nie jest ustawiona, usługa TTS będzie używać domyślnego akcentu dla każdego języka. Na przykład gdy język TTS mówi po angielsku, będzie używać amerykańskiego akcentu angielskiego. A mówiąc po hiszpańsku, będzie używać meksykańskiego hiszpańskiego akcentu. Jeśli ustawisz prefer_locales ["en-GB", "es-ES"]na , akcent angielski będzie brytyjskim angielskim, a hiszpański akcent będzie europejskim hiszpańskim. TTS również może mówić w innych językach, takich jak francuski, chiński itp. |
| regionalny | ciąg | Opcjonalny. Specyfikacja ustawień regionalnych Wymuś ustawienia regionalne dla danych wyjściowych TTS. Jeśli nie zostanie ustawiona, funkcja TTS będzie zawsze używać podanych ustawień regionalnych, aby mówić. Np. ustawienie ustawień regionalnych na , TTS zawsze będzie używać en-USamerykańskiego akcentu angielskiego do mówienia zawartości tekstowej, nawet zawartość tekstowa jest w innym języku. Usługa TTS wyjmie milczenie, jeśli zawartość tekstowa znajduje się w języku chińskim. |
| styl | ciąg | Opcjonalny. Styl głosu |
| rzucać | ciąg | Opcjonalny. Korekta skoku |
| tempo | ciąg | Opcjonalny. Korekta szybkości mowy |
| volume | ciąg | Opcjonalny. Korekta głośności |
RealtimeAzureCustomVoice
Niestandardowa konfiguracja głosu platformy Azure (preferowana dla niestandardowych głosów).
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "azure-custom" |
| nazwa | ciąg | Nazwa głosu (nie może być pusta) |
| endpoint_id | ciąg | Identyfikator punktu końcowego (nie może być pusty) |
| temperatura | Liczba | Opcjonalny. Temperatura z zakresu od 0,0 do 1,0 |
| custom_lexicon_url | ciąg | Opcjonalny. Adres URL niestandardowego leksykonu |
| prefer_locales | string[] | Opcjonalny. Preferowane ustawienia regionalne Preferuj ustawienia regionalne zmienią akcenty języków. Jeśli wartość nie jest ustawiona, usługa TTS będzie używać domyślnego akcentu dla każdego języka. Na przykład gdy język TTS mówi po angielsku, będzie używać amerykańskiego akcentu angielskiego. A mówiąc po hiszpańsku, będzie używać meksykańskiego hiszpańskiego akcentu. Jeśli ustawisz prefer_locales ["en-GB", "es-ES"]na , akcent angielski będzie brytyjskim angielskim, a hiszpański akcent będzie europejskim hiszpańskim. TTS również może mówić w innych językach, takich jak francuski, chiński itp. |
| regionalny | ciąg | Opcjonalny. Specyfikacja ustawień regionalnych Wymuś ustawienia regionalne dla danych wyjściowych TTS. Jeśli nie zostanie ustawiona, funkcja TTS będzie zawsze używać podanych ustawień regionalnych, aby mówić. Np. ustawienie ustawień regionalnych na , TTS zawsze będzie używać en-USamerykańskiego akcentu angielskiego do mówienia zawartości tekstowej, nawet zawartość tekstowa jest w innym języku. Usługa TTS wyjmie milczenie, jeśli zawartość tekstowa znajduje się w języku chińskim. |
| styl | ciąg | Opcjonalny. Styl głosu |
| rzucać | ciąg | Opcjonalny. Korekta skoku |
| tempo | ciąg | Opcjonalny. Korekta szybkości mowy |
| volume | ciąg | Opcjonalny. Korekta głośności |
Przykład:
{
"type": "azure-custom",
"name": "my-custom-voice",
"endpoint_id": "12345678-1234-1234-1234-123456789012",
"temperature": 0.7,
"style": "cheerful",
"locale": "en-US"
}
RealtimeAzurePersonalVoice
Konfiguracja osobistego głosu platformy Azure.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "azure-personal" |
| nazwa | ciąg | Nazwa głosu (nie może być pusta) |
| temperatura | Liczba | Opcjonalny. Temperatura z zakresu od 0,0 do 1,0 |
| model | ciąg | Podstawowy model neuronowy: DragonLatestNeural, , PhoenixLatestNeuralPhoenixV2Neural |
| custom_lexicon_url | ciąg | Opcjonalny. Adres URL niestandardowego leksykonu |
| prefer_locales | string[] | Opcjonalny. Preferowane ustawienia regionalne Preferuj ustawienia regionalne zmienią akcenty języków. Jeśli wartość nie jest ustawiona, usługa TTS będzie używać domyślnego akcentu dla każdego języka. Na przykład gdy język TTS mówi po angielsku, będzie używać amerykańskiego akcentu angielskiego. A mówiąc po hiszpańsku, będzie używać meksykańskiego hiszpańskiego akcentu. Jeśli ustawisz prefer_locales ["en-GB", "es-ES"]na , akcent angielski będzie brytyjskim angielskim, a hiszpański akcent będzie europejskim hiszpańskim. TTS również może mówić w innych językach, takich jak francuski, chiński itp. |
| regionalny | ciąg | Opcjonalny. Specyfikacja ustawień regionalnych Wymuś ustawienia regionalne dla danych wyjściowych TTS. Jeśli nie zostanie ustawiona, funkcja TTS będzie zawsze używać podanych ustawień regionalnych, aby mówić. Np. ustawienie ustawień regionalnych na , TTS zawsze będzie używać en-USamerykańskiego akcentu angielskiego do mówienia zawartości tekstowej, nawet zawartość tekstowa jest w innym języku. Usługa TTS wyjmie milczenie, jeśli zawartość tekstowa znajduje się w języku chińskim. |
| rzucać | ciąg | Opcjonalny. Korekta skoku |
| tempo | ciąg | Opcjonalny. Korekta szybkości mowy |
| volume | ciąg | Opcjonalny. Korekta głośności |
Wykrywanie obrotu
RealtimeTurnDetection
Konfiguracja wykrywania obrotu. Jest to dyskryminowana unia obsługująca wiele typów VAD.
RealtimeServerVAD
Podstawowe wykrywanie obrotu oparte na vaD.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "server_vad" |
| próg | Liczba | Opcjonalny. Próg aktywacji (0.0–1.0) |
| prefix_padding_ms | liczba całkowita | Opcjonalny. Dopełnianie audio przed rozpoczęciem mowy |
| silence_duration_ms | liczba całkowita | Opcjonalny. Czas trwania ciszy w celu wykrycia zakończenia mowy |
| end_of_utterance_detection | RealtimeEOUDetection | Opcjonalny. Konfiguracja wykrywania końca wypowiedzi |
| utwórz_odpowiedź | typ logiczny (boolowski) | Opcjonalny. Włącz lub wyłącz, czy odpowiedź jest generowana. |
| odpowiedź na przerwanie | typ logiczny (boolowski) | Opcjonalny. Włączanie lub wyłączanie przerwy w działaniu barge-in (wartość domyślna: false) |
| auto_truncate | typ logiczny (boolowski) | Opcjonalny. Automatyczne obcinanie przerwy (ustawienie domyślne: false) |
RealtimeOpenAISemanticVAD
Semantyczna konfiguracja vaD interfejsu OpenAI, która używa modelu do określenia, kiedy użytkownik zakończył pracę. Dostępne tylko dla gpt-realtime modeli i gpt-realtime-mini .
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "semantic_vad" |
| zapał | ciąg | Opcjonalny. Jest to sposób kontrolowania, jak chętny jest przerwanie działania modelu, dostrajanie maksymalnego limitu czasu oczekiwania. W trybie transkrypcji, nawet jeśli model nie odpowiada, wpływa na sposób fragmentowania dźwięku. Dozwolone są następujące wartości: - auto (wartość domyślna) jest odpowiednikiem mediumelementu ,- low pozwoli użytkownikowi zabrać czas na rozmowę,- high będzie fragmentuje dźwięk tak szybko, jak to możliwe.Jeśli chcesz, aby model odpowiadał częściej w trybie konwersacji lub aby szybciej zwracał zdarzenia transkrypcji w trybie transkrypcji, możesz ustawić gotowość na highwartość .Z drugiej strony, jeśli chcesz pozwolić użytkownikowi mówić nieprzerwanie w trybie konwersacji lub jeśli chcesz, aby większe fragmenty transkrypcji w trybie transkrypcji, możesz ustawić chętność na lowwartość . |
| utwórz_odpowiedź | typ logiczny (boolowski) | Opcjonalny. Włącz lub wyłącz, czy odpowiedź jest generowana. |
| odpowiedź na przerwanie | typ logiczny (boolowski) | Opcjonalny. Włączanie lub wyłączanie przerwy w działaniu barge-in (wartość domyślna: false) |
RealtimeAzureSemanticVAD
Semantyczna usługa VAD platformy Azure, która określa, kiedy użytkownik rozpoczyna korzystanie z semantycznego modelu mowy, zapewniając bardziej niezawodne wykrywanie w hałaśliwych środowiskach.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "azure_semantic_vad" |
| próg | Liczba | Opcjonalny. Próg aktywacji |
| prefix_padding_ms | liczba całkowita | Opcjonalny. Dopełnianie audio przed mową |
| silence_duration_ms | liczba całkowita | Opcjonalny. Czas trwania ciszy na koniec mowy |
| end_of_utterance_detection | RealtimeEOUDetection | Opcjonalny. Konfiguracja wykrywania jednostek EOU |
| speech_duration_ms | liczba całkowita | Opcjonalny. Minimalny czas trwania mowy |
| remove_filler_words | typ logiczny (boolowski) | Opcjonalny. Usuń wyrazy wypełniacza (wartość domyślna: false) |
| Języki | string[] | Opcjonalny. Obsługuje język angielski. Inne języki zostaną zignorowane. |
| utwórz_odpowiedź | typ logiczny (boolowski) | Opcjonalny. Włącz lub wyłącz, czy odpowiedź jest generowana. |
| odpowiedź na przerwanie | typ logiczny (boolowski) | Opcjonalny. Włączanie lub wyłączanie przerwy w działaniu barge-in (wartość domyślna: false) |
| auto_truncate | typ logiczny (boolowski) | Opcjonalny. Automatyczne obcinanie przerwy (ustawienie domyślne: false) |
RealtimeAzureSemanticVADMultilingual
Semantyczna usługa VAD platformy Azure (wariant domyślny).
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "azure_semantic_vad_multilingual" |
| próg | Liczba | Opcjonalny. Próg aktywacji |
| prefix_padding_ms | liczba całkowita | Opcjonalny. Dopełnianie audio przed mową |
| silence_duration_ms | liczba całkowita | Opcjonalny. Czas trwania ciszy na koniec mowy |
| end_of_utterance_detection | RealtimeEOUDetection | Opcjonalny. Konfiguracja wykrywania jednostek EOU |
| speech_duration_ms | liczba całkowita | Opcjonalny. Minimalny czas trwania mowy |
| remove_filler_words | typ logiczny (boolowski) | Opcjonalny. Usuń wyrazy wypełniacza (wartość domyślna: false). |
| Języki | string[] | Opcjonalny. Obsługuje język angielski, hiszpański, francuski, włoski, niemiecki (DE), japoński, portugalski, chiński, koreański, hindi. Inne języki zostaną zignorowane. |
| utwórz_odpowiedź | typ logiczny (boolowski) | Opcjonalny. Włącz lub wyłącz, czy odpowiedź jest generowana. |
| odpowiedź na przerwanie | typ logiczny (boolowski) | Opcjonalny. Włączanie lub wyłączanie przerwy w działaniu barge-in (wartość domyślna: false) |
| auto_truncate | typ logiczny (boolowski) | Opcjonalny. Automatyczne obcinanie przerwy (ustawienie domyślne: false) |
RealtimeEOUDetection
End-of-Utterance (EOU) platformy Azure może wskazywać, kiedy użytkownik końcowy przestał mówić, umożliwiając naturalne wstrzymanie. Wykrywanie końca wypowiedzi może znacznie zmniejszyć przedwczesne sygnały końca tury bez dodawania wykrywalnych przez użytkownika opóźnień.
| (No changes needed) | Typ | Description |
|---|---|---|
| model | ciąg | Może być semantic_detection_v1 obsługa języka angielskiego lub semantic_detection_v1_multilingual obsługi języka angielskiego, hiszpańskiego, francuskiego, włoskiego, niemieckiego (DE), japońskiego, portugalskiego, chińskiego, koreańskiego, hindi |
| threshold_level | ciąg | Opcjonalny. Poziom progu wykrywania (low, mediumhighi default), ustawienie domyślne jest medium równe. Przy niższym ustawieniu prawdopodobieństwo ukończenia zdania będzie wyższe. |
| limit_czasu_ms | Liczba | Opcjonalny. Maksymalny czas w milisekundach oczekiwania na więcej mowy użytkownika. Wartość domyślna to 1000 ms. |
Konfiguracja awatara
RealtimeAvatarConfig
Konfiguracja przesyłania strumieniowego i zachowania awatara.
| (No changes needed) | Typ | Description |
|---|---|---|
| ice_servers | RealtimeIceServer[] | Opcjonalny. Serwery ICE dla usługi WebRTC |
| znak | ciąg | Nazwa znaku lub identyfikator awatara |
| styl | ciąg | Opcjonalny. Styl awatara (emocjonalny ton, styl mówienia) |
| Dostosowane | typ logiczny (boolowski) | Czy awatar jest dostosowany |
| wideo | RealtimeVideoParams | Opcjonalny. Konfiguracja wideo |
RealtimeIceServer
Konfiguracja serwera ICE na potrzeby negocjacji połączenia WebRTC.
| (No changes needed) | Typ | Description |
|---|---|---|
| adresy URL | string[] | Adresy URL serwera ICE (punkty końcowe TURN lub STUN) |
| nazwa użytkownika | ciąg | Opcjonalny. Nazwa użytkownika na potrzeby uwierzytelniania |
| poświadczenie | ciąg | Opcjonalny. Poświadczenia do uwierzytelniania |
RealtimeVideoParams
Parametry przesyłania strumieniowego wideo dla awatara.
| (No changes needed) | Typ | Description |
|---|---|---|
| szybkość transmisji bitów | liczba całkowita | Opcjonalny. Szybkość transmisji bitów na sekundę (wartość domyślna: 2000000) |
| koder-dekoder | ciąg | Opcjonalny. Koder wideo, obecnie tylko h264 (wartość domyślna: h264) |
| przycinać | RealtimeVideoCrop | Opcjonalny. Ustawienia przycinania |
| rozdzielczość | RealtimeVideoResolution | Opcjonalny. Ustawienia rozwiązywania |
RealtimeVideoCrop
Definicja prostokąta przycinania wideo.
| (No changes needed) | Typ | Description |
|---|---|---|
| top_left | liczba całkowita[] | Lewy górny róg [x, y], liczba całkowita nieujemna |
| bottom_right | liczba całkowita[] | Prawy dolny róg [x, y], liczby całkowite nieujemne |
RealtimeVideoResolution
Specyfikacja rozdzielczości wideo.
| (No changes needed) | Typ | Description |
|---|---|---|
| width | liczba całkowita | Szerokość w pikselach (musi być > 0) |
| height | liczba całkowita | Wysokość w pikselach (musi być > 0) |
Konfiguracja animacji
RealtimeAnimation
Konfiguracja dla danych wyjściowych animacji, w tym blendshapes i visemes.
| (No changes needed) | Typ | Description |
|---|---|---|
| model_name | ciąg | Opcjonalny. Nazwa modelu animacji (wartość domyślna: "default") |
| Wyniki | RealtimeAnimationOutputType[] | Opcjonalny. Typy danych wyjściowych (wartość domyślna: ["blendshapes"]) |
RealtimeAnimationOutputType
Typy danych animacji do danych wyjściowych.
Dozwolone wartości:
-
blendshapes- Dane mieszania twarzy -
viseme_id- Dane identyfikatora viseme
Konfiguracja sesji
RealtimeRequestSession
Obiekt konfiguracji sesji używany w session.update zdarzeniach.
| (No changes needed) | Typ | Description |
|---|---|---|
| model | ciąg | Opcjonalny. Nazwa modelu do użycia |
| modalities | Tryb rzeczywisty[] | Opcjonalny. Obsługiwane modalności dla sesji. Na przykład "modalności": ["text", "audio"] jest ustawieniem domyślnym, które umożliwia zarówno modalności tekstu, jak i audio. Aby włączyć tylko tekst, ustaw "modalności": ["text"]. Aby włączyć dane wyjściowe awatara, ustaw "modalności": ["text", "audio", "avatar". Nie można włączyć tylko dźwięku. |
| animacja | RealtimeAnimation | Opcjonalny. Konfiguracja animacji |
| voice | RealtimeVoice | Opcjonalny. Konfiguracja głosu |
| instructions | ciąg | Opcjonalny. Instrukcje systemowe dotyczące modelu. Instrukcje mogą prowadzić dźwięk wyjściowy, jeśli są używane głosy OpenAI, ale mogą nie mieć zastosowania do głosów platformy Azure. |
| input_audio_sampling_rate | liczba całkowita | Opcjonalny. Częstotliwość próbkowania audio wejściowego w Hz (domyślnie: 24000 dla , 8000 dla pcm16g711_ulaw i g711_alaw) |
| input_audio_format | RealtimeAudioFormat | Opcjonalny. Format audio wejściowego (domyślny: pcm16) |
| output_audio_format | RealtimeOutputAudioFormat | Opcjonalny. Format audio wyjściowego (wartość domyślna: pcm16) |
| input_audio_noise_reduction | RealtimeInputAudioNoiseReductionSettings | Konfiguracja redukcji szumu dźwięku wejściowego. Można to ustawić na wartość null, aby wyłączyć. Filtry redukcji szumów przetwarzają dźwięk dodany do wejściowego bufora audio, zanim zostanie on wysłany do usługi VAD i modelu. Filtrowanie dźwięku może poprawić dokładność wykrywania VAD i zmian (zmniejszając liczbę fałszywie dodatnich wyników) oraz poprawić wydajność modelu poprzez polepszenie postrzegania dźwięku wejściowego. Ta właściwość jest dopuszczana do wartości null. |
| input_audio_echo_cancellation | RealtimeInputAudioEchoCancellationSettings | Konfiguracja anulowania echa dźwięku wejściowego. Można to ustawić na wartość null, aby wyłączyć. To anulowanie echa po stronie usługi może pomóc poprawić jakość dźwięku wejściowego, zmniejszając wpływ echa i odgłosu. Ta właściwość jest dopuszczana do wartości null. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Konfiguracja transkrypcji dźwięku wejściowego. Domyślnie konfiguracja ma wartość null (wyłączoną). Transkrypcja audio wejściowego nie jest natywna dla modelu, ponieważ model korzysta bezpośrednio z dźwięku. Transkrypcja jest uruchamiana asynchronicznie przez /audio/transcriptions punkt końcowy i powinna być traktowana jako wskazówki dotyczące wejściowej zawartości audio, a nie dokładnie tego, co usłyszał model. Aby uzyskać dodatkowe wskazówki dotyczące usługi transkrypcji, klient może opcjonalnie ustawić język i monitować o transkrypcję.Ta właściwość jest dopuszczana do wartości null. |
| turn_detection | RealtimeTurnDetection | Ustawienia wykrywania kolei dla sesji. Można to ustawić na wartość null, aby wyłączyć. |
| narzędzia | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
| tool_choice | RealtimeToolChoice | Narzędzie wybrane dla sesji. Dozwolone wartości: auto, nonei required. W przeciwnym razie można określić nazwę funkcji do użycia. |
| temperatura | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
| max_response_output_tokens | liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, w tym wywołania narzędzi. Określ liczbę całkowitą z zakresu od 1 do 4096, aby ograniczyć tokeny wyjściowe. W przeciwnym razie ustaw wartość na "inf", aby zezwolić na maksymalną liczbę tokenów. Aby na przykład ograniczyć tokeny wyjściowe do 1000, ustaw wartość "max_response_output_tokens": 1000. Aby zezwolić na maksymalną liczbę tokenów, ustaw wartość "max_response_output_tokens": "inf".Wartość domyślna to "inf". |
| awatar | RealtimeAvatarConfig | Opcjonalny. Konfiguracja awatara |
| output_audio_timestamp_types | RealtimeAudioTimestampType[] | Opcjonalny. Typy sygnatur czasowych dla dźwięku wyjściowego |
Tryb rzeczywisty
Obsługiwane modalności sesji.
Dozwolone wartości:
-
text- Wprowadzanie tekstu/dane wyjściowe -
audio- Wejście/wyjście audio -
animation- Dane wyjściowe animacji -
avatar- Dane wyjściowe wideo awatara
RealtimeAudioTimestampType
Typy sygnatur czasowych danych wyjściowych obsługiwane w zawartości odpowiedzi audio.
Dozwolone wartości:
-
word- Znaczniki czasu na słowo w wyjściowym dźwięku
Konfiguracja narzędzia
Obsługujemy dwa typy narzędzi: wywoływanie funkcji i narzędzia MCP, które umożliwiają nawiązywanie połączenia z serwerem mcp.
Narzędzia czasu rzeczywistego
Definicja narzędzia do wywoływania funkcji.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "function" |
| nazwa | ciąg | Nazwa funkcji |
| opis | ciąg | Opis funkcji i wskazówki dotyczące użycia |
| parameters | obiekt | Parametry funkcji jako obiekt schematu JSON |
RealtimeToolChoice
Strategia wyboru narzędzi.
Może to być:
-
"auto"- Pozwól modelowi wybrać -
"none"— Nie używaj narzędzi -
"required"- Musi używać narzędzia -
{ "type": "function", "name": "function_name" }- Korzystanie z określonej funkcji
McPTool
Konfiguracja narzędzia MCP.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "mcp" |
| etykieta_serwera | ciąg | To jest wymagane. Etykieta serwera MCP. |
| adres_serwera | ciąg | To jest wymagane. Adres URL serwera MCP. |
| dozwolone_narzędzia | string[] | Opcjonalny. Lista dozwolonych nazw narzędzi. Jeśli nie zostanie określony, wszystkie narzędzia będą dozwolone. |
| headers | obiekt | Opcjonalny. Dodatkowe nagłówki do uwzględnienia w żądaniach MCP. |
| autoryzacja | ciąg | Opcjonalny. Token autoryzacji dla żądań MCP. |
| wymaga_akceptacji | ciąg lub słownik | Opcjonalny. Jeśli jest ustawiona na ciąg, wartość musi mieć never wartość lub always. Jeśli jest ustawiona na słownik, musi mieć format {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}. Wartość domyślna to always. Po ustawieniu alwayswartości na polecenie wykonanie narzędzia wymaga zatwierdzenia, mcp_approval_request zostanie wysłana do klienta po zakończeniu argumentu mcp i zostanie wykonana tylko po odebraniu mcp_approval_response.approve=true Gdy zostanie ustawiona wartość never, narzędzie zostanie wykonane automatycznie bez zatwierdzenia. |
RealtimeConversationResponseItem
Jest to typ unii, który może być jednym z następujących:
RealtimeConversationUserMessageItem
Element wiadomości użytkownika.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Unikatowy identyfikator elementu. |
| typ | ciąg | Musi być "message" |
| obiekt | ciąg | Musi być "conversation.item" |
| rola | ciąg | Musi być "user" |
| zawartość | RealtimeInputTextContentPart | Zawartość wiadomości. |
| stan | RealtimeItemStatus | Stan elementu. |
RealtimeConversationAssistantMessageItem
Element komunikatu asystenta.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Unikatowy identyfikator elementu. |
| typ | ciąg | Musi być "message" |
| obiekt | ciąg | Musi być "conversation.item" |
| rola | ciąg | Musi być "assistant" |
| zawartość | RealtimeOutputTextContentPart[] lub RealtimeOutputAudioContentPart[] | Zawartość wiadomości. |
| stan | RealtimeItemStatus | Stan elementu. |
RealtimeConversationSystemMessageItem
Element komunikatu systemowego.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Unikatowy identyfikator elementu. |
| typ | ciąg | Musi być "message" |
| obiekt | ciąg | Musi być "conversation.item" |
| rola | ciąg | Musi być "system" |
| zawartość | RealtimeInputTextContentPart[] | Zawartość wiadomości. |
| stan | RealtimeItemStatus | Stan elementu. |
RealtimeConversationFunctionCallItem
Element żądania wywołania funkcji.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Unikatowy identyfikator elementu. |
| typ | ciąg | Musi być "function_call" |
| obiekt | ciąg | Musi być "conversation.item" |
| nazwa | ciąg | Nazwa funkcji do wywołania. |
| arguments | ciąg | Argumenty wywołania funkcji jako ciąg JSON. |
| call_id | ciąg | Unikatowy identyfikator wywołania funkcji. |
| stan | RealtimeItemStatus | Stan elementu. |
RealtimeConversationFunctionCallOutputItem
Element odpowiedzi wywołania funkcji.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Unikatowy identyfikator elementu. |
| typ | ciąg | Musi być "function_call_output" |
| obiekt | ciąg | Musi być "conversation.item" |
| nazwa | ciąg | Nazwa wywoływanej funkcji. |
| We/Wy | ciąg | Dane wyjściowe wywołania funkcji. |
| call_id | ciąg | Unikatowy identyfikator wywołania funkcji. |
| stan | RealtimeItemStatus | Stan elementu. |
RealtimeConversationMCPListToolsItem
Element odpowiedzi narzędzi listy MCP.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Unikatowy identyfikator elementu. |
| typ | ciąg | Musi być "mcp_list_tools" |
| etykieta_serwera | ciąg | Etykieta serwera MCP. |
RealtimeConversationMCPCallItem
Element odpowiedzi wywołania MCP.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Unikatowy identyfikator elementu. |
| typ | ciąg | Musi być "mcp_call" |
| etykieta_serwera | ciąg | Etykieta serwera MCP. |
| nazwa | ciąg | Nazwa narzędzia do wywołania. |
| approval_request_id | ciąg | Identyfikator żądania zatwierdzenia dla wywołania MCP. |
| arguments | ciąg | Argumenty wywołania MCP. |
| We/Wy | ciąg | Dane wyjściowe wywołania MCP. |
| błąd | obiekt | Szczegóły błędu, jeśli wywołanie MCP nie powiodło się. |
RealtimeConversationMCPApprovalRequestItem
Element żądania zatwierdzenia MCP.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Unikatowy identyfikator elementu. |
| typ | ciąg | Musi być "mcp_approval_request" |
| etykieta_serwera | ciąg | Etykieta serwera MCP. |
| nazwa | ciąg | Nazwa narzędzia do wywołania. |
| arguments | ciąg | Argumenty wywołania MCP. |
RealtimeItemStatus
Stan elementów konwersacji.
Dozwolone wartości:
-
in_progress- Obecnie przetwarzane -
completed— Ukończono pomyślnie -
incomplete— Niekompletne (przerwane lub zakończone niepowodzeniem)
RealtimeContentPart
Część zawartości w wiadomości.
RealtimeInputTextContentPart
Część zawartości tekstowej.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "input_text" |
| SMS | ciąg | Zawartość tekstowa |
RealtimeOutputTextContentPart
Część zawartości tekstowej.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "text" |
| SMS | ciąg | Zawartość tekstowa |
RealtimeInputAudioContentPart
Część zawartości audio.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "input_audio" |
| audio | ciąg | Opcjonalny. Dane audio zakodowane w formacie Base64 |
| transkrypcja | ciąg | Opcjonalny. Transkrypcja audio |
RealtimeOutputAudioContentPart
Część zawartości audio.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Musi być "audio" |
| audio | ciąg | Dane audio zakodowane w formacie Base64 |
| transkrypcja | ciąg | Opcjonalny. Transkrypcja audio |
Obiekty odpowiedzi
Czas rzeczywistyResponse
Obiekt odpowiedzi reprezentujący odpowiedź wnioskowania modelu.
| (No changes needed) | Typ | Description |
|---|---|---|
| id | ciąg | Opcjonalny. Identyfikator odpowiedzi |
| obiekt | ciąg | Opcjonalny. Zawsze "realtime.response" |
| stan | RealtimeResponseStatus | Opcjonalny. Stan odpowiedzi |
| szczegóły statusu | RealtimeResponseStatusDetails | Opcjonalny. Szczegóły statusu |
| We/Wy | RealtimeConversationResponseItem[] | Opcjonalny. Elementy wyjściowe |
| użycie | Czas rzeczywistyUsage | Opcjonalny. Statystyki użycia tokenu |
| conversation_id | ciąg | Opcjonalny. Skojarzony identyfikator konwersacji |
| voice | RealtimeVoice | Opcjonalny. Głos używany do odpowiedzi |
| modalities | string[] | Opcjonalny. Używane modalności |
| output_audio_format | RealtimeOutputAudioFormat | Opcjonalny. Używany format audio |
| temperatura | Liczba | Opcjonalny. Używana temperatura |
| max_response_output_tokens | liczba całkowita lub "inf" | Opcjonalny. Maksymalna liczba użytych tokenów |
RealtimeResponseStatus
Wartości stanu odpowiedzi.
Dozwolone wartości:
-
in_progress- Odpowiedź jest generowana -
completed— Odpowiedź została ukończona pomyślnie -
cancelled— Odpowiedź została anulowana -
incomplete— Niekompletna odpowiedź (przerwana) -
failed— Odpowiedź nie powiodła się z powodu błędu
Czas rzeczywistyUsage
Statystyki użycia tokenu.
| (No changes needed) | Typ | Description |
|---|---|---|
| total_tokens | liczba całkowita | Łączna liczba użytych tokenów |
| input_tokens | liczba całkowita | Używane tokeny wejściowe |
| output_tokens | liczba całkowita | Wygenerowane tokeny wyjściowe |
| input_token_details | TokenDetails | Podział tokenów wejściowych |
| output_token_details | TokenDetails | Podział tokenów wyjściowych |
TokenDetails
Szczegółowy podział użycia tokenu.
| (No changes needed) | Typ | Description |
|---|---|---|
| cached_tokens | liczba całkowita | Opcjonalny. Używane tokeny buforowane |
| text_tokens | liczba całkowita | Opcjonalny. Używane tokeny tekstowe |
| audio_tokens | liczba całkowita | Opcjonalny. Używane tokeny audio |
Obsługa błędów
RealtimeErrorDetails
Obiekt informacji o błędzie.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ błędu (np. "invalid_request_error", "server_error") |
| kod | ciąg | Opcjonalny. Określony kod błędu |
| komunikat | ciąg | Opis błędu czytelnego dla człowieka |
| param | ciąg | Opcjonalny. Parametr związany z błędem |
| event_id | ciąg | Opcjonalny. Identyfikator zdarzenia klienta, które spowodowało błąd |
RealtimeConversationRequestItem
Obiekt służy RealtimeConversationRequestItem do tworzenia nowego elementu w konwersacji za pośrednictwem zdarzenia conversation.item.create .
Jest to typ unii, który może być jednym z następujących:
RealtimeSystemMessageItem
Element komunikatu systemowego.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ elementu. Dozwolone wartości: message |
| rola | ciąg | Rola wiadomości. Dozwolone wartości: system |
| zawartość | tablica obiektu RealtimeInputTextContentPart | Zawartość wiadomości. |
| id | ciąg | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. |
RealtimeUserMessageItem
Element komunikatu użytkownika.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ elementu. Dozwolone wartości: message |
| rola | ciąg | Rola wiadomości. Dozwolone wartości: user |
| zawartość | tablica obiektu RealtimeInputTextContentPart lub RealtimeInputAudioContentPart | Zawartość wiadomości. |
| id | ciąg | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. |
RealtimeAssistantMessageItem
Element komunikatu asystenta.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ elementu. Dozwolone wartości: message |
| rola | ciąg | Rola wiadomości. Dozwolone wartości: assistant |
| zawartość | tablica obiektu RealtimeOutputTextContentPart | Zawartość wiadomości. |
RealtimeFunctionCallItem
Element wywołania funkcji.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ elementu. Dozwolone wartości: function_call |
| nazwa | ciąg | Nazwa funkcji do wywołania. |
| arguments | ciąg | Argumenty wywołania funkcji jako ciąg JSON. |
| call_id | ciąg | Identyfikator elementu wywołania funkcji. |
| id | ciąg | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. |
RealtimeFunctionCallOutputItem
Element wyjściowy wywołania funkcji.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ elementu. Dozwolone wartości: function_call_output |
| call_id | ciąg | Identyfikator elementu wywołania funkcji. |
| We/Wy | ciąg | Dane wyjściowe wywołania funkcji, to jest dowolny ciąg z wynikiem funkcji, również może być pusty. |
| id | ciąg | Unikatowy identyfikator elementu. Jeśli klient nie podaje identyfikatora, serwer go generuje. |
RealtimeMCPApprovalResponseItem
Element odpowiedzi na zatwierdzenie MCP.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ elementu. Dozwolone wartości: mcp_approval_response |
| approve | typ logiczny (boolowski) | Czy żądanie MCP zostało zatwierdzone. |
| approval_request_id | ciąg | Identyfikator żądania zatwierdzenia MCP. |
RealtimeFunctionTool
Definicja narzędzia funkcji używanego przez punkt końcowy czasu rzeczywistego.
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ narzędzia. Dozwolone wartości: function |
| nazwa | ciąg | Nazwa funkcji. |
| opis | ciąg | Opis funkcji, w tym wytyczne dotyczące użycia. Na przykład "Użyj tej funkcji, aby uzyskać bieżący czas". |
| parameters | obiekt | Parametry funkcji w postaci obiektu JSON. |
RealtimeItemStatus
Dozwolone wartości:
in_progresscompletedincomplete
RealtimeResponseAudioContentPart
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ części zawartości. Dozwolone wartości: audio |
| transkrypcja | ciąg | Transkrypcja dźwięku. Ta właściwość jest dopuszczana do wartości null. |
RealtimeResponseFunctionCallItem
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ elementu. Dozwolone wartości: function_call |
| nazwa | ciąg | Nazwa elementu wywołania funkcji. |
| call_id | ciąg | Identyfikator elementu wywołania funkcji. |
| arguments | ciąg | Argumenty elementu wywołania funkcji. |
| stan | RealtimeItemStatus | Stan elementu. |
RealtimeResponseFunctionCallOutputItem
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | ciąg | Typ elementu. Dozwolone wartości: function_call_output |
| call_id | ciąg | Identyfikator elementu wywołania funkcji. |
| We/Wy | ciąg | Dane wyjściowe elementu wywołania funkcji. |
RealtimeResponseOptions
| (No changes needed) | Typ | Description |
|---|---|---|
| modalities | macierz | Modalności obsługiwane przez sesję. Dozwolone wartości: text, audioNa przykład jest to ustawienie domyślne, "modalities": ["text", "audio"] które włącza zarówno modalności tekstowe, jak i audio. Aby włączyć tylko tekst, ustaw wartość "modalities": ["text"]. Nie można włączyć tylko dźwięku. |
| instructions | ciąg | Instrukcje (komunikat systemowy), aby kierować odpowiedziami modelu. |
| voice | RealtimeVoice | Głos używany na potrzeby odpowiedzi modelu na sesję. Po użyciu głosu w sesji na potrzeby odpowiedzi audio modelu nie można go zmienić. |
| narzędzia | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
| tool_choice | RealtimeToolChoice | Narzędzie wybrane dla sesji. |
| temperatura | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
| max_response_output_tokens | liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, w tym wywołania narzędzi. Określ liczbę całkowitą z zakresu od 1 do 4096, aby ograniczyć tokeny wyjściowe. W przeciwnym razie ustaw wartość na "inf", aby zezwolić na maksymalną liczbę tokenów. Aby na przykład ograniczyć tokeny wyjściowe do 1000, ustaw wartość "max_response_output_tokens": 1000. Aby zezwolić na maksymalną liczbę tokenów, ustaw wartość "max_response_output_tokens": "inf".Wartość domyślna to "inf". |
| konwersacja | ciąg | Określa, do której konwersacji jest dodawana odpowiedź. Obsługiwane wartości to auto i none.auto Wartość (lub nie ustawienie tej właściwości) gwarantuje, że zawartość odpowiedzi zostanie dodana do domyślnej konwersacji sesji.Ustaw tę właściwość na , aby none utworzyć odpowiedź poza pasmem, w której elementy nie zostaną dodane do domyślnej konwersacji. Wartości domyślne "auto" |
| metadane | mapa | Konfiguracja maksymalnie 16 par klucz-wartość, które można dołączyć do obiektu. Może to być przydatne do przechowywania dodatkowych informacji o obiekcie w formacie ustrukturyzowanym. Klucze mogą mieć długość maksymalnie 64 znaków, a wartości mogą mieć długość maksymalnie 512 znaków. Przykład: metadata: { topic: "classification" } |
RealtimeResponseSession
Obiekt RealtimeResponseSession reprezentuje sesję w interfejsie API czasu rzeczywistego. Jest on używany w niektórych zdarzeniach serwera, takich jak:
| (No changes needed) | Typ | Description |
|---|---|---|
| obiekt | ciąg | Obiekt sesji. Dozwolone wartości: realtime.session |
| id | ciąg | Unikatowy identyfikator sesji. |
| model | ciąg | Model używany na potrzeby sesji. |
| modalities | macierz | Modalności obsługiwane przez sesję. Dozwolone wartości: text, audioNa przykład jest to ustawienie domyślne, "modalities": ["text", "audio"] które włącza zarówno modalności tekstowe, jak i audio. Aby włączyć tylko tekst, ustaw wartość "modalities": ["text"]. Nie można włączyć tylko dźwięku. |
| instructions | ciąg | Instrukcje (komunikat systemowy) dotyczące kierowania odpowiedziami tekstowymi i audio modelu. Poniżej przedstawiono przykładowe instrukcje ułatwiające przewodnik zawartości i format odpowiedzi tekstowych i audio: "instructions": "be succinct""instructions": "act friendly""instructions": "here are examples of good responses"Oto kilka przykładowych instrukcji ułatwiania zachowania audio: "instructions": "talk quickly""instructions": "inject emotion into your voice""instructions": "laugh frequently"Chociaż model może nie zawsze przestrzegać tych instrukcji, udostępnia wskazówki dotyczące żądanego zachowania. |
| voice | RealtimeVoice | Głos używany na potrzeby odpowiedzi modelu na sesję. Po użyciu głosu w sesji na potrzeby odpowiedzi audio modelu nie można go zmienić. |
| input_audio_sampling_rate | liczba całkowita | Częstotliwość próbkowania dla wejściowego dźwięku. |
| input_audio_format | RealtimeAudioFormat | Format wejściowego dźwięku. |
| output_audio_format | RealtimeAudioFormat | Format dźwięku wyjściowego. |
| input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Ustawienia transkrypcji danych wejściowych audio. Ta właściwość jest dopuszczana do wartości null. |
| turn_detection | RealtimeTurnDetection | Ustawienia wykrywania kolei dla sesji. Ta właściwość jest dopuszczana do wartości null. |
| narzędzia | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
| tool_choice | RealtimeToolChoice | Narzędzie wybrane dla sesji. |
| temperatura | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
| max_response_output_tokens | liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, w tym wywołania narzędzi. Określ liczbę całkowitą z zakresu od 1 do 4096, aby ograniczyć tokeny wyjściowe. W przeciwnym razie ustaw wartość na "inf", aby zezwolić na maksymalną liczbę tokenów. Aby na przykład ograniczyć tokeny wyjściowe do 1000, ustaw wartość "max_response_output_tokens": 1000. Aby zezwolić na maksymalną liczbę tokenów, ustaw wartość "max_response_output_tokens": "inf". |
RealtimeResponseStatusDetails
| (No changes needed) | Typ | Description |
|---|---|---|
| typ | RealtimeResponseStatus | Stan odpowiedzi. |
RealtimeRateLimitsItem
| (No changes needed) | Typ | Description |
|---|---|---|
| nazwa | ciąg | Nazwa właściwości limitu szybkości zawierająca informacje o tym elemencie. |
| limit | liczba całkowita | Maksymalny skonfigurowany limit dla tej właściwości limitu szybkości. |
| remaining | liczba całkowita | Pozostały limit przydziału dostępny dla skonfigurowanego limitu dla tej właściwości limitu szybkości. |
| reset_seconds | Liczba | Pozostały czas (w sekundach), dopóki ta właściwość limitu szybkości nie zostanie zresetowana. |
Powiązane zasoby
- Wypróbuj Voice live quickstart
- Wypróbuj agentów głosowych na żywo — szybki start
- Dowiedz się więcej o sposobie korzystania z interfejsu API na żywo voice