Voice 2026-01-01-preview Live API Reference (podgląd)

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-diarize
Wspierane 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ć:

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 .high
Z 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

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_progress
  • completed
  • incomplete

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, audio

Na 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, audio

Na 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.