Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Voice
API Voice Live zapewnia dwukierunkową komunikację w czasie rzeczywistym dla aplikacji z funkcją głosową korzystającą z połączeń WebSocket. API obsługuje zaawansowane funkcje, takie jak rozpoznawanie mowy, synteza tekstu na mowę, streaming awatara, dane animacyjne oraz kompleksowe możliwości przetwarzania dźwięku.
API wykorzystuje zdarzenia w formacie JSON przesyłane przez połączenia WebSocket do zarządzania rozmowami, strumieniami audio, interakcjami z awatarami oraz odpowiedziami w czasie rzeczywistym. Zdarzenia są kategoryzowane na zdarzenia klientowe (przesyłane od klienta do serwera) oraz zdarzenia serwera (przesyłane z serwera do klienta).
Najważniejsze funkcje
- Przetwarzanie dźwięku w czasie rzeczywistym: Obsługa wielu formatów audio, w tym PCM16 przy różnych częstotliwościach próbkowania oraz kodeków G.711
- Zaawansowane Opcje Głosowe: Głosy OpenAI, Azure głosy niestandardowe, Azure standardowe oraz Azure głosy osobiste
- Integracja z awatarem: Streaming awatarów oparty na WebRTC z wideo, animacjami i blendshape'ami
- Intelligent Turn Detection: Wiele opcji VAD, w tym Azure semantyczne VAD oraz wykrywanie po stronie serwera
- Ulepszenie dźwięku: Wbudowana redukcja szumów i redukcja echa
- Funkcja wywoływania: Integracja narzędzi dla ulepszonych możliwości konwersacyjnych
- Elastyczne zarządzanie sesją: konfigurowalne modalności wyjściowe, instrukcje i parametry odpowiedzi
Zdarzenia klienta
API Voice Live obsługuje następujące zdarzenia klienckie, które mogą być wysyłane z klienta do serwera:
| Zdarzenie | Opis |
|---|---|
| session.update | Zaktualizuj konfigurację sesji, w tym głos, modalności wyjściowe, wykrywanie skrętów i inne ustawienia |
| session.avatar.connect | Nawiązanie połączenia z awatarem, dostarczając klientowi SDP do negocjacji WebRTC |
| input_audio_buffer.append | Dodaj bajty audio do bufora audio wejściowego |
| input_audio_buffer.commit | Zatwierdz wejściowy bufor audio do przetwarzania |
| input_audio_buffer.clear | Wyczyść bufor audio wejściowy |
| conversation.item.create | Dodaj nowy element do kontekstu rozmowy |
| conversation.item.retrieve | Odzyskaj konkretny punkt z rozmowy |
| conversation.item.truncate | Skróć wiadomość audio asystenta |
| conversation.item.delete | Usuń punkt z rozmowy |
| response.create | Polec serwerowi utworzenie odpowiedzi za pomocą wnioskowania modelu |
| response.cancel | Anuluj odpowiedź w trakcie |
session.update
Zaktualizuj konfigurację sesji. To zdarzenie można wysłać w dowolnym momencie, aby zmienić ustawienia takie jak głos, modalności wyjściowe, wykrywanie skrętów, narzędzia i inne parametry sesji. Należy zauważyć, że po inicjalizacji sesji z konkretnym modelem nie można jej 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"
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "session.update" |
| sesja | RealtimeRequestSession | Obiekt konfiguracji sesji z polami do aktualizacji |
Przykład z 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
Nawiąż połączenie z awatarem, udostępniając klientowi ofertę SDP (Session Description Protocol) do negocjacji mediów WebRTC. To zdarzenie jest wymagane przy korzystaniu z funkcji awatara.
Struktura zdarzeń
{
"type": "session.avatar.connect",
"client_sdp": "<client_sdp>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "session.avatar.connect" |
| client_sdp | ciąg | Oferta SDP klienta dotycząca nawiązywania połączenia WebRTC, zakodowana w base64 |
dodaj do input_audio_buffer
Dodaj bajty audio do bufora audio wejściowego.
Struktura zdarzeń
{
"type": "input_audio_buffer.append",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "input_audio_buffer.append" |
| audio | ciąg | Dane audio kodowane w bazie 64 |
input_audio_buffer.commit
Zatwierdzaj bufor audio wejściowy do przetwarzania.
Struktura zdarzeń
{
"type": "input_audio_buffer.commit"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "input_audio_buffer.commit" |
input_audio_buffer.clear
Wyczyść bufor audio wejściowy.
Struktura zdarzeń
{
"type": "input_audio_buffer.clear"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "input_audio_buffer.clear" |
rozmowa.element.utwórz
Dodaj nowy element do kontekstu rozmowy. Może to obejmować wiadomości, wywołania funkcji oraz odpowiedzi na wywołania funkcji. Elementy można wstawiać w określonych miejscach w historii rozmowy.
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?"
}
]
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.create" |
| poprzedni_id_elementu | ciąg | Optional. Zidentyfikować przedmiot, po którym należy go wstawić. Jeśli nie jest podany, dodaje się do końca |
| element | ElementŻądaniaRozmowyNaŻywo | Punkt, który warto dodać do rozmowy |
Przykład z treścią audio
{
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [
{
"type": "input_audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello there"
}
]
}
}
Przykład z wyjściem wywołania funkcji
{
"type": "conversation.item.create",
"item": {
"type": "function_call_output",
"call_id": "call_123",
"output": "{\"location\": \"San Francisco\", \"temperature\": \"70\"}"
}
}
Przykład odpowiedzi zatwierdzającej MCP
{
"type": "conversation.item.create",
"item": {
"type": "mcp_approval_response",
"approval_request_id": "mcp_approval_req_456",
"approve": true,
}
}
rozmowa.element.pobierz
Pobierz konkretny element z historii rozmów. Jest to przydatne do inspekcji przetworzonego dźwięku po redukcji szumów i VAD.
Struktura zdarzeń
{
"type": "conversation.item.retrieve",
"item_id": "item_ABC123"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.retrieve" |
| item_id | ciąg | ID przedmiotu do pobrania |
conversation.item.truncate
Skróć zawartość audio wiadomości asystenta. Jest to przydatne do zatrzymania odtwarzania w określonym punkcie i synchronizacji rozumienia serwera ze stanem klienta.
Struktura zdarzeń
{
"type": "conversation.item.truncate",
"item_id": "item_ABC123",
"content_index": 0,
"audio_end_ms": 5000
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.truncate" |
| item_id | ciąg | ID elementu wiadomości asystenta do obcięcia |
| content_index | liczba całkowita | Indeks części treści do skracania |
| zakończenie_audio_ms | liczba całkowita | Czas trwania skracania dźwięku w milisekundach |
rozmowa.element.usunięcie
Usuń element z historii rozmów.
Struktura zdarzeń
{
"type": "conversation.item.delete",
"item_id": "item_ABC123"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.delete" |
| item_id | ciąg | ID przedmiotu do usunięcia |
response.create
Polec serwerowi utworzenie odpowiedzi za pomocą wnioskowania modelu. To zdarzenie może określić specyficzną dla odpowiedzi konfigurację, która nadpisuje domyślne ustawienia 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
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.create" |
| response | RealtimeResponseOptions | Opcjonalna konfiguracja odpowiedzi, która nadpisuje domyślne sesje |
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"
}
}
}
Przykład z gotową wiadomością asystenta
W niektórych sytuacjach możesz chcieć wygenerować odpowiedź audio dla zdefiniowanego tekstu zamiast generować odpowiedź tekstową modelu. Użyj parametru pre_generated_assistant_message w response.create wiadomości. Możesz dodać tylko jeden wpis tekstowy w content polu.
{
"type": "response.create",
"response": {
"pre_generated_assistant_message": {
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "repeat what I say"
}
]
}
}
}
Gdy usługa otrzymuje tę wiadomość, generuje odpowiedź audio dla zdefiniowanego tekstu. Wiadomość ta jest również dodawana do historii kontekstu rozmowy.
response.anuluj
Anuluj odpowiedź w toku. To natychmiast zatrzymuje generowanie odpowiedzi i powiązane wyjście audio.
Struktura zdarzeń
{
"type": "response.cancel"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.cancel" |
dodaj do input_audio_buffer
Zdarzenie klienta input_audio_buffer.append służy do dodawania bajtów audio do bufora audio wejściowego. Bufor audio to tymczasowa pamięć, do której możesz zapisywać i później je zatwierdzać.
W trybie Server VAD (Voice Activity Detection) bufor audio służy do wykrywania mowy, a serwer decyduje, kiedy zatwierdzić mowę. Po wyłączeniu VAD serwera klient może wybrać, ile dźwięku umieścić w każdym zdarzeniu z maksymalnie 15 MiB. Na przykład przesyłanie mniejszych fragmentów z klienta może pozwolić VAD-owi na większą responsywność.
W przeciwieństwie do większości innych zdarzeń klienckich, serwer nie wysyła odpowiedzi potwierdzającej do zdarzenia klienta input_audio_buffer.append .
Struktura zdarzeń
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .input_audio_buffer.append |
| audio | ciąg | Bajty audio kodowane w Base64. Ta wartość musi być w formacie określonym przez input_audio_format pole w konfiguracji sesji. |
input_audio_buffer.clear
Zdarzenie klienta input_audio_buffer.clear służy do czyszczenia bajtów audio w buforze.
Serwer odpowiada zdarzeniem input_audio_buffer.cleared .
Struktura zdarzeń
{
"type": "input_audio_buffer.clear"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .input_audio_buffer.clear |
input_audio_buffer.commit
Zdarzenie klienta input_audio_buffer.commit służy do zatwierdzania bufora audio wejściowego użytkownika, który tworzy nowy element wiadomości użytkownika w rozmowie. Audio jest transkrybowane, jeśli input_audio_transcription jest skonfigurowane na potrzeby sesji.
W trybie VAD serwera klient nie musi wysyłać tego zdarzenia, serwer automatycznie zatwierdza bufor audio. Bez serwerowego VAD klient musi zatwierdzać bufor audio, aby utworzyć element wiadomości użytkownika. To zdarzenie klienckie powoduje błąd, jeśli bufor audio wejściowy jest pusty.
Zatwierdzenie bufora audio wejściowego nie generuje odpowiedzi od modelu.
Serwer odpowiada zdarzeniem input_audio_buffer.committed .
Struktura zdarzeń
{
"type": "input_audio_buffer.commit"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .input_audio_buffer.commit |
Zdarzenia serwera
API Voice Live wysyła następujące zdarzenia serwera, aby przekazać klientowi status, odpowiedzi i dane:
| Zdarzenie | Opis |
|---|---|
| error | Wskazuje, że podczas przetwarzania wystąpił błąd |
| ostrzeżenie | Wskazuje, że pojawiło się ostrzeżenie, które nie przerywa płynności rozmowy |
| session.created | Wysyłane, gdy nowa sesja zostanie pomyślnie ustanowiona |
| session.updated | Wysyłane po aktualizacji konfiguracji sesji |
| session.avatar.connecting | Wskazuje, że awatar jest nawiązywane połączenie WebRTC |
| rozmowa.element.utworzony | Wysyłane, gdy do rozmowy dołącza nowy element |
| conversation.item.retrieved | Odpowiedź na prośbę o pobranie z rozmowy z pliku |
| conversation.item.obcięty | Potwierdza obcięcie elementów |
| conversation.item.deleted | Potwierdza usunięcie produktu |
| conversation.item.input_audio_transcription.completed | Transkrypcja audio wejściowa jest zakończona |
| conversation.item.input_audio_transcription.delta | Transkrypcja audio z wejściem strumieniowym |
| conversation.item.input_audio_transcription.failed | Transkrypcja audio wejściowa zawiodła |
| input_audio_buffer.committed | Bufor audio wejściowy służył do przetwarzania |
| input_audio_buffer.wyczyszczone | Bufor audio wejściowy został wyczyszczony |
| input_audio_buffer.speech_started | Wykrycie mowy w wejściowym buforze audio (VAD) |
| input_audio_buffer.speech_stopped | Mowa zakończona w buforze audio wejściowym (VAD) |
| response.created | Rozpoczęto nową generację odpowiedzi |
| response.done | Generowanie odpowiedzi zakończone |
| odpowiedź.output_item.dodany | Nowy element wyjściowy dodany do odpowiedzi |
| odpowiedź.output_element.zakończone | Element wyjściowy jest kompletny |
| response.content_part.added | Nowa część zawartości dodana do produktu wyjściowego |
| response.content_part.done | Część z treścią jest ukończona |
| response.text.delta | Przesyłanie treści tekstowych z modelu |
| response.text.done | Treść tekstu jest kompletna |
| response.audio_transcript.delta | Transkrypcja audio na streamingu |
| response.audio_transcript.done | Transkrypcja audio jest ukończona |
| response.audio.delta | Przesyłanie treści audio z modelu |
| response.audio.done | Zawartość audio jest kompletna |
| response.animation_blendshapes.delta | Dane dotyczące blendshape'ów animacji strumieniowej |
| response.animation_blendshapes.done | Dane dotyczące kształtów mieszanych animacji są kompletne |
| response.audio_timestamp.delta | Informacje o znacznikach czasowych w streamingu audio |
| response.audio_timestamp.done | Informacje o godzinie audio są kompletne |
| response.animation_viseme.delta | Dane wizem animacji strumieniowej |
| response.animation_viseme.done | Dane wizem animacji są kompletne |
| response.function_call_arguments.delta | Argumenty wywołań funkcji strumieniowych |
| response.function_call_arguments.done | Argumenty wywołania funkcji są kompletne |
| mcp_list_tools.in_progress | Lista narzędzi MCP jest w trakcie |
| mcp_list_tools.completed | Lista narzędzi MCP została zakończona |
| mcp_list_tools.failed | Lista narzędzi MCP zawiodła |
| response.mcp_call_arguments.delta | Strumieniowanie argumentów wywołań MCP |
| response.mcp_call_arguments.done | Argumenty wywołań MCP są kompletne |
| response.mcp_call.in_progress | Połączenie MCP jest w toku |
| response.mcp_call.completed | Połączenie MCP zostało zakończone |
| response.mcp_call.failed | Połączenie MCP nie udało się |
| response.foundry_agent_call_arguments.delta | Argumenty dotyczące połączeń agentów odlewni w streamingu |
| response.foundry_agent_call_arguments.done | Argumenty wywołań agentów odlewni są kompletne |
| response.foundry_agent_call.in_progress | Rozmowa z agentem odlewni jest w toku |
| response.foundry_agent_call.completed | Połączenie agenta odlewni zostało zakończone |
| response.foundry_agent_call.failed | Połączenie agenta odlewni zakończyło się niepowodzeniem |
session.created
Wysyłane po pomyślnym nawiązaniu nowej sesji. To pierwsze zdarzenie otrzymane po połączeniu z 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"
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "session.created" |
| sesja | RealtimeResponseSession | Utworzony obiekt sesji |
session.updated
Wysyłane po pomyślnej aktualizacji konfiguracji sesji w odpowiedzi na zdarzenie session.update 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
}
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "session.updated" |
| sesja | RealtimeResponseSession | Zaktualizowany obiekt sesji |
session.avatar.connecting
Wskazuje, że nawiązywane jest połączenie WebRTC z awatarem. To zdarzenie jest wysyłane w odpowiedzi na zdarzenie session.avatar.connect klienta.
Struktura zdarzeń
{
"type": "session.avatar.connecting",
"server_sdp": "<server_sdp>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "session.avatar.connecting" |
element.rozmowy.utworzony
Wysyłane są po dodaniu nowego elementu do rozmowy, czy to poprzez zdarzenie klienta conversation.item.create , czy automatycznie podczas 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?"
}
]
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.created" |
| poprzedni_id_elementu | ciąg | Identyfikacja przedmiotu, po którym został on wstawiony |
| element | RealtimeConversationResponseItem | Utworzony element rozmowy |
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 wydarzenie dla klienta, zawierające żądany punkt rozmowy.
Struktura zdarzeń
{
"type": "conversation.item.retrieved",
"item": {
"id": "item_ABC123",
"object": "realtime.item",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [
{
"type": "audio",
"audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
"transcript": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}
]
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.retrieved" |
| element | RealtimeConversationResponseItem | Odzyskany element rozmowy |
conversation.item.skrócony
Zdarzenie serwera conversation.item.truncated jest zwracane, gdy klient obcina wcześniejszy element wiadomości audio asystenta o zdarzenie conversation.item.truncate . To zdarzenie służy do synchronizacji rozumienia dźwięku przez serwer z odtwarzaniem klienta.
To zdarzenie skraca dźwięk i usuwa transkrypcję tekstu po stronie serwera, aby upewnić się, że nie ma tekstu w kontekście, o którym użytkownik nie wie.
Struktura zdarzeń
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .conversation.item.truncated |
| item_id | ciąg | ID pliku wiadomości asystenta, który został skrócony. |
| content_index | liczba całkowita | Indeks części treści, która została skrócona. |
| zakończenie_audio_ms | liczba całkowita | Czas, do którego dźwięk był skracany, w milisekundach. |
konwersacja.element.usunięty
Wysłane w odpowiedzi na zdarzenie conversation.item.delete klienta, potwierdzające, że określony element został usunięty z rozmowy.
Struktura zdarzeń
{
"type": "conversation.item.deleted",
"item_id": "item_ABC123"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "conversation.item.deleted" |
| item_id | ciąg | Identyfikator usuniętego przedmiotu |
Utworzono odpowiedź
Wysyłany, gdy zaczyna się nowa generacja odpowiedzi. 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
}
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.created" |
| response | Czas rzeczywistyResponse | Utworzony obiekt odpowiedzi |
odpowiedź.zakończono
Wysyłane po zakończeniu generowania odpowiedzi. To wydarzenie zawiera ostateczną odpowiedź ze wszystkimi elementami wyjściowymi i statystykami użytkowania.
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
}
}
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.done" |
| response | Czas rzeczywistyResponse | Ukończony obiekt odpowiedzi |
odpowiedź.obiekt_wyjsciowy.dodano
Wysyłane, gdy do odpowiedzi podczas generowania dodany jest nowy element wyjściowy.
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": []
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.output_item.added" |
| response_id | ciąg | ID odpowiedzi, do której należy ten element |
| output_index | liczba całkowita | Indeks elementu w tablicy wyjściowej odpowiedzi |
| element | RealtimeConversationResponseItem | Dodany element wyjściowy |
odpowiedź.element_wyjściowy.zakończony
Wysyłany po ukończeniu produktu 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."
}
]
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.output_item.done" |
| response_id | ciąg | ID odpowiedzi, do której należy ten element |
| output_index | liczba całkowita | Indeks elementu w tablicy wyjściowej odpowiedzi |
| element | RealtimeConversationResponseItem | Ukończony element wyjściowy |
odpowiedź.element_treści.dodany
Zdarzenie serwera response.content_part.added jest zwracane, gdy nowa część treści zostaje dodana do elementu wiadomości 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": ""
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.content_part.added" |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikator przedmiotu, do którego należy ta część zawartości |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks tej części treści w artykule |
| część | RealtimeContentPart | Część z treścią, która została dodana |
odpowiedź.część_zawartości.zakończone
Zdarzenie serwera response.content_part.done jest zwracane, gdy część treści zakończy transmisję w elemencie wiadomości asystenta.
To zdarzenie jest również zwracane, gdy odpowiedź jest przerwana, niepełna 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."
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.content_part.done" |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikator przedmiotu, do którego należy ta część zawartości |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks tej części treści w artykule |
| część | RealtimeContentPart | Część ukończona |
response.text.delta
Przesyłanie treści tekstowych z modelu. Wysyłane stopniowo, gdy model generuje tekst.
Struktura zdarzeń
{
"type": "response.text.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "Hello! I'm"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.text.delta" |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
| delta | ciąg | Zawartość tekstu przyrostowego |
response.text.done
Wysyłane po zakończeniu generowania treści tekstowych.
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?"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.text.done" |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
| SMS | ciąg | Pełna treść tekstu |
response.audio.delta
Streaming treści audio z modelu. Dźwięk jest dostarczany jako dane kodowane w base64.
Struktura zdarzeń
{
"type": "response.audio.delta",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0,
"delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.audio.delta" |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
| delta | ciąg | Fragment danych audio kodowany w bazie 64 |
response.audio.done
Wysyłane po zakończeniu generowania treści audio.
Struktura zdarzeń
{
"type": "response.audio.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.audio.done" |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
response.audio_transcript.delta
Transkrypcja wygenerowanej treści audio na streaming.
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"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.audio_transcript.delta" |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treś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?"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "response.audio_transcript.done" |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
| transkrypcja | ciąg | Pełny tekst transkrypcji |
rozmowa.element.transkrypcja_dźwięku_wejściowego.zakończona
Zdarzenie serwera conversation.item.input_audio_transcription.completed jest wynikiem transkrypcji audio dla mowy zapisanej do bufora audio.
Transkrypcja rozpoczyna się, gdy bufor audio wejściowy zostanie zatwierdzony przez klienta lub serwer (w trybie pracy server_vad ). Transkrypcja działa asynchronicznie wraz z tworzeniem odpowiedzi, więc to zdarzenie może nastąpić przed lub po zdarzeniach odpowiedzi.
Modele API w czasie rzeczywistym akceptują dźwięk natywnie, dlatego transkrypcja wejściowa jest osobnym procesem uruchamianym na osobnym 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 przybliżony przewodnik.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .conversation.item.input_audio_transcription.completed |
| item_id | ciąg | ID elementu wiadomości użytkownika zawierającego dźwięk. |
| content_index | liczba całkowita | Indeks części treści zawierającej dźwięk. |
| transkrypcja | ciąg | Przepisany tekst. |
konwersacja.element.wejście_transkrypcja_dźwiękowa.delta
Zdarzenie serwera conversation.item.input_audio_transcription.delta jest zwracane po skonfigurowaniu transkrypcji wejściowego audio i trwającym żądaniu transkrypcji wiadomości użytkownika. To wydarzenie dostarcza częściowych wyników transkrypcji, gdy tylko staną się dostępne.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.delta",
"item_id": "<item_id>",
"content_index": 0,
"delta": "<delta>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .conversation.item.input_audio_transcription.delta |
| item_id | ciąg | ID elementu wiadomości użytkownika. |
| content_index | liczba całkowita | Indeks części treści zawierającej dźwięk. |
| delta | ciąg | Tekst transkrypcji inkrementalnej. |
transkrypcja.audio.danych.wejściowych.konwersacji.niepowiódła.się
Zdarzenie serwera conversation.item.input_audio_transcription.failed jest zwracane po skonfigurowaniu transkrypcji audio wejściowej, a żądanie transkrypcji wiadomości użytkownika zakończyło się niepowodzeniem. To zdarzenie jest oddzielne od pozostałych error , 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>"
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .conversation.item.input_audio_transcription.failed |
| item_id | ciąg | ID elementu wiadomości użytkownika. |
| content_index | liczba całkowita | Indeks części treści zawierającej dźwięk. |
| błąd | obiekt | Szczegóły błędu w transkrypcji. Zobacz właściwości zagnieżdżone w następnej tabeli. |
Właściwości błędu
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Taki rodzaj błędu. |
| kod | ciąg | Kod błędu, jeśli taki jest. |
| komunikat | ciąg | Czytelny komunikat o błędzie. |
| param | ciąg | Parametr związany z błędem, jeśli występuje. |
response.animation_blendshapes.delta
Zdarzenie serwera response.animation_blendshapes.delta jest zwracane, gdy model generuje dane o kształtach mieszania animacji jako część odpowiedzi. To zdarzenie dostarcza przyrostowe dane blendshape, gdy tylko 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]
...
]
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.animation_blendshapes.delta |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
| frame_index | liczba całkowita | Indeks pierwszej klatki w tej partii klatek |
| Ramki | tablica tablicy float | Tablica ramek blendshape, każda klatka to tablica wartości blendshape |
response.animation_blendshapes.done
Zdarzenie serwera response.animation_blendshapes.done jest zwracane, gdy model zakończy generowanie danych o animacyjnych kształtach blendu w ramach odpowiedzi.
Struktura zdarzeń
{
"type": "response.animation_blendshapes.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.animation_blendshapes.done |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
response.audio_timestamp.delta
Zdarzenie serwera response.audio_timestamp.delta jest zwracane, gdy model generuje dane z czasowym dźwięku jako część odpowiedzi. To zdarzenie dostarcza przyrostowe dane czasowe do wyrównania dźwięku i tekstu, gdy tylko będą 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"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.audio_timestamp.delta |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
| audio_offset_ms | liczba całkowita | Przesunięcie dźwięku w milisekundach od początku nagrania |
| audio_duration_ms | liczba całkowita | Czas trwania segmentu audio w milisekundach |
| SMS | ciąg | Segment tekstowy odpowiadający temu znacznikowi czasu audio |
| timestamp_type | ciąg | Rodzaj znacznika czasu, obecnie obsługiwany jest tylko "word" |
response.audio_timestamp.done
Wysyłane po zakończeniu generowania znaczników czasu dźwięku.
Struktura zdarzeń
{
"type": "response.audio_timestamp.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.audio_timestamp.done |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
response.animation_viseme.delta
Zdarzenie serwera response.animation_viseme.delta jest zwracane, gdy model generuje dane wizem animacji jako część odpowiedzi. To wydarzenie dostarcza stopniowe dane wizem, gdy tylko będą dostępne.
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
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.animation_viseme.delta |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
| audio_offset_ms | liczba całkowita | Przesunięcie dźwięku w milisekundach od początku nagrania |
| viseme_id | liczba całkowita | ID wizemy odpowiadający kształtowi ust do animacji |
response.animation_viseme.done
Zdarzenie serwera response.animation_viseme.done jest zwracane, gdy model zakończy generowanie danych wisem animacji jako część odpowiedzi.
Struktura zdarzeń
{
"type": "response.animation_viseme.done",
"response_id": "resp_ABC123",
"item_id": "item_DEF456",
"output_index": 0,
"content_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.animation_viseme.done |
| response_id | ciąg | ID odpowiedzi |
| item_id | ciąg | Identyfikacja przedmiotu |
| output_index | liczba całkowita | Indeks pozycji w odpowiedzi |
| content_index | liczba całkowita | Indeks części treści |
błąd
Zdarzenie serwera error jest zwracane, gdy wystąpi błąd, który może być problemem klienta lub serwera. Większość błędów jest do odzyskania, a sesja pozostaje otwarta.
Struktura zdarzeń
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .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
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Taki rodzaj błędu. Na przykład "invalid_request_error" i "server_error" to typy błędów. |
| kod | ciąg | Kod błędu, jeśli taki jest. |
| komunikat | ciąg | Czytelny komunikat o błędzie. |
| param | ciąg | Parametr związany z błędem, jeśli występuje. |
| event_id | ciąg | ID zdarzenia klienta, które spowodowało błąd, jeśli dotyczy. |
ostrzeżenie
Zdarzenie serwera warning jest zwracane, gdy pojawi się ostrzeżenie, które nie przerywa płynności rozmowy. Ostrzeżenia są informacyjne, a sesja przebiega normalnie.
Struktura zdarzeń
{
"type": "warning",
"warning": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .warning |
| ostrzeżenie | obiekt | Szczegóły ostrzeżenia. Zobacz właściwości zagnieżdżone w następnej tabeli. |
Właściwości ostrzeżenia
| Pole | Typ | Opis |
|---|---|---|
| komunikat | ciąg | Czytelny dla człowieka komunikat ostrzegawczy. |
| kod | ciąg | Optional. Znak ostrzegawczy, jeśli taki jest. |
| param | ciąg | Optional. Parametr związany z ostrzeżeniem, jeśli występuje. |
input_audio_buffer.wyczyszczony
Zdarzenie serwera input_audio_buffer.cleared jest zwracane, gdy klient oczyszcza bufor audio wejściowy za pomocą input_audio_buffer.clear zdarzenia.
Struktura zdarzeń
{
"type": "input_audio_buffer.cleared"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .input_audio_buffer.cleared |
input_audio_buffer.committed
Zdarzenie serwera input_audio_buffer.committed jest zwracane, gdy wejściowy bufor audio zostaje zatwierdzony, czy to przez klienta, czy automatycznie w trybie serwera VAD. Właściwością item_id jest identyfikator utworzonego elementu wiadomości użytkownika. W ten sposób zdarzenie conversation.item.created jest również wysyłane do klienta.
Struktura zdarzeń
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .input_audio_buffer.committed |
| poprzedni_id_elementu | ciąg | ID poprzedniego elementu, po którym wstawiany jest nowy element. |
| item_id | ciąg | ID utworzonego elementu wiadomości użytkownika. |
input_audio_buffer.rozpoczęcie_mowy
Zdarzenie serwera input_audio_buffer.speech_started jest zwracane w server_vad trybie po wykryciu mowy w buforze audio. To zdarzenie może wystąpić za każdym razem, gdy do bufora dodany jest dźwięk (chyba że mowa jest już wykryta).
Uwaga / Notatka
Klient może chcieć użyć tego zdarzenia do przerwania odtwarzania dźwięku lub przekazania użytkownikowi wizualnej informacji zwrotnej.
Klient powinien spodziewać się zdarzenia, input_audio_buffer.speech_stopped gdy mowa ustanie. Właściwością jest item_id identyfikator elementu wiadomości użytkownika utworzonego po zatrzymaniu mowy. Jest również uwzględnione item_id w zdarzeniu input_audio_buffer.speech_stopped , chyba że klient ręcznie zatwierdza bufor audio podczas aktywacji VAD.
Struktura zdarzeń
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .input_audio_buffer.speech_started |
| audio_start_ms | liczba całkowita | Milisekundy od początku całego zapisu audio do bufora podczas sesji, kiedy po raz pierwszy wykryto mowę. Ta właściwość odpowiada rozpoczęciu dźwięku wysyłanego do modelu, a zatem obejmuje konfigurację prefix_padding_ms w sesji. |
| item_id | ciąg | Identyfikator elementu wiadomości użytkownika utworzony, gdy mowa się zatrzymuje. |
input_audio_buffer.speech_stopped
Zdarzenie serwera input_audio_buffer.speech_stopped jest zwracane w server_vad trybie po wykryciu końca mowy w buforze audio.
Serwer wysyła również zdarzenie conversation.item.created z elementem wiadomości użytkownika utworzonym z bufora audio.
Struktura zdarzeń
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .input_audio_buffer.speech_stopped |
| zakończenie_audio_ms | liczba całkowita | Milisekundy od rozpoczęcia sesji, kiedy mowa ustała. Ta właściwość odpowiada końcowi dźwięku wysyłanego do modelu, a zatem obejmuje konfigurację min_silence_duration_ms w sesji. |
| item_id | ciąg | ID utworzonego elementu wiadomości użytkownika. |
limity_stanow.zaktualizowane
Zdarzenie serwera rate_limits.updated jest emitowane na początku odpowiedzi, aby wskazać zaktualizowane limity prędkości.
Gdy odpowiedź jest tworzona, niektóre tokeny są zarezerwowane dla tokenów wyjściowych. Limity stawek pokazane tutaj odzwierciedlają tę rezerwację, która następnie jest odpowiednio korygowana po zakończeniu odpowiedzi.
Struktura zdarzeń
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .rate_limits.updated |
| limity prędkości | array RealtimeRateLimitsItem | Lista informacji o limicie stawek. |
response.audio.delta
Zdarzenie serwera response.audio.delta jest zwracane po aktualizacji dźwięku generowanego przez model.
Struktura zdarzeń
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.audio.delta |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikacja przedmiotu. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości przedmiotu. |
| delta | ciąg | Delta danych audio kodowana przez Base64. |
response.audio.done
Zdarzenie serwera response.audio.done jest zwracane po zakończeniu dźwięku generowanego przez model.
To zdarzenie jest również zwracane, gdy odpowiedź jest przerwana, niepełna lub anulowana.
Struktura zdarzeń
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.audio.done |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikacja przedmiotu. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości przedmiotu. |
response.audio_transcript.delta
Zdarzenie serwera response.audio_transcript.delta jest zwracane, gdy transkrypcja wygenerowana przez model jest aktualizowana.
Struktura zdarzeń
{
"type": "response.audio_transcript.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.audio_transcript.delta |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikacja przedmiotu. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości przedmiotu. |
| delta | ciąg | Delta transkrypcji. |
response.audio_transcript.done
Zdarzenie serwera response.audio_transcript.done jest zwracane, gdy transkrypcja wygenerowana przez model audio zakończy transmisję strumieniową.
To zdarzenie jest również zwracane, gdy odpowiedź jest przerwana, niepełna 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>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.audio_transcript.done |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikacja przedmiotu. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości przedmiotu. |
| transkrypcja | ciąg | Ostateczna transkrypcja nagrania. |
response.function_call_arguments.delta
Zdarzenie serwera response.function_call_arguments.delta jest zwracane po aktualizacji argumentów wywołań funkcji generowanych 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>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.function_call_arguments.delta |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | ID funkcji wywołanej elementem. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| call_id | ciąg | ID 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 generowanych przez model zakończą transmisję.
To zdarzenie jest również zwracane, gdy odpowiedź jest przerwana, niepełna 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>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.function_call_arguments.done |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | ID funkcji wywołanej elementem. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| call_id | ciąg | ID wywołania funkcji. |
| Argumenty | ciąg | Ostatnie argumenty jako ciąg JSON. |
mcp_list_tools.w_trakcie
Zdarzenie serwera mcp_list_tools.in_progress jest zwracane, gdy usługa zaczyna wymieniać dostępne narzędzia z serwera MCP.
Struktura zdarzeń
{
"type": "mcp_list_tools.in_progress",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .mcp_list_tools.in_progress |
| item_id | ciąg | ID MCP wymienia element narzędzi w trakcie przetwarzania. |
mcp_list_tools.ukończony
Zdarzenie serwera mcp_list_tools.completed jest zwracane, gdy usługa zakończy listę dostępnych narzędzi z serwera MCP.
Struktura zdarzeń
{
"type": "mcp_list_tools.completed",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .mcp_list_tools.completed |
| item_id | ciąg | ID MCP wymienia element narzędzi w trakcie przetwarzania. |
mcp_list_tools.nie powiodło się
Zdarzenie serwera mcp_list_tools.failed jest zwracane, gdy usługa nie wypisuje dostępnych narzędzi z serwera MCP.
Struktura zdarzeń
{
"type": "mcp_list_tools.failed",
"item_id": "<mcp_list_tools_item_id>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .mcp_list_tools.failed |
| item_id | ciąg | ID MCP wymienia element narzędzi w trakcie przetwarzania. |
response.mcp_call_arguments.delta
Zdarzenie serwera response.mcp_call_arguments.delta jest zwracane, gdy argumenty wywołania narzędzia MCP generowane przez model są aktualizowane.
Struktura zdarzeń
{
"type": "response.mcp_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"delta": "<delta>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.mcp_call_arguments.delta |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | ID pozycji wywoławczą narzędzia MCP. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej 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 generowanego przez model zakończą transmisję.
Struktura zdarzeń
{
"type": "response.mcp_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"arguments": "<arguments>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.mcp_call_arguments.done |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | ID pozycji wywoławczą narzędzia MCP. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| Argumenty | 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
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.mcp_call.in_progress |
| item_id | ciąg | ID pozycji wywoławczą narzędzia MCP. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej 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
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.mcp_call.completed |
| item_id | ciąg | ID pozycji wywoławczą narzędzia MCP. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
odpowiedź.mcp_wywołanie.niepowiodło_się
Zdarzenie serwera response.mcp_call.failed jest zwracane, gdy wywołanie narzędzia MCP nie udaje się.
Struktura zdarzeń
{
"type": "response.mcp_call.failed",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.mcp_call.failed |
| item_id | ciąg | ID pozycji wywoławczą narzędzia MCP. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
response.foundry_agent_call_arguments.delta
Zdarzenie serwera response.foundry_agent_call_arguments.delta jest zwracane, gdy zaktualizowane są argumenty wywołań agenta foundry generowanego przez model.
Struktura zdarzeń
{
"type": "response.foundry_agent_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"delta": "<delta>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.foundry_agent_call_arguments.delta |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator pozycji agenta odlewni. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| delta | ciąg | Argumenty delta jako ciąg JSON. |
response.foundry_agent_call_arguments.done
Zdarzenie serwera response.foundry_agent_call_arguments.done jest zwracane, gdy wywołane argumenty wywołań agenta foundry generowanego przez model zakończą transmisję.
Struktura zdarzeń
{
"type": "response.foundry_agent_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"arguments": "<arguments>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.foundry_agent_call_arguments.done |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikator pozycji agenta odlewni. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| Argumenty | ciąg | Ostatnie argumenty jako ciąg JSON. |
response.foundry_agent_call.in_progress
Zdarzenie serwera response.foundry_agent_call.in_progress jest zwracane, gdy wywołanie agenta foundry rozpoczyna przetwarzanie.
Struktura zdarzeń
{
"type": "response.foundry_agent_call.in_progress",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.foundry_agent_call.in_progress |
| item_id | ciąg | Identyfikator pozycji agenta odlewni. |
| agent_response_id | ciąg | Odpowiedź ID od agenta odlewni. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
response.foundry_agent_call.completed
Zdarzenie serwera response.foundry_agent_call.completed jest zwracane, gdy wywołanie agenta foundry zakończy się pomyślnie.
Struktura zdarzeń
{
"type": "response.foundry_agent_call.completed",
"item_id": "<item_id>",
"agent_response_id": "<agent_response_id>",
"output_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.foundry_agent_call.completed |
| item_id | ciąg | Identyfikator pozycji agenta odlewni. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
response.foundry_agent_call.failed
Zdarzenie serwera response.foundry_agent_call.failed jest zwracane, gdy wywołanie agenta foundry nie uda się.
Struktura zdarzeń
{
"type": "response.foundry_agent_call.failed",
"item_id": "<item_id>",
"output_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.foundry_agent_call.failed |
| item_id | ciąg | Identyfikator pozycji agenta odlewni. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
odpowiedź.obiekt_wyjsciowy.dodano
Zdarzenie serwera response.output_item.added jest zwracane, gdy podczas generowania odpowiedzi zostanie utworzony nowy element.
Struktura zdarzeń
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.output_item.added |
| response_id | ciąg | ID odpowiedzi, do której należy dany przedmiot. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| element | RealtimeConversationResponseItem | Dodany przedmiot. |
odpowiedź.element_wyjściowy.zakończony
Zdarzenie serwera response.output_item.done jest zwracane, gdy przedmiot zakończy transmisję.
To zdarzenie jest również zwracane, gdy odpowiedź jest przerwana, niepełna lub anulowana.
Struktura zdarzeń
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.output_item.done |
| response_id | ciąg | ID odpowiedzi, do której należy dany przedmiot. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| element | RealtimeConversationResponseItem | Produkt, który kończy streamowanie. |
response.text.delta
Zdarzenie serwera response.text.delta jest zwracane po aktualizacji tekstu generowanego przez model. Tekst odpowiada text części treści w pozycji wiadomości asystenta.
Struktura zdarzeń
{
"type": "response.text.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.text.delta |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikacja przedmiotu. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości przedmiotu. |
| delta | ciąg | Delta tekstu. |
response.text.done
Zdarzenie serwera response.text.done jest zwracane, gdy tekst generowany przez model zakończy przesyłanie strumieniowe. Tekst odpowiada text części treści w pozycji wiadomości asystenta.
To zdarzenie jest również zwracane, gdy odpowiedź jest przerwana, niepełna lub anulowana.
Struktura zdarzeń
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
Properties
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ zdarzenia musi być .response.text.done |
| response_id | ciąg | Identyfikator odpowiedzi. |
| item_id | ciąg | Identyfikacja przedmiotu. |
| output_index | liczba całkowita | Indeks pozycji wyjściowej w odpowiedzi. |
| content_index | liczba całkowita | Indeks części zawartości w tablicy zawartości przedmiotu. |
| SMS | ciąg | Ostatnia treść tekstu. |
Składniki
Formaty audio
Format audio w czasie rzeczywistym
Podstawowy format audio używany do dźwięku wejściowego.
Dozwolone wartości:
-
pcm16- 16-bitowy format audio PCM -
g711_ulaw- G.711 format audio μ-law -
g711_alaw- G.711 Format audio A-law
RealtimeOutputAudioFormat
Format audio używany do 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- G.711 format audio μ-law (mu-law) z częstotliwością próbkowania 8kHz -
g711_alaw- G.711 Format audio A-law przy częstotliwości próbkowania 8kHz
Ustawienia transkrypcji wejścia audio w czasie rzeczywistym
Konfiguracja do transkrypcji audio wejściowej.
| Pole | Typ | Opis |
|---|---|---|
| model | ciąg | Model transkrypcji. Wspierane przez gpt-realtime i gpt-realtime-mini:whisper-1, gpt-4o-transcribe, , gpt-4o-mini-transcribe. gpt-4o-transcribe-diarizeWspierane przez wszystkie inne modele i agenty: azure-speech, mai-transcribe-1 (podgląd) |
| język | ciąg | Opcjonalny kod językowy w BCP-47 (na przykład en-US), lub ISO-639-1 (na przykład en), albo wielojęzykowy z automatycznym wykrywaniem (na przykład en,zh).Zobacz Azure języki wspierane w zamianie mowy na tekst aby poznać zalecane użycie tego ustawienia. |
| custom_speech | obiekt | Opcjonalna konfiguracja dla niestandardowych modeli mowy, obowiązuje tylko dla azure-speech modelu. |
| phrase_list | string[] | Opcjonalna lista fraz, która sugeruje rozpoznawanie błędu, jest ważna tylko dla azure-speech modelu. |
| monit | ciąg | Opcjonalny tekst promptu do sterowania transkrypcją, ważny tylko dla whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe i gpt-4o-transcribe-diarize modeli. |
RealtimeInputAudioNoiseReductionSettings
Może to być:
RealtimeOpenAINoiseReduction
Konfiguracja redukcji szumów OpenAI z wyraźnym polem typu, dostępna tylko dla gpt-realtime i gpt-realtime-mini models.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg |
near_field Lub far_field |
RealtimeAzureDeepNoiseSuppression
Konfiguracja redukcji szumów audio wejściowych.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "azure_deep_noise_suppression" |
RealtimeInputAudioEchoCancellationSettings
Konfiguracja anulacji echa dla przetwarzania audio po stronie serwera.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "server_echo_cancellation" |
Konfiguracja głosu
RealtimeVoice
Połączenie wszystkich obsługiwanych konfiguracji głosowych.
Może to być:
- Obiekt RealtimeOpenAIVoice
- Obiekt RealtimeAzureVoice
RealtimeOpenAIVoice
Konfiguracja głosowa OpenAI z wyraźnym polem typu.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "openai" |
| nazwa | ciąg | Nazwa głosowa OpenAI: alloy, ash, ballad, coral, echo, , sage, shimmer, verse, , marincedar |
RealtimeAzureVoice
Podstawowe informacje na potrzeby konfiguracji głosowych platformy Azure. Jest to związek rozróżniający o różnych typach:
RealtimeAzureStandardVoice
Standardowa konfiguracja głosu platformy Azure.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "azure-standard" |
| nazwa | ciąg | Imię głosu (nie może być puste) |
| temperatura | number | Optional. Temperatura między 0,0 a 1,0 |
| custom_lexicon_url | ciąg | Optional. URL do niestandardowego leksykonu |
| custom_text_normalization_url | ciąg | Optional. URL do niestandardowej normalizacji tekstu |
| prefer_locales | string[] | Optional. Preferowane ustawienia regionalne Wolisz, aby miejsca zmieniały akcenty języków. Jeśli wartość nie jest ustawiona, TTS używa domyślnego akcentu każdego języka. Na przykład, gdy TTS mówi po angielsku, używa amerykańskiego akcentu angielskiego. A mówiąc po hiszpańsku, używa meksykańskiego akcentu hiszpańskiego. Jeśli ustawimy prefer_locales na ["en-GB", "es-ES"], angielski akcent to brytyjski angielski, a hiszpański to europejski hiszpański. TTS potrafi też mówić innymi językami, takimi jak francuski, chiński itd. |
| regionalny | ciąg | Optional. Specyfikacja ustawień regionalnych Wymusz lokalizację dla wyjścia TTS. Jeśli nie jest ustawione, TTS zawsze korzysta z podanego miejsca do mówienia. Na przykład ustaw lokalizację na en-US, TTS zawsze używa akcentu amerykańskiego angielskiego do mówienia treści tekstowej, nawet jeśli tekst jest w innym języku. A TTS wygeneruje ciszę, jeśli tekst jest po chińsku. |
| styl | ciąg | Optional. Styl głosu |
| prezentacja | ciąg | Optional. Korekta skoku |
| Stawka | ciąg | Optional. Regulacja częstotliwości mowy |
| volume | ciąg | Optional. Korekta głośności |
RealtimeAzureCustomVoice
Azure custom voice configuration (preferowane dla custom voices).
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "azure-custom" |
| nazwa | ciąg | Imię głosu (nie może być puste) |
| endpoint_id | ciąg | Identyfikator końcowy (nie może być pusty) |
| temperatura | number | Optional. Temperatura między 0,0 a 1,0 |
| custom_lexicon_url | ciąg | Optional. URL do niestandardowego leksykonu |
| custom_text_normalization_url | ciąg | Optional. URL do niestandardowej normalizacji tekstu |
| prefer_locales | string[] | Optional. Preferowane ustawienia regionalne Wolisz, aby miejsca zmieniały akcenty języków. Jeśli wartość nie jest ustawiona, TTS używa domyślnego akcentu każdego języka. Na przykład, gdy TTS mówi po angielsku, używa amerykańskiego akcentu angielskiego. A mówiąc po hiszpańsku, używa meksykańskiego akcentu hiszpańskiego. Jeśli ustawimy prefer_locales na ["en-GB", "es-ES"], angielski akcent to brytyjski angielski, a hiszpański to europejski hiszpański. TTS potrafi też mówić innymi językami, takimi jak francuski, chiński itd. |
| regionalny | ciąg | Optional. Specyfikacja ustawień regionalnych Wymusz lokalizację dla wyjścia TTS. Jeśli nie jest ustawione, TTS zawsze korzysta z podanego miejsca do mówienia. Na przykład ustaw lokalizację na en-US, TTS zawsze używa akcentu amerykańskiego angielskiego do mówienia treści tekstowej, nawet jeśli tekst jest w innym języku. A TTS wygeneruje ciszę, jeśli tekst jest po chińsku. |
| styl | ciąg | Optional. Styl głosu |
| prezentacja | ciąg | Optional. Korekta skoku |
| Stawka | ciąg | Optional. Regulacja częstotliwości mowy |
| volume | ciąg | Optional. 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.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "azure-personal" |
| nazwa | ciąg | Imię głosu (nie może być puste) |
| temperatura | number | Optional. Temperatura między 0,0 a 1,0 |
| model | ciąg | Model bazowy bazowy: DragonLatestNeural, DragonHDOmniLatestNeural, MAI-Voice-1 |
| custom_lexicon_url | ciąg | Optional. URL do niestandardowego leksykonu |
| custom_text_normalization_url | ciąg | Optional. URL do niestandardowej normalizacji tekstu |
| prefer_locales | string[] | Optional. Preferowane ustawienia regionalne Wolisz, aby miejsca zmieniały akcenty języków. Jeśli wartość nie jest ustawiona, TTS używa domyślnego akcentu każdego języka. Na przykład, gdy TTS mówi po angielsku, używa amerykańskiego akcentu angielskiego. A mówiąc po hiszpańsku, używa meksykańskiego akcentu hiszpańskiego. Jeśli ustawimy prefer_locales na ["en-GB", "es-ES"], angielski akcent to brytyjski angielski, a hiszpański to europejski hiszpański. TTS potrafi też mówić innymi językami, takimi jak francuski, chiński itd. |
| regionalny | ciąg | Optional. Specyfikacja ustawień regionalnych Wymusz lokalizację dla wyjścia TTS. Jeśli nie jest ustawione, TTS zawsze korzysta z podanego miejsca do mówienia. Na przykład ustaw lokalizację na en-US, TTS zawsze używa akcentu amerykańskiego angielskiego do mówienia treści tekstowej, nawet jeśli tekst jest w innym języku. A TTS wygeneruje ciszę, jeśli tekst jest po chińsku. |
| prezentacja | ciąg | Optional. Korekta skoku |
| Stawka | ciąg | Optional. Regulacja częstotliwości mowy |
| volume | ciąg | Optional. Korekta głośności |
Wykrywanie obrotu
DetekcjaZakrętówWCzasieRzeczywistym
Konfiguracja wykrywania skrętów. Jest to zrzeszenie z dyskryminacją wspierającą wiele typów VAD.
RealtimeServerVAD
Podstawowe wykrywanie skrętów oparte na VAD.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "server_vad" |
| próg | float | Optional. Próg aktywacji (0,0-1,0) (domyślnie: 0,5) |
| prefix_padding_ms | liczba całkowita | Optional. Wypełnienie dźwięku przed rozpoczęciem mowy (domyślnie: 300) |
| silence_duration_ms | liczba całkowita | Optional. Czas trwania ciszy do wykrywania mowy (domyślnie: 500) |
| speech_duration_ms | liczba całkowita | Optional. Minimalny czas mowy (domyślnie: 200) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Konfiguracja wykrywania końca wypowiedzi |
| utwórz_odpowiedź | boolean | Optional. Włącz lub wyłącz, czy odpowiedź jest generowana (domyślnie: prawdziwa). |
| odpowiedź na przerwanie | boolean | Optional. Włącz lub wyłącz przerwanie wejścia (domyślnie: true). |
| auto_truncate | boolean | Optional. Automatyczne obcięcie przy przerwaniu (domyślnie: false) |
RealtimeOpenAISemanticVAD
Konfiguracja semantyczna VAD OpenAI, która wykorzystuje model do określenia, kiedy użytkownik skończył mówić. Dostępne tylko dla gpt-realtime modeli gpt-realtime-mini i modeli.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "semantic_vad" |
| zapał | ciąg | Optional. Jest to sposób kontrolowania, jak bardzo model chce przerywać użytkownika, dostosowując maksymalny czas oczekiwania. W trybie transkrypcji, nawet jeśli model nie odpowiada, wpływa to na sposób podziału dźwięku. Dozwolone są następujące wartości: - auto(domyślne) jest równoważne ,medium- low Pozwala użytkownikowi poświęcić czas na wypowiedzenie,- high Zredukuję dźwięk jak najszybciej.Jeśli chcesz, aby model częściej odpowiadał w trybie konwersacji lub szybciej zwracał zdarzenia transkrypcyjne w trybie transkrypcji, możesz ustawić zapał na . highZ drugiej strony, jeśli chcesz, aby użytkownik mógł mówić bez przerw w trybie rozmowy lub jeśli chcesz większe fragmenty transkrypcji w trybie transkrypcji, możesz ustawić gotowość na . low |
| utwórz_odpowiedź | boolean | Optional. Włącz lub wyłącz, czy odpowiedź jest generowana (domyślnie: prawdziwa). |
| odpowiedź na przerwanie | boolean | Optional. Włącz lub wyłącz przerwanie wejścia (domyślnie: true). |
RealtimeAzureSemanticVAD
Azure semantyczny VAD, który określa, kiedy użytkownik zaczyna mówić, korzystając z modelu semantycznego mowy, zapewniając bardziej odporne wykrywanie w szumowych środowiskach.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "azure_semantic_vad" |
| próg | float | Optional. Próg aktywacji (domyślnie: 0,5) |
| prefix_padding_ms | liczba całkowita | Optional. Wypełnienie dźwięku przed mową (domyślnie: 300) |
| silence_duration_ms | liczba całkowita | Optional. Czas trwania ciszy na koniec mowy (domyślnie: 500) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Konfiguracja detekcji EOU |
| speech_duration_ms | liczba całkowita | Optional. Minimalny czas trwania mowy (domyślnie: 80) |
| remove_filler_words | boolean | Optional. Usuń wypełniacze (domyślnie: fałszywe) |
| Języki | string[] | Optional. Obsługuje język angielski. Inne języki są ignorowane (domyślnie: brak). |
| utwórz_odpowiedź | boolean | Optional. Włącz lub wyłącz, czy odpowiedź jest generowana (domyślnie: prawdziwa). |
| odpowiedź na przerwanie | boolean | Optional. Włącz lub wyłącz przerwanie wejścia (domyślnie: true). |
| auto_truncate | boolean | Optional. Automatyczne obcięcie przy przerwaniu (domyślnie: false) |
RealtimeAzureSemanticVADMultilingual
Azure semantyczny vaD (wariant domyślny).
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "azure_semantic_vad_multilingual" |
| próg | float | Optional. Próg aktywacji (domyślnie: 0,5) |
| prefix_padding_ms | liczba całkowita | Optional. Wypełnienie dźwięku przed mową (domyślnie: 300) |
| silence_duration_ms | liczba całkowita | Optional. Czas trwania ciszy na koniec mowy (domyślnie: 500) |
| end_of_utterance_detection | RealtimeEOUDetection | Optional. Konfiguracja detekcji EOU |
| speech_duration_ms | liczba całkowita | Optional. Minimalny czas trwania mowy (domyślnie: 80) |
| remove_filler_words | boolean | Optional. Usuń wypełniacze (domyślnie: fałszywe) |
| Języki | string[] | Optional. Obsługuje angielski, hiszpański, francuski, włoski, niemiecki (DE), japoński, portugalski, chiński, koreański, hindi. Inne języki są ignorowane (domyślnie: brak). |
| utwórz_odpowiedź | boolean | Optional. Włącz lub wyłącz, czy odpowiedź jest generowana (domyślnie: prawdziwa). |
| odpowiedź na przerwanie | boolean | Optional. Włącz lub wyłącz przerwanie wejścia (domyślnie: true). |
| auto_truncate | boolean | Optional. Automatyczne obcięcie przy przerwaniu (domyślnie: false) |
RealtimeEOUDetection
Azure End-of-Utterance (EOU) może wskazywać, kiedy użytkownik końcowy przestaje mówić, dopuszczając naturalne pauzy. Wykrywanie końca wypowiedzi może znacząco zmniejszyć liczbę przedwczesnych sygnałów końca skrętu bez zwiększania opóźnień widocznych przez użytkownika.
| Pole | Typ | Opis |
|---|---|---|
| model | ciąg | Może wspierać semantic_detection_v1 angielski lub semantic_detection_v1_multilingual angielski, hiszpański, francuski, włoski, niemiecki (DE), japoński, portugalski, chiński, koreański, hindi |
| threshold_level | ciąg | Optional. Poziom progu wykrywania (low, medium, high i ), defaultdomyślne medium jest ustawione. Przy niższym ustawieniu prawdopodobieństwo, że zdanie jest kompletne, będzie wyższe. |
| limit_czasu_ms | number | Optional. Maksymalny czas w milisekundach na kolejne słowa użytkownika. Domyślnie ustawia się na 1000 ms. |
Konfiguracja awatara
RealtimeAvatarConfig
Konfiguracja streamingu awatara i zachowanie.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Optional. Typ awatara. Dozwolone wartości: video-avatar, photo-avatar. Domyślnie to video-avatar |
| ice_servers | RealtimeIceServer[] | Optional. Serwery ICE dla WebRTC |
| znak | ciąg | Imię postaci lub identyfikator awatara |
| styl | ciąg | Optional. Styl Avatara (emocjonalny ton, styl mówienia) |
| Dostosowane | boolean | To, czy awatar jest spersonalizowany |
| model | ciąg | Optional. Podstawowa nazwa modelu awatara zdjęciowego, wymagana, jeśli typ to photo-avatar, ważna wartość to vasa-1 |
| wideo | RealtimeVideoParams | Optional. Konfiguracja wideo |
| scena | RealtimeAvatarScene | Optional. Konfiguracja poziomu powiększenia, pozycji, rotacji i amplitudy ruchu awatara w ramce wideo |
| output_protocol | ciąg | Optional. Protokół wyjściowy do streamingu awatara. Dozwolone wartości: websocket oraz webrtc. Domyślnie to webrtc |
| output_audit_audio | boolean | Optional. Po włączeniu przesyła audio audytowe przez WebSocket do celów przeglądu i debugowania, nawet gdy wyjście awatara jest dostarczane przez WebRTC. Domyślnie to false |
RealtimeIceServer
Konfiguracja serwera ICE do negocjacji połączenia WebRTC.
| Pole | Typ | Opis |
|---|---|---|
| adresy URL | string[] | Adresy URL serwerów ICE (punkty końcowe TURN lub STUN) |
| nazwa użytkownika | ciąg | Optional. Nazwa użytkownika do uwierzytelniania |
| poświadczenie | ciąg | Optional. Uwierzytelnianie uwierzytelniające |
RealtimeVideoParams
Parametry streamingu wideo dla awatara.
| Pole | Typ | Opis |
|---|---|---|
| szybkość transmisji bitów | liczba całkowita | Optional. Bitrate w bitach na sekundę (domyślnie: 2000000) |
| koder-dekoder | ciąg | Optional. Kodek wideo, obecnie tylko h264 (domyślnie: h264) |
| przycinać | RealtimeVideoCrop | Optional. Ustawienia przycinania |
| rozdzielczość | RealtimeVideoResolution | Optional. Ustawienia rozwiązywania |
| tło | RealtimeVideoBackground | Optional. Ustawienia tła |
| gop_size | liczba całkowita | Optional. Rozmiar Grupy Zdjęć (domyślnie: 10, zakres: 1–2000) |
RealtimeVideoCrop
Definicja prostokąta wideo kadr.
| Pole | Typ | Opis |
|---|---|---|
| top_left | liczba całkowita[] | Lewy górny róg [x, y], liczby całkowite nieujemne |
| bottom_right | liczba całkowita[] | Dolny prawy róg [x, y], liczby całkowite nieujemne |
RealtimeVideoResolution
Specyfikacja rozdzielczości wideo.
| Pole | Typ | Opis |
|---|---|---|
| width | liczba całkowita | Szerokość w pikselach (musi wynosić 0 > ) |
| height | liczba całkowita | Wysokość w pikselach (musi wynosić 0 > ) |
RealtimeVideoBackground
Konfiguracja tła wideo. Można ustawić tylko jedno z image_url lub color może być ustawione.
| Pole | Typ | Opis |
|---|---|---|
| image_url | ciąg | Optional. URL do obrazu tła |
| color | ciąg | Optional. Wartość koloru tła |
RealtimeAvatarScene
Konfiguracja poziomu zoomu, pozycji, rotacji i amplitudy ruchu awatara w ramce wideo.
| Pole | Typ | Opis |
|---|---|---|
| powiększanie | number | Optional. Poziom powiększenia poziomu awatara. Zasięg to (0, +∞). Wartości mniejsze niż 1 oddalenie, wartości większe niż 1 powiększenie. Domyślnie to 0 |
| position_x | number | Optional. Pozycja pozioma awatara. Zakres wynosi [-1, 1], jako proporcja szerokości klatki. Wartości ujemne przesuwają się w lewo, wartości dodatnie w prawo. Domyślnie to 0 |
| position_y | number | Optional. Pionowa pozycja awatara. Zasięg wynosi [-1, 1], jako proporcja wysokości klatki. Wartości ujemne przesuwają się w górę, wartości dodatnie w dół. Domyślnie to 0 |
| rotation_x | number | Optional. Obrót wokół osi X (wysokość dźwięku). Zasięg wynosi [-π, π] w radianach. Wartości ujemne obracają się w górę, wartości dodatnie w dół. Domyślnie to 0 |
| rotation_y | number | Optional. Obrót wokół osi Y (yaw). Zasięg wynosi [-π, π] w radianach. Wartości ujemne obracają się w lewo, wartości dodatnie w prawo. Domyślnie to 0 |
| rotation_z | number | Optional. Obrót wokół osi Z (rolowanie). Zasięg wynosi [-π, π] w radianach. Wartości ujemne obracają się przeciwnie do ruchu wskazówek zegara, wartości dodatnie zgodnie z ruchem wskazówek zegara. Domyślnie to 0 |
| Amplitudy | number | Optional. Amplituda ruchu awatarów. Zasięg to (0, 1]. Wartości w (0, 1) oznaczają zmniejszoną amplitudę, 1 oznacza pełną amplitudę. Domyślnie to 0 |
Konfiguracja animacji
RealtimeAnimation
Konfiguracja dla wyjść animacji, w tym blendshape'ów i wizesów.
| Pole | Typ | Opis |
|---|---|---|
| model_name | ciąg | Optional. Nazwa modelu animacji (domyślnie: "default") |
| outputs | RealtimeAnimationOutputType[] | Optional. Typy wyjść (domyślnie: ["blendshapes"]) |
RealtimeAnimationOutputType
Rodzaje danych animacji do wygenerowania.
Dozwolone wartości:
-
blendshapes- Dane dotyczące blendshape'ów twarzy -
viseme_id- Dane identyfikatora Viseme
Konfiguracja sesji
SesjaZapytańWRealnymCzasie
Obiekt konfiguracji sesji używany w session.update zdarzeniach.
| Pole | Typ | Opis |
|---|---|---|
| model | ciąg | Optional. Nazwa modelu do użycia |
| Sposoby | Tryb rzeczywisty[] | Optional. Obsługiwane modalności wyjściowe dla sesji. Na przykład "modalności": ["text", "audio"] to domyślne ustawienie umożliwiające zarówno modalności tekstowe, jak i audio wyjściowe. Aby umożliwić tylko wydawanie tekstowe, ustaw "modalności": ["tekst"]. Aby umożliwić wyjście awatara, ustaw "modalności": ["tekst", "audio", "avatar"]. Nie możesz włączyć tylko dźwięku. |
| animacja | RealtimeAnimation | Optional. Konfiguracja animacji |
| voice | RealtimeVoice | Optional. Konfiguracja głosu |
| instructions | ciąg | Optional. Instrukcje systemowe dla modelu. Instrukcje mogą kierować dźwiękiem wyjściowym, jeśli używa się głosów OpenAI, ale mogą nie dotyczyć głosów Azure. |
| input_audio_sampling_rate | liczba całkowita | Optional. Częstotliwość próbkowania dźwięku wejściowego w Hz (domyślnie: 24000 dla pcm16, 8000 dla g711_ulaw i g711_alaw) |
| input_audio_format | RealtimeAudioFormat | Optional. Format audio wejściowy (domyślnie: pcm16) |
| output_audio_format | RealtimeOutputAudioFormat | Optional. Format audio wyjściowy (domyślnie: pcm16) |
| input_audio_noise_reduction | RealtimeInputAudioNoiseReductionSettings | Konfiguracja redukcji szumów audio wejściowych. Można ustawić to na null, aby wyłączyć. Redukcja szumów filtruje dźwięk dodawany do bufora audio wejściowego przed wysłaniem do VAD i modelu. Filtrowanie dźwięku może poprawić dokładność wykrywania VAD i skrętów (zmniejszając liczbę fałszywych alarmów) oraz modelować wydajność poprzez lepszą percepcję dźwięku wejściowego. Ta własność jest unieważnialna. |
| input_audio_echo_cancellation | RealtimeInputAudioEchoCancellationSettings | Konfiguracja tłumienia echa dźwięku wejściowego. Można ustawić to na null, aby wyłączyć. To tłumienie echa po stronie serwisowej może poprawić jakość dźwięku wejściowego poprzez zmniejszenie wpływu echa i pogłosu. Ta własność jest unieważnialna. |
| input_audio_transcription | Ustawienia Transkrypcji Wejścia Audio w Czasie Rzeczywistym | Konfiguracja do transkrypcji audio wejściowego. Domyślnie konfiguracja jest ustawiona jako null (wyłączona). Transkrypcja audio wejściowego nie jest natywna dla modelu, ponieważ model konsumuje dźwięk bezpośrednio. Transkrypcja przebiega asynchronicznie przez punkt końcowy /audio/transcriptions i powinna być traktowana jako wskazówka do wprowadzania treści audio, a nie dokładnie tego, co model usłyszał. Aby uzyskać dodatkowe wskazówki dla usługi transkrypcji, klient może opcjonalnie ustawić język i wywołać prompt do transkrypcji.Ta własność jest unieważnialna. |
| turn_detection | RealtimeTurnDetection | Ustawienia wykrywania skrętów na sesję. Można ustawić to na null, aby wyłączyć. |
| Narzędzia | tablica RealtimeTool | Narzędzia dostępne dla modelu na sesję. |
| tool_choice | RealtimeToolChoice | Wybór narzędzia na sesję. Dozwolone wartości: auto, none, oraz required. W przeciwnym razie możesz określić nazwę funkcji, której chcesz użyć. |
| temperatura | number | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Domyślnie ustawia się na 0,8. |
| max_response_output_tokens | Liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, wliczając wywołania narzędzi. Określ liczbę całkowitą między 1 a 4096, aby ograniczyć liczbę tokenów wyjściowych. W przeciwnym razie ustaw wartość na "inf", aby umożliwić maksymalną liczbę żetonów. Na przykład, aby ograniczyć liczbę tokenów wyjściowych do 1000, ustaw "max_response_output_tokens": 1000. Aby umożliwić maksymalną liczbę tokenów, ustaw "max_response_output_tokens": "inf".Domyślnie przyjmuje . "inf" |
| odpowiedź tymczasowa | InterimResponseConfig | Optional. Konfiguracja do generowania odpowiedzi tymczasowych podczas opóźnień lub wywołań narzędzi. |
| wysiłek rozumowania | ReasoningEffort | Optional. Ogranicza wysiłek związany z rozumowaniem dla modeli rozumowania. Sprawdź Azure Foundry doc po więcej szczegółów. Zmniejszenie wysiłku rozumowania może skutkować szybszymi odpowiedziami i mniejszą liczbą tokenów używanych do rozumowania w odpowiedzi. |
| awatar | RealtimeAvatarConfig | Optional. Konfiguracja awatara |
| output_audio_timestamp_types | RealtimeAudioTimestampType[] | Optional. Typy znaczników czasowych dla dźwięku wyjściowego |
| metadane | mapa | Optional. Ustaw do 16 par klucz-wartość, które można przypisać do sesji. Klucze mogą mieć maksymalnie 64 znaki, a wartości maksymalnie 512 znaków. |
Tryb rzeczywisty
Obsługiwane modalności wyjściowe sesji.
Dozwolone wartości:
-
text- Wyjście tekstowe -
audio- Wyjście audio -
animation- Wyjście animacji -
avatar- Wyjście wideo Avatar
RealtimeAudioTimestampType
Typy znaczników czasowych wyjściowych obsługiwane w treści odpowiedzi audio.
Dozwolone wartości:
-
word- Znaczniki czasu na słowo w audio wyjściowym
ReasoningEffort
Ogranicza wysiłek związany z rozumowaniem dla modeli rozumowania. Sprawdź dokumentację modelu pod kątem obsługiwanych wartości dla każdego modelu. Zmniejszenie wysiłku rozumowania może skutkować szybszymi odpowiedziami i mniejszą liczbą tokenów używanych do rozumowania w odpowiedzi.
Dozwolone wartości:
-
none- Brak wysiłku rozumowania -
minimal- Minimalny wysiłek rozumowania -
low- Niski wysiłek rozumowania – szybsze odpowiedzi przy mniejszej ilości rozumowania -
medium- Średni wysiłek rozumowania – zrównoważony między szybkością a głębią rozumowania -
high- Wysoki wysiłek rozumowania – bardziej szczegółowe rozumowanie, może zająć więcej czasu -
xhigh- Wyjątkowo wysoki wysiłek rozumowania – maksymalna głębia rozumowania
Konfiguracja narzędzia
Obsługujemy dwa typy narzędzi: wywoływanie funkcji oraz narzędzia MCP, które pozwalają łączyć się z serwerem MCP.
Narzędzia czasu rzeczywistego
Definicja narzędzia do wywoływania funkcji.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "function" |
| nazwa | ciąg | Nazwa funkcji |
| opis | ciąg | Opis funkcji i wytyczne dotyczące użytkowania |
| parametry | obiekt | Parametry funkcji jako obiekt schematu JSON |
RealtimeToolChoice
Strategia wyboru narzędzi.
Może to być:
-
"auto"- Niech model wybierze -
"none"- Nie używaj narzędzi -
"required"- Musi używać narzędzia -
{ "type": "function", "name": "function_name" }- Użycie funkcji konkretnej
McPTool
Konfiguracja narzędzi MCP.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "mcp" |
| etykieta_serwera | ciąg | Required. Etykieta serwera MCP. |
| adres_serwera | ciąg | Required. URL serwera MCP. |
| dozwolone_narzędzia | string[] | Optional. Lista dozwolonych nazw narzędzi. Jeśli nie jest to określone, dozwolone są wszystkie narzędzia. |
| headers | obiekt | Optional. Dodatkowe nagłówki do uwzględnienia w żądaniach MCP. |
| autoryzacja | ciąg | Optional. Token autoryzacyjny dla żądań MCP. |
| wymaga_akceptacji | String lub słownik | Optional. Jeśli ustawimy na ciąg, wartość musi być lub neveralways. Jeśli jest ustawiony na słownik, musi być w formacie {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}. Domyślna wartość to always. Po ustawieniu na always, wykonanie narzędzia wymaga zatwierdzenia, mcp_approval_request zostanie wysłane do klienta po zakończeniu argumentu MCP i wykonane dopiero po otrzymaniu mcp_approval_response with approve=true (z nim). Po ustawieniu na never, narzędzie zostanie wykonane automatycznie bez zatwierdzenia. |
FoundryAgentTool
Definicja narzędzia do integracji agenta Foundry jako narzędzia. Umożliwia to wzorzec czat-supervisor, w którym agent czatu działający w czasie rzeczywistym obsługuje podstawowe interakcje, delegując złożone zadania bardziej inteligentnemu agentowi Foundry.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "foundry_agent" |
| agent_name | ciąg | Required. Nazwisko agenta odlewni, do którego należy zadzwonić. |
| agent_version | ciąg | Optional. Wersja agenta Foundry, do którego należy zadzwonić. |
| project_name | ciąg | Required. Nazwa projektu Foundry zawierającego agenta. |
| client_id | ciąg | Optional. ID klienta powiązane z agentem Foundry. |
| opis | ciąg | Optional. Opcjonalny opis narzędzia agenta Foundry. Jeśli jest dostępny, jest używany zamiast opisu agenta w portalu Foundry. |
| foundry_resource_override | ciąg | Optional. Nadpisanie dla zasobu Foundry używanego do wykonania agenta. |
| agent_context_type | ciąg | Optional. Typ kontekstu, którego należy użyć podczas wywoływania agenta Foundry. Możliwe wartości: no_context, agent_context. Domyślnie jest agent_context.no_context: Wysyłane są tylko bieżące dane wejściowe użytkownika, bez zachowania kontekstu.agent_context: Agent utrzymuje własny kontekst (wątek), tylko aktualne wejście wysyłane na wywołanie. |
| return_agent_response_directly | boolean | Optional. Czy odpowiedzieć bezpośrednio agentowi w odpowiedzi Voice Live. Domyślnie jest true. Gdy ustawimy na false, odpowiedź jest wysyłana do agenta czatu w celu przeformułowania. |
Przykład:
{
"instructions": "You are a helpful assistant. Please respond with a short message like 'working on this' before calling the agent tool.",
"tools": [
{
"type": "foundry_agent",
"agent_name": "customer-service-agent",
"agent_version": "2",
"project_name": "my-foundry-project",
"description": "A helpful agent that can search online information and handle complex customer requests"
}
]
}
Konfiguracja odpowiedzi tymczasowej
Odpowiedzi tymczasowe pozwalają systemowi generować zastępcze odpowiedzi audio podczas wykonywania narzędzi, poprawiając doświadczenie użytkownika poprzez unikanie ciszy.
InterimResponseConfig
Konfiguracja do tymczasowego generowania odpowiedzi. Jest to typ unii, który może być jednym z następujących typów:
- StaticInterimResponseConfig – Wstępnie wygenerowane odpowiedzi tymczasowe wybrane z wcześniej zdefiniowanej listy.
- LlmInterimResponseConfig - Odpowiedzi tymczasowe generowane przez LLM.
StaticInterimResponseConfig
Konfiguracja statycznego generowania odpowiedzi tymczasowych. Losowo wybiera spośród skonfigurowanych tekstów, gdy spełniony jest dowolny warunek wyzwalający.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "static-interim-response". |
| triggers | InterimResponseTrigger[] | Optional. Lista wyzwalaczy, które mogą wywołać tymczasową reakcję. Każdy wyzwalacz może aktywować tymczasową odpowiedź (LUB logikę). Wartości wspierane: latency, . tool Domyślnie jest ["latency"]. |
| latency_threshold_ms | liczba całkowita | Optional. Próg opóźnienia w milisekundach przed wywołaniem odpowiedzi tymczasowej. Domyślnie to 2000ms. Minimalna wartość to 0. |
| Teksty | string[] | Optional. Lista tymczasowych opcji tekstu odpowiedzi do losowego wyboru. |
Przykład:
{
"session": {
"interim-response": {
"type": "static-interim-response",
"triggers": ["latency", "tool"],
"latency_threshold_ms": 1500,
"texts": [
"Let me think about that...",
"One moment please...",
"Working on that for you..."
]
}
}
}
LlmInterimResponseConfig
Konfiguracja do generowania tymczasowych odpowiedzi opartych na LLM. Wykorzystuje LLM do generowania kontekstowo świadomych odpowiedzi tymczasowych, gdy spełniony jest dowolny warunek wyzwalający.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "llm-interim-response". |
| triggers | InterimResponseTrigger[] | Optional. Lista wyzwalaczy, które mogą wywołać tymczasową reakcję. Każdy wyzwalacz może aktywować tymczasową odpowiedź (LUB logikę). Wartości wspierane: latency, . tool Domyślnie jest ["latency"]. |
| latency_threshold_ms | liczba całkowita | Optional. Próg opóźnienia w milisekundach przed wywołaniem odpowiedzi tymczasowej. Domyślnie to 2000ms. Minimalna wartość to 0. |
| model | ciąg | Optional. Model do generowania odpowiedzi tymczasowych opartych na LLM. Domyślnie jest gpt-4.1-mini. Domyślny model może się zmienić bez nowej wersji API. |
| instructions | ciąg | Optional. Niestandardowe instrukcje do generowania odpowiedzi tymczasowych. Jeśli nie jest to udostępnione, używany jest domyślny komunikat. |
| max_completion_tokens | liczba całkowita | Optional. Maksymalna liczba tokenów do wygenerowania dla tymczasowej odpowiedzi. Domyślność to 50. Minimalna wartość to 1. |
Przykład:
{
"session": {
"interim-response": {
"type": "llm-interim-response",
"triggers": ["tool"],
"latency_threshold_ms": 2000,
"model": "gpt-4.1-mini",
"instructions": "Generate a brief, friendly acknowledgment that you're working on the user's request.",
"max_completion_tokens": 30
}
}
}
InterimResponseTrigger
Wyzwalacze, które mogą aktywować tymczasowe generowanie odpowiedzi.
Dozwolone wartości:
-
latency- Wyzwalanie odpowiedzi tymczasowej, gdy opóźnienie odpowiedzi przekracza próg -
tool- Wywołanie odpowiedzi tymczasowej podczas wykonywania wywołania narzędzia
ElementOdpowiedziRozmowyNaŻywo
Jest to typ unii, który może być jednym z następujących typów:
RealtimeConversationUserMessageItem
Element wiadomości użytkownika.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "message" |
| obiekt | ciąg | Musi być "conversation.item" |
| rola | ciąg | Musi być "user" |
| zawartość | RealtimeInputTextContentPart | Treść wiadomości. |
| stan | RealtimeItemStatus | Status przedmiotu. |
RealtimeConversationAssistantMessageItem
Pozycja wiadomości asystenta.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "message" |
| obiekt | ciąg | Musi być "conversation.item" |
| rola | ciąg | Musi być "assistant" |
| zawartość | RealtimeOutputTextContent[] lub RealtimeOutputAudioContentPart[] | Treść wiadomości. |
| stan | RealtimeItemStatus | Status przedmiotu. |
RealtimeConversationSystemMessageItem
Element wiadomości systemowej.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "message" |
| obiekt | ciąg | Musi być "conversation.item" |
| rola | ciąg | Musi być "system" |
| zawartość | RealtimeInputTextContentPart[] | Treść wiadomości. |
| stan | RealtimeItemStatus | Status przedmiotu. |
RealtimeConversationFunctionCallItem
Element żądania wywołania funkcji.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "function_call" |
| obiekt | ciąg | Musi być "conversation.item" |
| nazwa | ciąg | Nazwa funkcji, którą trzeba wywołać. |
| Argumenty | ciąg | Argumenty funkcji wywołują jako ciąg JSON. |
| call_id | ciąg | Unikalny identyfikator wywołania funkcji. |
| stan | RealtimeItemStatus | Status przedmiotu. |
RealtimeConversationFunctionCallOutputItem
Element odpowiedzi wywołania funkcji.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "function_call_output" |
| obiekt | ciąg | Musi być "conversation.item" |
| nazwa | ciąg | Nazwa funkcji, która została wywołana. |
| We/Wy | ciąg | Wynik wywołania funkcji. |
| call_id | ciąg | Unikalny identyfikator wywołania funkcji. |
| stan | RealtimeItemStatus | Status przedmiotu. |
RealtimeConversationMCPListToolsItem
MCP wypisuje odpowiedź narzędzi.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "mcp_list_tools" |
| etykieta_serwera | ciąg | Etykieta serwera MCP. |
RealtimeConversationMCPCallItem
Wpis w odpowiedzi na połączenie MCP.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "mcp_call" |
| etykieta_serwera | ciąg | Etykieta serwera MCP. |
| nazwa | ciąg | Nazwa narzędzia, które trzeba wywołać. |
| approval_request_id | ciąg | ID wniosku o zatwierdzenie połączenia MCP. |
| Argumenty | ciąg | Argumenty za wezwaniem MCP. |
| We/Wy | ciąg | Wyjście z połączenia MCP. |
| błąd | obiekt | Szczegóły błędu, jeśli połączenie MCP się nie powiodło. |
RealtimeConversationMCPApprovalRequestItem
Wniosek o zatwierdzenie MCP.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "mcp_approval_request" |
| etykieta_serwera | ciąg | Etykieta serwera MCP. |
| nazwa | ciąg | Nazwa narzędzia, które trzeba wywołać. |
| Argumenty | ciąg | Argumenty za wezwaniem MCP. |
RealtimeConversationFoundryAgentCallItem
Zadanie odpowiedzi na zgłoszenie agenta odlewni.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Unikalny identyfikator przedmiotu. |
| typ | ciąg | Musi być "foundry_agent_call" |
| nazwa | ciąg | Nazwisko agenta odlewni. |
| call_id | ciąg | Identyfikacja połączenia. |
| Argumenty | ciąg | Argumenty dla agenta odlewni dzwonią. |
| agent_response_id | ciąg | Optional. Odpowiedź ID od agenta odlewni. |
| We/Wy | ciąg | Optional. Wyjście z wywołania agenta odlewniczego. |
| błąd | obiekt | Optional. Szczegóły błędu dotyczą niepowodzenia połączenia agenta odlewni. |
StatusElementuW czasieRzeczywistym
Status tematów rozmowy.
Dozwolone wartości:
-
in_progress- Obecnie przetwarzane -
completed- Pomyślnie ukończone -
incomplete- Niepełne (przerwane lub nieudane)
CzęśćTreściWRealnymCzasie
Część treści w wiadomości.
RealtimeInputTextContentPart
Część tekstowa.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "input_text" |
| SMS | ciąg | Treść tekstu |
RealtimeOutputTextContentPart
Część tekstowa.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "text" |
| SMS | ciąg | Treść tekstu |
RealtimeInputAudioContentPart
Część dotycząca treści audio.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "input_audio" |
| audio | ciąg | Optional. Dane audio kodowane w bazie 64 |
| transkrypcja | ciąg | Optional. Transkrypcja audio |
RealtimeOutputAudioContentPart
Część dotycząca treści audio.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Musi być "audio" |
| audio | ciąg | Dane audio kodowane w bazie 64 |
| transkrypcja | ciąg | Optional. Transkrypcja audio |
Obiekty odpowiedzi
Czas rzeczywistyResponse
Obiekt odpowiedzi reprezentujący odpowiedź wnioskowania modelu.
| Pole | Typ | Opis |
|---|---|---|
| id | ciąg | Optional. Identyfikator odpowiedzi |
| obiekt | ciąg | Optional. Zawsze "realtime.response" |
| stan | RealtimeResponseStatus | Optional. Stan odpowiedzi |
| szczegóły statusu | RealtimeResponseStatusDetails | Optional. Szczegóły stanu |
| We/Wy | RealtimeConversationResponseItem[] | Optional. Elementy wyjściowe |
| użycie | Czas rzeczywistyUsage | Optional. Statystyki wykorzystania tokenów |
| conversation_id | ciąg | Optional. Powiązany identyfikator rozmowy |
| voice | RealtimeVoice | Optional. Głos używany do odpowiedzi |
| Sposoby | string[] | Optional. Stosowane modalności wyjściowe |
| output_audio_format | RealtimeOutputAudioFormat | Optional. Używany format audio |
| temperatura | number | Optional. Używana temperatura |
| max_response_output_tokens | Liczba całkowita lub "inf" | Optional. Maksymalna liczba używanych żetonów |
StatusOdpowiedziWRealnymCzasie
Wartości statusu odpowiedzi.
Dozwolone wartości:
-
in_progress- Generowana jest reakcja -
completed- Zakończenie odpowiedzi pomyślnie -
cancelled- Odpowiedź została anulowana -
incomplete- Odpowiedź niepełna (przerwana) -
failed- Odpowiedź zakończyła się błędem
Czas rzeczywistyUsage
Statystyki zużycia tokenów.
| Pole | Typ | Opis |
|---|---|---|
| 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 | Generowane tokeny wyjściowe |
| szczegóły_tokena_wejściowego | TokenDetails | Podział tokenów wejściowych |
| output_token_details | TokenDetails | Podział tokenów wyjściowych |
TokenDetails
Szczegółowy podział zużycia tokenów.
| Pole | Typ | Opis |
|---|---|---|
| cached_tokens | liczba całkowita | Optional. Używane tokeny w pamięci podręcznej |
| text_tokens | liczba całkowita | Optional. Używane żetony tekstowe |
| audio_tokens | liczba całkowita | Optional. Używane tokeny audio |
Obsługa błędów
RealtimeErrorDetails
Obiekt informacji o błędzie.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Typ błędu (np. "invalid_request_error", "server_error") |
| kod | ciąg | Optional. Specyficzny kod błędu |
| komunikat | ciąg | Czytelny opis błędu dla człowieka |
| param | ciąg | Optional. Parametr związany z błędem |
| event_id | ciąg | Optional. ID zdarzenia klienta, które spowodowało błąd |
ElementProśbyRozmowyNaŻywo
Używasz tego obiektu RealtimeConversationRequestItem , aby utworzyć nowy element w rozmowie poprzez zdarzenie conversation.item.create .
Jest to typ unii, który może być jednym z następujących typów:
RealtimeSystemMessageItem
Element wiadomości systemowej.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj przedmiotu. Dozwolone wartości: message |
| rola | ciąg | Rola przekazu. Dozwolone wartości: system |
| zawartość | tablica RealtimeInputTextContentPart | Treść wiadomości. |
| id | ciąg | Unikalny identyfikator przedmiotu. Klient może określić identyfikator, aby pomóc w zarządzaniu kontekstem po stronie serwera. Jeśli klient nie poda ID, serwer je generuje. |
RealtimeUserMessageItem
Element wiadomości użytkownika.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj przedmiotu. Dozwolone wartości: message |
| rola | ciąg | Rola przekazu. Dozwolone wartości: user |
| zawartość | tablica RealtimeInputTextContentPart lub RealtimeInputAudioContentPart | Treść wiadomości. |
| id | ciąg | Unikalny identyfikator przedmiotu. Klient może określić identyfikator, aby pomóc w zarządzaniu kontekstem po stronie serwera. Jeśli klient nie poda ID, serwer je generuje. |
RealtimeAssistantMessageItem
Wiadomość asystenta.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj przedmiotu. Dozwolone wartości: message |
| rola | ciąg | Rola przekazu. Dozwolone wartości: assistant |
| zawartość | tablica RealtimeOutputTextContentPart | Treść wiadomości. |
RealtimeFunctionCallItem
Element wywołania funkcji.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj przedmiotu. Dozwolone wartości: function_call |
| nazwa | ciąg | Nazwa funkcji, którą trzeba wywołać. |
| Argumenty | ciąg | Argumenty funkcji wywołują jako ciąg JSON. |
| call_id | ciąg | ID funkcji wywołanej elementem. |
| id | ciąg | Unikalny identyfikator przedmiotu. Klient może określić identyfikator, aby pomóc w zarządzaniu kontekstem po stronie serwera. Jeśli klient nie poda ID, serwer je generuje. |
RealtimeFunctionCallOutputItem
Funkcja wywołuje element wyjściowy.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj przedmiotu. Dozwolone wartości: function_call_output |
| call_id | ciąg | ID funkcji wywołanej elementem. |
| We/Wy | ciąg | Wynik wywołania funkcji, czyli ciąg o swobodnej formie z wynikiem funkcji, również może być pusty. |
| id | ciąg | Unikalny identyfikator przedmiotu. Jeśli klient nie poda ID, serwer je generuje. |
RealtimeMCPApprovalResponseItem
Wniosek o zatwierdzenie MCP.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj przedmiotu. Dozwolone wartości: mcp_approval_response |
| approve | boolean | Czy wniosek MCP zostanie zatwierdzony. |
| approval_request_id | ciąg | ID wniosku o zatwierdzenie MCP. |
| id | ciąg | Unikalny identyfikator przedmiotu. Klient może określić identyfikator, aby pomóc w zarządzaniu kontekstem po stronie serwera. Jeśli klient nie poda ID, serwer je generuje. |
RealtimeFunctionTool
Definicja narzędzia funkcji używanego przez punkt końcowy czasu rzeczywistego.
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj narzędzia. Dozwolone wartości: function |
| nazwa | ciąg | Nazwa funkcji. |
| opis | ciąg | Opis funkcji, w tym wytyczne użytkowania. Na przykład: "Użyj tej funkcji, aby uzyskać aktualny czas." |
| parametry | obiekt | Parametry funkcji w postaci obiektu JSON. |
StatusElementuW czasieRzeczywistym
Dozwolone wartości:
in_progresscompletedincomplete
CzęśćAudioZawartościOdpowiedziW czasie rzeczywistym
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj treści. Dozwolone wartości: audio |
| transkrypcja | ciąg | Transkrypcja nagrania. Ta własność jest unieważnialna. |
ElementWywołaniaFunkcjiOdpowiedziWRealnymCzasie
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj przedmiotu. Dozwolone wartości: function_call |
| nazwa | ciąg | Nazwa funkcji wywołanej elementem. |
| call_id | ciąg | ID funkcji wywołanej elementem. |
| Argumenty | ciąg | Argumenty funkcji wywołanej elementem. |
| stan | RealtimeItemStatus | Status przedmiotu. |
ElementWynikuWywołaniaFunkcjiW czasieRzeczywistym
| Pole | Typ | Opis |
|---|---|---|
| typ | ciąg | Rodzaj przedmiotu. Dozwolone wartości: function_call_output |
| call_id | ciąg | ID funkcji wywołanej elementem. |
| We/Wy | ciąg | Wynik funkcji wywołanej elementem. |
Opcje reakcji w czasie rzeczywistym
| Pole | Typ | Opis |
|---|---|---|
| Sposoby | macierz | Modalności wyjściowe odpowiedzi. Dozwolone wartości: text, audioNa przykład jest domyślne ustawienie, "modalities": ["text", "audio"] które umożliwia zarówno modalności tekstowe, jak i audio wyjściowe. Aby włączyć tylko wyjście tekstowe, ustaw "modalities": ["text"]. Nie możesz włączyć tylko dźwięku. |
| instructions | ciąg | Instrukcje (komunikat systemowy) kierujące odpowiedziami modelu. |
| voice | RealtimeVoice | Głos używany jako model odpowiedzi na sesję. Gdy głos zostanie użyty w sesji jako odpowiedź audio modelu, nie da się go zmienić. |
| Narzędzia | tablica RealtimeTool | Narzędzia dostępne dla modelu na sesję. |
| tool_choice | RealtimeToolChoice | Wybór narzędzia na sesję. |
| temperatura | number | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Domyślnie ustawia się na 0,8. |
| max_response_output_tokens | Liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, wliczając wywołania narzędzi. Określ liczbę całkowitą między 1 a 4096, aby ograniczyć liczbę tokenów wyjściowych. W przeciwnym razie ustaw wartość na "inf", aby umożliwić maksymalną liczbę żetonów. Na przykład, aby ograniczyć liczbę tokenów wyjściowych do 1000, ustaw "max_response_output_tokens": 1000. Aby umożliwić maksymalną liczbę tokenów, ustaw "max_response_output_tokens": "inf".Domyślnie przyjmuje . "inf" |
| odpowiedź tymczasowa | InterimResponseConfig | Optional. Konfiguracja do generowania odpowiedzi tymczasowych podczas opóźnień lub wywołań narzędzi. |
| wysiłek rozumowania | ReasoningEffort | Optional. Ogranicza wysiłek związany z rozumowaniem dla modeli rozumowania. Sprawdź dokumentację modelu pod kątem obsługiwanych wartości dla każdego modelu. Zmniejszenie wysiłku rozumowania może skutkować szybszymi odpowiedziami i mniejszą liczbą tokenów używanych do rozumowania w odpowiedzi. |
| konwersacja | ciąg | Kontroluje, do której rozmowy dodana jest odpowiedź. Wartości wspierane to auto oraz none.Wartość auto (lub brak ustawienia tej właściwości) zapewnia, że treść odpowiedzi zostanie dodana do domyślnej rozmowy sesji.Ustaw tę właściwość tak, none aby tworzyć odpowiedź poza pasmem, gdzie elementy nie będą dodawane do domyślnej rozmowy. Domyślnie "auto" |
| metadane | mapa | Zestaw do 16 par klucz-wartość, które można przypisać do obiektu. Może to być przydatne do przechowywania dodatkowych informacji o obiekcie w uporządkowanym formacie. Klucze mogą mieć maksymalnie 64 znaki, a wartości maksymalnie 512 znaków. Na przykład: metadata: { topic: "classification" } |
| pre_generated_assistant_message | RealtimeAssistantMessageItem | Optional. Wstępnie wygenerowana wiadomość asystenta do generowania odpowiedzi audio zamiast generowania tekstu przez model. Po udostępnieniu serwer generuje odpowiedź audio dla zdefiniowanego tekstu, omijając wnioskowanie modelu na rzecz generowania tekstu. Wiadomość jest dodawana do historii kontekstu rozmowy. Wiadomość musi zawierać role zestaw do "assistant" i zawierać content jedną część tekstową. |
SesjaOdpowiedziW CzasieRzeczywistym
Obiekt RealtimeResponseSession reprezentuje sesję w API czasu rzeczywistego. Jest wykorzystywany w niektórych wydarzeniach serwerowych, takich jak:
| Pole | Typ | Opis |
|---|---|---|
| obiekt | ciąg | Obiekt sesji. Dozwolone wartości: realtime.session |
| id | ciąg | Unikalny identyfikator sesji. |
| model | ciąg | Model użyty podczas sesji. |
| Sposoby | macierz | Modalności wyjściowe dla sesji. Dozwolone wartości: text, audioNa przykład jest domyślne ustawienie, "modalities": ["text", "audio"] które umożliwia zarówno modalności tekstowe, jak i audio wyjściowe. Aby włączyć tylko wyjście tekstowe, ustaw "modalities": ["text"]. Nie możesz włączyć tylko dźwięku. |
| instructions | ciąg | Instrukcje (komunikat systemowy) służą do prowadzenia odpowiedzi tekstowych i audio modelu. Oto przykładowe instrukcje, które pomogą w kształtowaniu treści i formatu odpowiedzi tekstowych i audio: "instructions": "be succinct""instructions": "act friendly""instructions": "here are examples of good responses"Oto przykładowe instrukcje, które pomogą w nastawieniu się na zachowanie dźwięku: "instructions": "talk quickly""instructions": "inject emotion into your voice""instructions": "laugh frequently"Chociaż model nie zawsze stosuje się do tych instrukcji, dostarczają one wskazówek dotyczących pożądanego zachowania. |
| voice | RealtimeVoice | Głos używany jako model odpowiedzi na sesję. Gdy głos zostanie użyty w sesji jako odpowiedź audio modelu, nie da się go zmienić. |
| input_audio_sampling_rate | liczba całkowita | Częstotliwość próbkowania dźwięku wejściowego. |
| input_audio_format | RealtimeAudioFormat | Format dźwięku wejściowego. |
| output_audio_format | RealtimeAudioFormat | Format dźwięku wyjściowego. |
| input_audio_transcription | Ustawienia Transkrypcji Wejścia Audio w Czasie Rzeczywistym | Ustawienia transkrypcji wejścia audio. Ta własność jest unieważnialna. |
| turn_detection | RealtimeTurnDetection | Ustawienia wykrywania skrętów na sesję. Ta własność jest unieważnialna. |
| Narzędzia | tablica RealtimeTool | Narzędzia dostępne dla modelu na sesję. |
| tool_choice | RealtimeToolChoice | Wybór narzędzia na sesję. |
| temperatura | number | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Domyślnie ustawia się na 0,8. |
| max_response_output_tokens | Liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, wliczając wywołania narzędzi. Określ liczbę całkowitą między 1 a 4096, aby ograniczyć liczbę tokenów wyjściowych. W przeciwnym razie ustaw wartość na "inf", aby umożliwić maksymalną liczbę żetonów. Na przykład, aby ograniczyć liczbę tokenów wyjściowych do 1000, ustaw "max_response_output_tokens": 1000. Aby umożliwić maksymalną liczbę tokenów, ustaw "max_response_output_tokens": "inf". |
| odpowiedź tymczasowa | InterimResponseConfig | Konfiguracja do generowania odpowiedzi tymczasowych podczas opóźnień lub wywołań narzędzi. |
SzczegółyStatusuOdpowiedziWRealnymCzasie
| Pole | Typ | Opis |
|---|---|---|
| typ | RealtimeResponseStatus | Status odpowiedzi. |
RealtimeRateLimitsItem
| Pole | Typ | Opis |
|---|---|---|
| nazwa | ciąg | Limit stawki, nazwa nieruchomości, o której ten element zawiera informacje. |
| limit | liczba całkowita | Maksymalny skonfigurowany limit dla tej właściwości limitu cenowego. |
| pozostający | liczba całkowita | Pozostała kwota dostępna wobec skonfigurowanego limitu dla tej właściwości limitu stawek. |
| zresetuj_sekundy | number | Pozostały czas, w sekundach, do zresetowania tej właściwości limitu cen. |
Powiązane zasoby
- Wypróbuj szybki start Voice Live
- Spróbuj szybkiego startu agentów Voice Live
- Dowiedz się więcej o sposobie korzystania z interfejsu API voice live