Dokumentacja interfejsu API w czasie rzeczywistym (wersja zapoznawcza)
Uwaga
Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Interfejs API czasu rzeczywistego to oparty na protokole WebSocket interfejs API, który umożliwia interakcję z usługą Azure OpenAI w czasie rzeczywistym.
Interfejs API czasu rzeczywistego (za pośrednictwem /realtime
) jest oparty na interfejsie API protokołu WebSockets, aby ułatwić w pełni asynchroniczną komunikację strumieniową między użytkownikiem końcowym a modelem. Szczegóły urządzenia, takie jak przechwytywanie i renderowanie danych audio, wykraczają poza zakres interfejsu API czasu rzeczywistego. Powinna być używana w kontekście zaufanej, pośredniej usługi, która zarządza połączeniami zarówno z użytkownikami końcowymi, jak i połączeniami punktów końcowych modelu. Nie używaj go bezpośrednio z niezaufanych urządzeń użytkowników końcowych.
Napiwek
Aby rozpocząć pracę z interfejsem API czasu rzeczywistego, zobacz przewodnik Szybki start i przewodnik z instrukcjami.
Connection
Interfejs API czasu rzeczywistego wymaga istniejącego punktu końcowego zasobu usługi Azure OpenAI w obsługiwanym regionie. Dostęp do interfejsu API jest uzyskiwany za pośrednictwem bezpiecznego połączenia /realtime
protokołu WebSocket z punktem końcowym zasobu usługi Azure OpenAI.
Pełny identyfikator URI żądania można utworzyć, łącząc:
- Bezpieczny protokół WebSocket (
wss://
) - Nazwa hosta punktu końcowego zasobu usługi Azure OpenAI, na przykład
my-aoai-resource.openai.azure.com
- Ścieżka interfejsu
openai/realtime
API api-version
Parametr ciągu zapytania dla obsługiwanej wersji interfejsu API, takiej jak2024-10-01-preview
deployment
Parametr ciągu zapytania o nazwiegpt-4o-realtime-preview
wdrożenia modelu
Poniższy przykład to dobrze skonstruowany /realtime
identyfikator URI żądania:
wss://my-eastus2-openai-resource.openai.azure.com/openai/realtime?api-version=2024-10-01-preview&deployment=gpt-4o-realtime-preview-1001
Uwierzytelnianie
Aby uwierzytelnić:
- Microsoft Entra (zalecane): użyj uwierzytelniania opartego na tokenach z interfejsem
/realtime
API dla zasobu usługi Azure OpenAI z włączoną tożsamością zarządzaną. Zastosuj pobrany token uwierzytelniania przy użyciuBearer
tokenu z nagłówkiemAuthorization
. - Klucz interfejsu API: Element
api-key
można udostępnić na jeden z dwóch sposobów:- Za pomocą nagłówka
api-key
połączenia w połączeniu wstępnego kształtu. Ta opcja nie jest dostępna w środowisku przeglądarki. - Przy użyciu parametru
api-key
ciągu zapytania w identyfikatorze URI żądania. Parametry ciągu zapytania są szyfrowane podczas korzystania z protokołu https/wss.
- Za pomocą nagłówka
Zdarzenia klienta
Istnieje dziewięć zdarzeń klienta, które można wysłać z klienta do serwera:
Wydarzenie | opis |
---|---|
RealtimeClientEventConversationItemCreate | Zdarzenie klienta conversation.item.create służy do dodawania nowego elementu do kontekstu konwersacji, w tym komunikatów, wywołań funkcji i odpowiedzi wywołań funkcji. |
RealtimeClientEventConversationItemDelete | Zdarzenie klienta conversation.item.delete służy do usuwania elementu z historii konwersacji. |
RealtimeClientEventConversationItemTruncate | Zdarzenie klienta conversation.item.truncate służy do obcinania dźwięku poprzedniego asystenta. |
RealtimeClientEventInputAudioBufferAppend | Zdarzenie klienta input_audio_buffer.append służy do dołączania bajtów audio do wejściowego buforu audio. |
RealtimeClientEventInputAudioBufferClear | Zdarzenie klienta input_audio_buffer.clear służy do czyszczenia bajtów audio w buforze. |
RealtimeClientEventInputAudioBufferCommit | Zdarzenie klienta input_audio_buffer.commit służy do zatwierdzania buforu audio wejściowego użytkownika. |
RealtimeClientEventResponseCancel | Zdarzenie klienta response.cancel służy do anulowania odpowiedzi w toku. |
RealtimeClientEventResponseCreate | Zdarzenie klienta response.create służy do poinstruowania serwera o utworzeniu odpowiedzi za pośrednictwem wnioskowania modelu. |
RealtimeClientEventSessionUpdate | Zdarzenie klienta session.update służy do aktualizowania domyślnej konfiguracji sesji. |
RealtimeClientEventConversationItemCreate
Zdarzenie klienta conversation.item.create
służy do dodawania nowego elementu do kontekstu konwersacji, w tym komunikatów, wywołań funkcji i odpowiedzi wywołań funkcji. To zdarzenie może służyć do wypełniania historii konwersacji i dodawania nowych elementów w połowie strumienia. Obecnie to zdarzenie nie może wypełnić komunikatów dźwiękowych asystenta.
Jeśli działanie zakończy się pomyślnie, serwer odpowie zdarzeniem conversation.item.created
error
, w przeciwnym razie zostanie wysłane zdarzenie.
Struktura zdarzeń
{
"type": "conversation.item.create",
"previous_item_id": "<previous_item_id>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.item.create . |
previous_item_id | string | Identyfikator poprzedniego elementu, po którym zostanie wstawiony nowy element. Jeśli nie zostanie ustawiony, nowy element zostanie dołączony na końcu konwersacji. W przypadku ustawienia umożliwia wstawienie elementu w połowie konwersacji. Jeśli nie można odnaleźć identyfikatora, zostanie zwrócony błąd i element nie zostanie dodany. |
element | RealtimeConversationRequestItem | Element, który ma zostać dodany do konwersacji. |
RealtimeClientEventConversationItemDelete
Zdarzenie klienta conversation.item.delete
służy do usuwania elementu z historii konwersacji.
Serwer odpowiada za pomocą conversation.item.deleted
zdarzenia, chyba że element nie istnieje w historii konwersacji, w tym przypadku serwer odpowiada z błędem.
Struktura zdarzeń
{
"type": "conversation.item.delete",
"item_id": "<item_id>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.item.delete . |
item_id | string | Identyfikator elementu do usunięcia. |
RealtimeClientEventConversationItemTruncate
Zdarzenie klienta conversation.item.truncate
służy do obcinania dźwięku poprzedniego asystenta. Serwer generuje dźwięk szybciej niż w czasie rzeczywistym, więc to zdarzenie jest przydatne, gdy użytkownik przerywa obcięcie dźwięku, który został wysłany do klienta, ale nie został jeszcze odtwarzany. Informacje o dźwięku serwera z odtwarzaniem klienta są synchronizowane.
Obcięcie dźwięku usuwa transkrypcję tekstu po stronie serwera, aby upewnić się, że nie ma tekstu w kontekście, o którego użytkownik nie wie.
Jeśli zdarzenie klienta zakończy się pomyślnie, serwer odpowie zdarzeniem conversation.item.truncated
.
Struktura zdarzeń
{
"type": "conversation.item.truncate",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.item.truncate . |
item_id | string | Identyfikator elementu komunikatu asystenta do obcinania. Można obcinać tylko elementy komunikatów asystenta. |
content_index | integer | Indeks części zawartości do obcinania. Ustaw tę właściwość na wartość "0". |
audio_end_ms | integer | Czas trwania włącznie, do którego dźwięk jest obcięty, w milisekundach. Jeśli audio_end_ms jest większy niż rzeczywisty czas trwania dźwięku, serwer odpowiada z powodu błędu. |
RealtimeClientEventInputAudioBufferAppend
Zdarzenie klienta input_audio_buffer.append
służy do dołączania bajtów audio do wejściowego buforu audio. Bufor audio jest magazynem tymczasowym, do którego można zapisywać dane, a następnie zatwierdzać.
W trybie vaD serwera (wykrywanie aktywności głosowej) bufor audio jest używany do wykrywania mowy, a serwer decyduje, kiedy zatwierdzić. Gdy funkcja VAD serwera jest wyłączona, klient może wybrać ilość dźwięku do umieszczenia w każdym zdarzeń maksymalnie 15 MiB. Na przykład przesyłanie strumieniowe mniejszych fragmentów z klienta może umożliwić dynamiczne działanie vaD.
W przeciwieństwie do większości innych zdarzeń klienta serwer nie wysyła odpowiedzi potwierdzenia na zdarzenie klienta input_audio_buffer.append
.
Struktura zdarzeń
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość input_audio_buffer.append . |
dźwięk | string | Bajty audio zakodowane w formacie Base64. Ta wartość musi być w formacie określonym przez input_audio_format pole w konfiguracji sesji. |
RealtimeClientEventInputAudioBufferClear
Zdarzenie klienta input_audio_buffer.clear
służy do czyszczenia bajtów audio w buforze.
Serwer odpowiada za pomocą input_audio_buffer.cleared
zdarzenia.
Struktura zdarzeń
{
"type": "input_audio_buffer.clear"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość input_audio_buffer.clear . |
RealtimeClientEventInputAudioBufferCommit
Zdarzenie klienta input_audio_buffer.commit
służy do zatwierdzania buforu audio wejściowego użytkownika, który tworzy nowy element wiadomości użytkownika w konwersacji. Dźwięk jest transkrypcji, jeśli input_audio_transcription
jest skonfigurowany dla sesji.
W trybie vaD serwera klient nie musi wysyłać tego zdarzenia, serwer zatwierdza bufor audio automatycznie. Bez funkcji VAD serwera klient musi zatwierdzić bufor audio, aby utworzyć element komunikatu użytkownika. To zdarzenie klienta generuje błąd, jeśli wejściowy bufor audio jest pusty.
Zatwierdzenie wejściowego buforu audio nie powoduje utworzenia odpowiedzi na podstawie modelu.
Serwer odpowiada za pomocą input_audio_buffer.committed
zdarzenia.
Struktura zdarzeń
{
"type": "input_audio_buffer.commit"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość input_audio_buffer.commit . |
RealtimeClientEventResponseCancel
Zdarzenie klienta response.cancel
służy do anulowania odpowiedzi w toku.
Serwer odpowiada za pomocą response.cancelled
zdarzenia lub błędu, jeśli nie ma odpowiedzi na anulowanie.
Struktura zdarzeń
{
"type": "response.cancel"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.cancel . |
RealtimeClientEventResponseCreate
Zdarzenie klienta response.create
służy do poinstruowania serwera o utworzeniu odpowiedzi za pośrednictwem wnioskowania modelu. Po skonfigurowaniu sesji w trybie vaD serwera serwer automatycznie tworzy odpowiedzi.
Odpowiedź zawiera co najmniej jeden item
element i może mieć dwa, w tym przypadku drugie jest wywołaniem funkcji. Te elementy są dołączane do historii konwersacji.
Serwer odpowiada za pomocą response.created
zdarzenia, co najmniej jednego elementu i zdarzeń zawartości (takich jak conversation.item.created
i response.content_part.added
), a na koniec response.done
zdarzenie wskazujące, że odpowiedź została ukończona.
Uwaga
Zdarzenie klienta response.create
obejmuje konfigurację wnioskowania, na przykład instructions
, i temperature
. Te pola mogą zastąpić konfigurację sesji tylko dla tej odpowiedzi.
Struktura zdarzeń
{
"type": "response.create"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.create . |
odpowiedź | RealtimeResponseOptions | Opcje odpowiedzi. |
RealtimeClientEventSessionUpdate
Zdarzenie klienta session.update
służy do aktualizowania domyślnej konfiguracji sesji. Klient może wysłać to zdarzenie w dowolnym momencie, aby zaktualizować konfigurację sesji, a dowolne pole można zaktualizować w dowolnym momencie, z wyjątkiem głosu.
Aktualizowane są tylko bieżące pola. Aby wyczyścić pole (takie jak instructions
), przekaż pusty ciąg.
Serwer odpowiada zdarzeniem zawierającym pełną efektywną session.updated
konfigurację.
Struktura zdarzeń
{
"type": "session.update"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość session.update . |
session | RealtimeRequestSession | Konfiguracja sesji. |
Zdarzenia serwera
Istnieją 28 zdarzeń serwera, które można odebrać z serwera:
Wydarzenie | opis |
---|---|
RealtimeServerEventConversationCreated | Zdarzenie serwera conversation.created jest zwracane bezpośrednio po utworzeniu sesji. Jedna konwersacja jest tworzona na sesję. |
RealtimeServerEventConversationItemCreated | Zdarzenie serwera conversation.item.created jest zwracane po utworzeniu elementu konwersacji. |
RealtimeServerEventConversationItemDeleted | Zdarzenie serwera conversation.item.deleted jest zwracane, gdy klient usunął element w konwersacji ze zdarzeniem conversation.item.delete . |
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted | Zdarzenie serwera conversation.item.input_audio_transcription.completed jest wynikiem transkrypcji audio dla mowy zapisanej w buforze audio. |
RealtimeServerEventConversationItemInputAudioTranscriptionFailed | Zdarzenie serwera conversation.item.input_audio_transcription.failed jest zwracane, gdy skonfigurowano transkrypcję dźwięku wejściowego, a żądanie transkrypcji dla komunikatu użytkownika nie powiodło się. |
RealtimeServerEventConversationItemTruncated | Zdarzenie serwera conversation.item.truncated jest zwracane, gdy klient obcina wcześniej asystenta elementu komunikatu audio z zdarzeniem conversation.item.truncate . |
RealtimeServerEventError | Zdarzenie serwera error jest zwracane, gdy wystąpi błąd, który może być problemem klienta lub problemem serwera. |
RealtimeServerEventInputAudioBufferCleared | Zdarzenie serwera input_audio_buffer.cleared jest zwracane, gdy klient czyści wejściowy bufor audio ze zdarzeniem input_audio_buffer.clear . |
RealtimeServerEventInputAudioBufferCommitted | Zdarzenie serwera input_audio_buffer.committed jest zwracane po zatwierdzeniu wejściowego buforu audio przez klienta lub automatycznie w trybie VAD serwera. |
RealtimeServerEventInputAudioBufferSpeechStarted | Zdarzenie serwera input_audio_buffer.speech_started jest zwracane w server_vad trybie, gdy mowa jest wykrywana w buforze audio. |
RealtimeServerEventInputAudioBufferSpeechStopped | Zdarzenie serwera input_audio_buffer.speech_stopped jest zwracane w server_vad trybie, gdy serwer wykryje koniec mowy w buforze audio. |
RealtimeServerEventRateLimitsUpdated | Zdarzenie serwera rate_limits.updated jest emitowane na początku odpowiedzi, aby wskazać zaktualizowane limity szybkości. |
RealtimeServerEventResponseAudioDelta | Zdarzenie serwera response.audio.delta jest zwracane po zaktualizowaniu dźwięku wygenerowanego przez model. |
RealtimeServerEventResponseAudioDone | Zdarzenie serwera response.audio.done jest zwracane po zakończeniu generowania przez model dźwięku. |
RealtimeServerEventResponseAudioTranscriptDelta | Zdarzenie serwera response.audio_transcript.delta jest zwracane po zaktualizowaniu transkrypcji wygenerowanej przez model danych wyjściowych dźwięku. |
RealtimeServerEventResponseAudioTranscriptDone | Zdarzenie serwera response.audio_transcript.done jest zwracane po zakończeniu przesyłania strumieniowego wygenerowanego przez model transkrypcji danych wyjściowych dźwięku. |
RealtimeServerEventResponseContentPartAdded | Zdarzenie serwera response.content_part.added jest zwracane po dodaniu nowej części zawartości do elementu komunikatu asystenta. |
RealtimeServerEventResponseContentPartDone | Zdarzenie serwera response.content_part.done jest zwracane po zakończeniu przesyłania strumieniowego części zawartości. |
RealtimeServerEventResponseCreated | Zdarzenie serwera response.created jest zwracane po utworzeniu nowej odpowiedzi. Jest to pierwsze zdarzenie tworzenia odpowiedzi, w którym odpowiedź jest w stanie początkowym in_progress . |
RealtimeServerEventResponseDone | Zdarzenie serwera response.done jest zwracane po zakończeniu przesyłania strumieniowego odpowiedzi. |
RealtimeServerEventResponseFunctionCallArgumentsDelta | Zdarzenie serwera response.function_call_arguments.delta jest zwracane po zaktualizowaniu argumentów wywołania funkcji wygenerowanej przez model. |
RealtimeServerEventResponseFunctionCallArgumentsDone | Zdarzenie serwera response.function_call_arguments.done jest zwracane, gdy argumenty wywołania funkcji wygenerowane przez model są wykonywane strumieniowo. |
RealtimeServerEventResponseOutputItemAdded | Zdarzenie serwera response.output_item.added jest zwracane po utworzeniu nowego elementu podczas generowania odpowiedzi. |
RealtimeServerEventResponseOutputItemDone | Zdarzenie serwera response.output_item.done jest zwracane po zakończeniu przesyłania strumieniowego elementu. |
RealtimeServerEventResponseTextDelta | Zdarzenie serwera response.text.delta jest zwracane po zaktualizowaniu tekstu wygenerowanego przez model. |
RealtimeServerEventResponseTextDone | Zdarzenie serwera response.text.done jest zwracane po zakończeniu przesyłania strumieniowego tekstu wygenerowanego przez model. |
RealtimeServerEventSessionTworzenie | Zdarzenie serwera jest pierwszym zdarzeniem serwera session.created podczas ustanawiania nowego połączenia z interfejsem API czasu rzeczywistego. To zdarzenie tworzy i zwraca nową sesję z konfiguracją sesji domyślnej. |
RealtimeServerEventSessionUpdated | Zdarzenie serwera session.updated jest zwracane po zaktualizowaniu sesji przez klienta. Jeśli wystąpi błąd, serwer wysyła error zamiast tego zdarzenie. |
RealtimeServerEventConversationCreated
Zdarzenie serwera conversation.created
jest zwracane bezpośrednio po utworzeniu sesji. Jedna konwersacja jest tworzona na sesję.
Struktura zdarzeń
{
"type": "conversation.created",
"conversation": {
"id": "<id>",
"object": "<object>"
}
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.created . |
rozmowa | obiekt | Zasób konwersacji. |
Właściwości konwersacji
Pole | Typ | Opis |
---|---|---|
identyfikator | string | Unikalny identyfikator rozmowy. |
obiekt | string | Typ obiektu musi mieć wartość realtime.conversation . |
RealtimeServerEventConversationItemCreated
Zdarzenie serwera conversation.item.created
jest zwracane po utworzeniu elementu konwersacji. Istnieje kilka scenariuszy, które generują to zdarzenie:
- Serwer generuje odpowiedź, która w przypadku pomyślnego utworzenia jednego lub dwóch elementów typu
message
(rolaassistant
) lub typufunction_call
. - Bufor audio wejściowego jest zatwierdzany przez klienta lub serwer (w
server_vad
trybie). Serwer pobiera zawartość wejściowego buforu audio i dodaje go do nowego elementu komunikatu użytkownika. - Klient wysłał zdarzenie,
conversation.item.create
aby dodać nowy element do konwersacji.
Struktura zdarzeń
{
"type": "conversation.item.created",
"previous_item_id": "<previous_item_id>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.item.created . |
previous_item_id | string | Identyfikator poprzedniego elementu w kontekście konwersacji umożliwia klientowi zrozumienie kolejności konwersacji. |
element | RealtimeConversationResponseItem | Element, który został utworzony. |
RealtimeServerEventConversationItemDeleted
Zdarzenie serwera conversation.item.deleted
jest zwracane, gdy klient usunął element w konwersacji ze zdarzeniem conversation.item.delete
. To zdarzenie służy do synchronizowania historii konwersacji serwera z widokiem klienta.
Struktura zdarzeń
{
"type": "conversation.item.deleted",
"item_id": "<item_id>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.item.deleted . |
item_id | string | Identyfikator usuniętego elementu. |
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted
Zdarzenie serwera conversation.item.input_audio_transcription.completed
jest wynikiem transkrypcji audio dla mowy zapisanej w buforze audio.
Transkrypcja rozpoczyna się, gdy wejściowy bufor audio jest zatwierdzany przez klienta lub serwer (w server_vad
trybie). Transkrypcja jest uruchamiana asynchronicznie z tworzeniem odpowiedzi, więc to zdarzenie może pojawić się przed zdarzeniami odpowiedzi lub po nim.
Modele interfejsu API w czasie rzeczywistym akceptują dźwięk natywnie, a tym samym transkrypcję danych wejściowych to oddzielny proces uruchamiany w osobnym modelu rozpoznawania mowy, obecnie zawsze whisper-1
. W związku z tym transkrypcja może nieco odbiegać od interpretacji modelu i powinna być traktowana jako szorstki przewodnik.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.item.input_audio_transcription.completed . |
item_id | string | Identyfikator elementu wiadomości użytkownika zawierającego dźwięk. |
content_index | integer | Indeks części zawartości zawierającej dźwięk. |
transkrypcja | string | Transkrypcja tekstu. |
RealtimeServerEventConversationItemInputAudioTranscriptionFailed
Zdarzenie serwera conversation.item.input_audio_transcription.failed
jest zwracane, gdy skonfigurowano transkrypcję dźwięku wejściowego, a żądanie transkrypcji dla komunikatu użytkownika nie powiodło się. To zdarzenie jest oddzielone od innych error
zdarzeń, aby klient mógł zidentyfikować powiązany element.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.item.input_audio_transcription.failed . |
item_id | string | Identyfikator elementu komunikatu użytkownika. |
content_index | integer | Indeks części zawartości zawierającej dźwięk. |
error | obiekt | Szczegóły błędu transkrypcji. Zobacz właściwości zagnieżdżone w następnej tabeli. |
Właściwości błędu
Pole | Typ | Opis |
---|---|---|
type | string | Typ błędu. |
code | string | Kod błędu, jeśli istnieje. |
wiadomość | string | Czytelny dla człowieka komunikat o błędzie. |
Param | string | Parametr związany z błędem, jeśli istnieje. |
RealtimeServerEventConversationItemTruncated
Zdarzenie serwera conversation.item.truncated
jest zwracane, gdy klient obcina wcześniej asystenta elementu komunikatu audio z zdarzeniem conversation.item.truncate
. To zdarzenie służy do synchronizowania zrozumienia dźwięku serwera z odtwarzaniem klienta.
To zdarzenie obcina dźwięk i usuwa transkrypcję tekstu po stronie serwera, aby upewnić się, że nie ma tekstu w kontekście, o którego użytkownik nie wie.
Struktura zdarzeń
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość conversation.item.truncated . |
item_id | string | Identyfikator elementu komunikatu asystenta, który został obcięty. |
content_index | integer | Indeks części zawartości, która została obcięta. |
audio_end_ms | integer | Czas trwania, do którego dźwięk został obcięty, w milisekundach. |
RealtimeServerEventError
Zdarzenie serwera error
jest zwracane, gdy wystąpi błąd, który może być problemem klienta lub problemem serwera. Większość błędów można odzyskać, a sesja pozostaje otwarta.
Struktura zdarzeń
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość error . |
error | 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 |
---|---|---|
type | string | Typ błędu. Na przykład typy błędów "invalid_request_error" i "server_error". |
code | string | Kod błędu, jeśli istnieje. |
wiadomość | string | Czytelny dla człowieka komunikat o błędzie. |
Param | string | Parametr związany z błędem, jeśli istnieje. |
event_id | string | Identyfikator zdarzenia klienta, który spowodował błąd, jeśli ma to zastosowanie. |
RealtimeServerEventInputAudioBufferCleared
Zdarzenie serwera input_audio_buffer.cleared
jest zwracane, gdy klient czyści wejściowy bufor audio ze zdarzeniem input_audio_buffer.clear
.
Struktura zdarzeń
{
"type": "input_audio_buffer.cleared"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość input_audio_buffer.cleared . |
RealtimeServerEventInputAudioBufferCommitted
Zdarzenie serwera input_audio_buffer.committed
jest zwracane po zatwierdzeniu wejściowego buforu audio przez klienta lub automatycznie w trybie VAD serwera. Właściwość item_id
jest identyfikatorem utworzonego elementu komunikatu użytkownika. W związku z conversation.item.created
tym zdarzenie jest również wysyłane do klienta.
Struktura zdarzeń
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość input_audio_buffer.committed . |
previous_item_id | string | Identyfikator poprzedniego elementu, po którym zostanie wstawiony nowy element. |
item_id | string | Identyfikator utworzonego elementu wiadomości użytkownika. |
RealtimeServerEventInputAudioBufferSpeechStarted
Zdarzenie serwera input_audio_buffer.speech_started
jest zwracane w server_vad
trybie, gdy mowa jest wykrywana w buforze audio. To zdarzenie może wystąpić za każdym razem, gdy dźwięk jest dodawany do buforu (chyba że mowa została już wykryta).
Uwaga
Klient może chcieć użyć tego zdarzenia, aby przerwać odtwarzanie audio lub przekazać użytkownikowi opinię wizualną.
Klient powinien oczekiwać odebrania input_audio_buffer.speech_stopped
zdarzenia po zatrzymaniu mowy. Właściwość item_id
jest identyfikatorem elementu komunikatu użytkownika utworzonego po zatrzymaniu mowy. Element item_id
jest również uwzględniony w input_audio_buffer.speech_stopped
zdarzeniu, chyba że klient ręcznie zatwierdzi bufor audio podczas aktywacji VAD.
Struktura zdarzeń
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość input_audio_buffer.speech_started . |
audio_start_ms | integer | Milisekundy od początku wszystkich audio zapisanych w buforze podczas sesji, gdy mowa została wykryta po raz pierwszy. Ta właściwość odpowiada początku dźwięku wysyłanego do modelu, a tym samym zawiera prefix_padding_ms skonfigurowane w sesji. |
item_id | string | Identyfikator elementu komunikatu użytkownika utworzony podczas zatrzymywania mowy. |
RealtimeServerEventInputAudioBufferSpeechStopped
Zdarzenie serwera input_audio_buffer.speech_stopped
jest zwracane w server_vad
trybie, gdy serwer wykryje koniec mowy w buforze audio.
Serwer wysyła conversation.item.created
również zdarzenie z elementem komunikatu użytkownika utworzonym na podstawie buforu audio.
Struktura zdarzeń
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość input_audio_buffer.speech_stopped . |
audio_end_ms | integer | Milisekundy od momentu rozpoczęcia sesji po zatrzymaniu mowy. Ta właściwość odpowiada końcu dźwięku wysyłanego do modelu, a tym samym zawiera min_silence_duration_ms skonfigurowane w sesji. |
item_id | string | Identyfikator utworzonego elementu wiadomości użytkownika. |
RealtimeServerEventRateLimitsUpdated
Zdarzenie serwera rate_limits.updated
jest emitowane na początku odpowiedzi, aby wskazać zaktualizowane limity szybkości.
Po utworzeniu odpowiedzi niektóre tokeny są zarezerwowane dla tokenów wyjściowych. Przedstawione tutaj limity szybkości odzwierciedlają rezerwację, która jest następnie odpowiednio dostosowywana po zakończeniu odpowiedzi.
Struktura zdarzeń
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość rate_limits.updated . |
rate_limits | tablica elementu RealtimeServerEventRateLimitsUpdatedRateLimitsItem | Lista informacji o limicie szybkości. |
RealtimeServerEventResponseAudioDelta
Zdarzenie serwera response.audio.delta
jest zwracane po zaktualizowaniu dźwięku wygenerowanego przez model.
Struktura zdarzeń
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.audio.delta . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
content_index | integer | Indeks części zawartości w tablicy zawartości elementu. |
delta | string | Delta danych audio zakodowanych w formacie Base64. |
RealtimeServerEventResponseAudioDone
Zdarzenie serwera response.audio.done
jest zwracane po zakończeniu generowania przez model dźwięku.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.audio.done . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
content_index | integer | Indeks części zawartości w tablicy zawartości elementu. |
RealtimeServerEventResponseAudioTranscriptDelta
Zdarzenie serwera response.audio_transcript.delta
jest zwracane po zaktualizowaniu transkrypcji wygenerowanej przez model danych wyjściowych dźwięku.
Struktura zdarzeń
{
"type": "response.audio_transcript.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.audio_transcript.delta . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
content_index | integer | Indeks części zawartości w tablicy zawartości elementu. |
delta | string | Delta transkrypcji. |
RealtimeServerEventResponseAudioTranscriptDone
Zdarzenie serwera response.audio_transcript.done
jest zwracane po zakończeniu przesyłania strumieniowego wygenerowanego przez model transkrypcji danych wyjściowych dźwięku.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.audio_transcript.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"transcript": "<transcript>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.audio_transcript.done . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
content_index | integer | Indeks części zawartości w tablicy zawartości elementu. |
transkrypcja | string | Ostatnia transkrypcja dźwięku. |
RealtimeServerEventResponseContentPartAdded
Zdarzenie serwera response.content_part.added
jest zwracane po dodaniu nowej części zawartości do elementu komunikatu asystenta podczas generowania odpowiedzi.
Struktura zdarzeń
{
"type": "response.content_part.added",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.content_part.added . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu, do którego została dodana część zawartości. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
content_index | integer | Indeks części zawartości w tablicy zawartości elementu. |
część | RealtimeContentPart | Część zawartości, która została dodana. |
Właściwości części
Pole | Typ | Opis |
---|---|---|
type | RealtimeContentPartType |
RealtimeServerEventResponseContentPartDone
Zdarzenie serwera response.content_part.done
jest zwracane, gdy część zawartości jest wykonywana strumieniowo w elemencie komunikatu asystenta.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.content_part.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.content_part.done . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
content_index | integer | Indeks części zawartości w tablicy zawartości elementu. |
część | RealtimeContentPart | Część zawartości, która jest wykonywana. |
Właściwości części
Pole | Typ | Opis |
---|---|---|
type | RealtimeContentPartType |
RealtimeServerEventResponseCreated
Zdarzenie serwera response.created
jest zwracane po utworzeniu nowej odpowiedzi. Jest to pierwsze zdarzenie tworzenia odpowiedzi, w którym odpowiedź jest w stanie początkowym in_progress
.
Struktura zdarzeń
{
"type": "response.created"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.created . |
odpowiedź | Czas rzeczywistyResponse | Obiekt odpowiedzi. |
RealtimeServerEventResponseDone
Zdarzenie serwera response.done
jest zwracane po zakończeniu przesyłania strumieniowego odpowiedzi. To zdarzenie jest zawsze emitowane, niezależnie od stanu końcowego. Obiekt odpowiedzi uwzględniony w response.done
zdarzeniu zawiera wszystkie elementy wyjściowe w odpowiedzi, ale pomija nieprzetworzone dane audio.
Struktura zdarzeń
{
"type": "response.done"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.done . |
odpowiedź | Czas rzeczywistyResponse | Obiekt odpowiedzi. |
RealtimeServerEventResponseFunctionCallArgumentsDelta
Zdarzenie serwera response.function_call_arguments.delta
jest zwracane po zaktualizowaniu argumentów wywołania funkcji wygenerowanej przez model.
Struktura zdarzeń
{
"type": "response.function_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"delta": "<delta>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.function_call_arguments.delta . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu wywołania funkcji. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
call_id | string | Identyfikator wywołania funkcji. |
delta | string | Argumenty delta jako ciąg JSON. |
RealtimeServerEventResponseFunctionCallArgumentsDone
Zdarzenie serwera response.function_call_arguments.done
jest zwracane, gdy argumenty wywołania funkcji wygenerowane przez model są wykonywane strumieniowo.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.function_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"arguments": "<arguments>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.function_call_arguments.done . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu wywołania funkcji. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
call_id | string | Identyfikator wywołania funkcji. |
Argumenty | string | Ostatnie argumenty jako ciąg JSON. |
RealtimeServerEventResponseOutputItemAdded
Zdarzenie serwera response.output_item.added
jest zwracane po utworzeniu nowego elementu podczas generowania odpowiedzi.
Struktura zdarzeń
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.output_item.added . |
response_id | string | Identyfikator odpowiedzi, do której należy element. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
element | RealtimeConversationResponseItem | Element, który został dodany. |
RealtimeServerEventResponseOutputItemDone
Zdarzenie serwera response.output_item.done
jest zwracane po zakończeniu przesyłania strumieniowego elementu.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.output_item.done . |
response_id | string | Identyfikator odpowiedzi, do której należy element. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
element | RealtimeConversationResponseItem | Element, który jest wykonywany strumieniowo. |
RealtimeServerEventResponseTextDelta
Zdarzenie serwera response.text.delta
jest zwracane po zaktualizowaniu tekstu wygenerowanego przez model. Tekst odpowiada text
części zawartości elementu komunikatu asystenta.
Struktura zdarzeń
{
"type": "response.text.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.text.delta . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
content_index | integer | Indeks części zawartości w tablicy zawartości elementu. |
delta | string | Delta tekstu. |
RealtimeServerEventResponseTextDone
Zdarzenie serwera response.text.done
jest zwracane po zakończeniu przesyłania strumieniowego tekstu wygenerowanego przez model. Tekst odpowiada text
części zawartości elementu komunikatu asystenta.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość response.text.done . |
response_id | string | Identyfikator odpowiedzi. |
item_id | string | Identyfikator elementu. |
output_index | integer | Indeks elementu wyjściowego w odpowiedzi. |
content_index | integer | Indeks części zawartości w tablicy zawartości elementu. |
text | string | Końcowa zawartość tekstowa. |
RealtimeServerEventSessionTworzenie
Zdarzenie serwera jest pierwszym zdarzeniem serwera session.created
podczas ustanawiania nowego połączenia z interfejsem API czasu rzeczywistego. To zdarzenie tworzy i zwraca nową sesję z konfiguracją sesji domyślnej.
Struktura zdarzeń
{
"type": "session.created"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość session.created . |
session | RealtimeResponseSession | Obiekt sesji. |
RealtimeServerEventSessionUpdated
Zdarzenie serwera session.updated
jest zwracane po zaktualizowaniu sesji przez klienta. Jeśli wystąpi błąd, serwer wysyła error
zamiast tego zdarzenie.
Struktura zdarzeń
{
"type": "session.updated"
}
Właściwości
Pole | Typ | Opis |
---|---|---|
type | string | Typ zdarzenia musi mieć wartość session.updated . |
session | RealtimeResponseSession | Obiekt sesji. |
Składniki
RealtimeAudioFormat
Dozwolone wartości:
pcm16
g711_ulaw
g711_alaw
RealtimeAudioInputTranscriptionModel
Dozwolone wartości:
whisper-1
RealtimeAudioInputTranscriptionSettings
Pole | Typ | Opis |
---|---|---|
model | RealtimeAudioInputTranscriptionModel | whisper-1 Domyślny model jest obecnie jedynym modelem obsługiwanym dla transkrypcji danych wejściowych audio. |
RealtimeClientEvent
Pole | Typ | Opis |
---|---|---|
type | RealtimeClientEventType | Typ zdarzenia klienta. |
event_id | string | Unikatowy identyfikator zdarzenia. Klient może określić identyfikator, który pomoże zidentyfikować zdarzenie. |
RealtimeClientEventType
Dozwolone wartości:
session.update
input_audio_buffer.append
input_audio_buffer.commit
input_audio_buffer.clear
conversation.item.create
conversation.item.delete
conversation.item.truncate
response.create
response.cancel
RealtimeContentPart
Pole | Typ | Opis |
---|---|---|
type | RealtimeContentPartType | Typ zawartości. Właściwość function obiektu.Dozwolone wartości: input_text , , item_reference input_audio , text . |
text | string | Zawartość tekstowa. Ta właściwość ma zastosowanie do input_text typów zawartości i text . |
identyfikator | string | Identyfikator poprzedniego elementu konwersacji do odwołania w elementach utworzonych zarówno przez klienta, jak i serwer. Ta właściwość ma zastosowanie do item_reference typu zawartości w response.create zdarzeniach. |
dźwięk | string | Bajty audio zakodowane w formacie base64. Ta właściwość ma zastosowanie do input_audio typu zawartości. |
transkrypcja | string | Transkrypcja dźwięku. Ta właściwość ma zastosowanie do input_audio typu zawartości. |
RealtimeContentPartType
Dozwolone wartości:
input_text
input_audio
text
audio
RealtimeConversationItemBase
Element, który ma zostać dodany do konwersacji.
W tej tabeli opisano wszystkie RealtimeConversationItem
właściwości. Właściwości, które mają zastosowanie dla każdego zdarzenia, zależą od właściwości RealtimeItemType.
Pole | Typ | Opis |
---|---|---|
identyfikator | string | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. |
type | RealtimeItemType | Typ elementu. Dozwolone wartości: message , , function_call function_call_output |
obiekt | string | Identyfikator zwracanego obiektu interfejsu API. Wartość będzie zawsze mieć wartość realtime.item . |
status | RealtimeItemStatus | Stan elementu. To pole nie ma wpływu na konwersację, ale jest akceptowane pod kątem spójności ze zdarzeniem conversation.item.created .Dozwolone wartości: completed , incomplete |
role | RealtimeMessageRole | Rola nadawcy wiadomości. Ta właściwość ma zastosowanie tylko dla message elementów. Dozwolone wartości: system , , user assistant |
content | tablica obiektu RealtimeContentPart | Zawartość wiadomości. Ta właściwość ma zastosowanie tylko dla message elementów.— Elementy wiadomości roli system obsługują tylko input_text zawartość.— Elementy wiadomości pomocy technicznej input_text i input_audio zawartości roliuser .— Elementy wiadomości zawartości obsługującej text rolęassistant . |
call_id | string | Identyfikator wywołania funkcji (dla function_call i function_call_output elementów). W przypadku przekazania function_call_output elementu serwer sprawdzi, czy function_call element o tym samym identyfikatorze istnieje w historii konwersacji. |
nazwa | string | Nazwa wywoływanej funkcji (dla function_call elementów). |
Argumenty | string | Argumenty wywołania funkcji (dla function_call elementów). |
output | string | Dane wyjściowe wywołania funkcji (dla function_call_output elementów). |
RealtimeConversationRequestItem
Obiekt służy RealtimeConversationRequestItem
do tworzenia nowego elementu w konwersacji za pośrednictwem zdarzenia conversation.item.create .
Pole | Typ | Opis |
---|---|---|
type | RealtimeItemType | Typ elementu. |
identyfikator | string | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. |
RealtimeConversationResponseItem
Obiekt RealtimeConversationResponseItem
reprezentuje element w konwersacji. Jest on używany w niektórych zdarzeniach serwera, takich jak:
- conversation.item.created
- response.output_item.added
- response.output_item.done
response.created
(za pomocąresponse
typuRealtimeResponse
właściwości )response.done
(za pomocąresponse
typuRealtimeResponse
właściwości )
Pole | Typ | Opis |
---|---|---|
obiekt | string | Identyfikator zwróconego obiektu interfejsu API. Dozwolone wartości: realtime.item |
type | RealtimeItemType | Typ elementu. Dozwolone wartości: message , , function_call function_call_output |
identyfikator | string | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. Ta właściwość jest dopuszczana do wartości null. |
RealtimeFunctionTool
Definicja narzędzia funkcji używanego przez punkt końcowy czasu rzeczywistego.
Pole | Typ | Opis |
---|---|---|
type | string | Typ narzędzia. Dozwolone wartości: function |
nazwa | string | Nazwa funkcji. |
opis | string | Opis funkcji, w tym wytyczne dotyczące użycia. Na przykład "Użyj tej funkcji, aby uzyskać bieżący czas". |
parameters | obiekt | Parametry funkcji w postaci obiektu JSON. |
RealtimeItemStatus
Dozwolone wartości:
in_progress
completed
incomplete
RealtimeItemType
Dozwolone wartości:
message
function_call
function_call_output
RealtimeMessageRole
Dozwolone wartości:
system
user
assistant
RealtimeRequestAssistantMessageItem
Pole | Typ | Opis |
---|---|---|
role | string | Rola wiadomości. Dozwolone wartości: assistant |
content | tablica obiektu RealtimeRequestTextContentPart | Zawartość wiadomości. |
RealtimeRequestAudioContentPart
Pole | Typ | Opis |
---|---|---|
type | string | Typ części zawartości. Dozwolone wartości: input_audio |
transkrypcja | string | Transkrypcja dźwięku. |
RealtimeRequestFunctionCallItem
Pole | Typ | Opis |
---|---|---|
type | string | Typ elementu. Dozwolone wartości: function_call |
nazwa | string | Nazwa elementu wywołania funkcji. |
call_id | string | Identyfikator elementu wywołania funkcji. |
Argumenty | string | Argumenty elementu wywołania funkcji. |
status | RealtimeItemStatus | Stan elementu. |
RealtimeRequestFunctionCallOutputItem
Pole | Typ | Opis |
---|---|---|
type | string | Typ elementu. Dozwolone wartości: function_call_output |
call_id | string | Identyfikator elementu wywołania funkcji. |
output | string | Dane wyjściowe elementu wywołania funkcji. |
RealtimeRequestMessageItem
Pole | Typ | Opis |
---|---|---|
type | string | Typ elementu. Dozwolone wartości: message |
role | RealtimeMessageRole | Rola wiadomości. |
status | RealtimeItemStatus | Stan elementu. |
RealtimeRequestMessageReferenceItem
Pole | Typ | Opis |
---|---|---|
type | string | Typ elementu. Dozwolone wartości: message |
identyfikator | string | Identyfikator elementu wiadomości. |
RealtimeRequestSession
Obiekt jest używany RealtimeRequestSession
, gdy chcesz zaktualizować konfigurację sesji za pośrednictwem zdarzenia session.update .
Pole | Typ | Opis |
---|---|---|
Sposoby | tablica | Modalności obsługiwane przez sesję. Dozwolone wartości: text , audio Na przykład jest to ustawienie domyślne, "modalities": ["text", "audio"] które włącza zarówno modalności tekstowe, jak i audio. Aby włączyć tylko tekst, ustaw wartość "modalities": ["text"] . Nie można włączyć tylko dźwięku. |
instrukcje | string | Instrukcje (komunikat systemowy) dotyczące kierowania odpowiedziami tekstowymi i audio modelu. Poniżej przedstawiono przykładowe instrukcje ułatwiające przewodnik zawartości i format odpowiedzi tekstowych i audio: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" Oto kilka przykładowych instrukcji ułatwiania zachowania audio: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" Chociaż model może nie zawsze przestrzegać tych instrukcji, udostępnia wskazówki dotyczące żądanego zachowania. |
voice | RealtimeVoice | Głos używany na potrzeby odpowiedzi modelu na sesję. Po użyciu głosu w sesji na potrzeby odpowiedzi audio modelu nie można go zmienić. |
input_audio_format | RealtimeAudioFormat | Format wejściowego dźwięku. |
output_audio_format | RealtimeAudioFormat | Format dźwięku wyjściowego. |
input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Ustawienia transkrypcji danych wejściowych audio. Ta właściwość jest dopuszczana do wartości null. |
turn_detection | RealtimeTurnDetection | Ustawienia wykrywania kolei dla sesji. Ta właściwość jest dopuszczana do wartości null. |
tools | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
tool_choice | RealtimeToolChoice | Narzędzie wybrane dla sesji. Dozwolone wartości: auto , none i required . W przeciwnym razie można określić nazwę funkcji do użycia. |
temperature | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
max_response_output_tokens | liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, w tym wywołania narzędzi. Określ liczbę całkowitą z zakresu od 1 do 4096, aby ograniczyć tokeny wyjściowe. W przeciwnym razie ustaw wartość na "inf", aby zezwolić na maksymalną liczbę tokenów. Aby na przykład ograniczyć tokeny wyjściowe do 1000, ustaw wartość "max_response_output_tokens": 1000 . Aby zezwolić na maksymalną liczbę tokenów, ustaw wartość "max_response_output_tokens": "inf" .Wartość domyślna to "inf" . |
RealtimeRequestSystemMessageItem
Pole | Typ | Opis |
---|---|---|
role | string | Rola wiadomości. Dozwolone wartości: system |
content | tablica obiektu RealtimeRequestTextContentPart | Zawartość wiadomości. |
RealtimeRequestTextContentPart
Pole | Typ | Opis |
---|---|---|
type | string | Typ części zawartości. Dozwolone wartości: input_text |
text | string | Zawartość tekstowa. |
RealtimeRequestUserMessageItem
Pole | Typ | Opis |
---|---|---|
role | string | Rola wiadomości. Dozwolone wartości: user |
content | tablica elementów RealtimeRequestTextContentPart lub RealtimeRequestAudioContentPart | Zawartość wiadomości. |
Czas rzeczywistyResponse
Pole | Typ | Opis |
---|---|---|
obiekt | string | Obiekt odpowiedzi. Dozwolone wartości: realtime.response |
identyfikator | string | Unikatowy identyfikator odpowiedzi. |
status | RealtimeResponseStatus | Stan odpowiedzi. Domyślną wartością stanu jest in_progress . |
status_details | RealtimeResponseStatusDetails | Szczegóły stanu odpowiedzi. Ta właściwość jest dopuszczana do wartości null. |
output | tablica obiektów RealtimeConversationResponseItem | Elementy wyjściowe odpowiedzi. |
użycie | obiekt | Statystyki użycia odpowiedzi. Każda sesja interfejsu API w czasie rzeczywistym utrzymuje kontekst konwersacji i dołącza nowe elementy do konwersacji. Dane wyjściowe z poprzednich kolei (tokeny tekstowe i dźwiękowe) są wprowadzane później. Zobacz następne zagnieżdżone właściwości. |
+ total_tokens | integer | Łączna liczba tokenów w odpowiedzi, w tym tekst wejściowy i wyjściowy oraz tokeny audio. Właściwość usage obiektu. |
+ input_tokens | integer | Liczba tokenów wejściowych używanych w odpowiedzi, w tym tokenów tekstowych i dźwiękowych. Właściwość usage obiektu. |
+ output_tokens | integer | Liczba tokenów wyjściowych wysłanych w odpowiedzi, w tym tokeny tekstowe i dźwiękowe. Właściwość usage obiektu. |
+ input_token_details | obiekt | Szczegółowe informacje o tokenach wejściowych używanych w odpowiedzi. Właściwość usage obiektu.Br> Zobacz następne zagnieżdżone właściwości. |
+ cached_tokens | integer | Liczba buforowanych tokenów używanych w odpowiedzi. Właściwość input_token_details obiektu. |
+ text_tokens | integer | Liczba tokenów tekstowych używanych w odpowiedzi. Właściwość input_token_details obiektu. |
+ audio_tokens | integer | Liczba tokenów dźwiękowych używanych w odpowiedzi. Właściwość input_token_details obiektu. |
+ output_token_details | obiekt | Szczegółowe informacje o tokenach wyjściowych używanych w odpowiedzi. Właściwość usage obiektu.Zobacz następne zagnieżdżone właściwości. |
+ text_tokens | integer | Liczba tokenów tekstowych używanych w odpowiedzi. Właściwość output_token_details obiektu. |
+ audio_tokens | integer | Liczba tokenów dźwiękowych używanych w odpowiedzi. Właściwość output_token_details obiektu. |
RealtimeResponseAudioContentPart
Pole | Typ | Opis |
---|---|---|
type | string | Typ części zawartości. Dozwolone wartości: audio |
transkrypcja | string | Transkrypcja dźwięku. Ta właściwość jest dopuszczana do wartości null. |
RealtimeResponseBase
Zasób odpowiedzi.
RealtimeResponseFunctionCallItem
Pole | Typ | Opis |
---|---|---|
type | string | Typ elementu. Dozwolone wartości: function_call |
nazwa | string | Nazwa elementu wywołania funkcji. |
call_id | string | Identyfikator elementu wywołania funkcji. |
Argumenty | string | Argumenty elementu wywołania funkcji. |
status | RealtimeItemStatus | Stan elementu. |
RealtimeResponseFunctionCallOutputItem
Pole | Typ | Opis |
---|---|---|
type | string | Typ elementu. Dozwolone wartości: function_call_output |
call_id | string | Identyfikator elementu wywołania funkcji. |
output | string | Dane wyjściowe elementu wywołania funkcji. |
RealtimeResponseMessageItem
Pole | Typ | Opis |
---|---|---|
type | string | Typ elementu. Dozwolone wartości: message |
role | RealtimeMessageRole | Rola wiadomości. |
content | tablica | Zawartość wiadomości. Elementy tablicy: RealtimeResponseTextContentPart |
status | RealtimeItemStatus | Stan elementu. |
RealtimeResponseOptions
Pole | Typ | Opis |
---|---|---|
Sposoby | tablica | Modalności obsługiwane przez sesję. Dozwolone wartości: text , audio Na przykład jest to ustawienie domyślne, "modalities": ["text", "audio"] które włącza zarówno modalności tekstowe, jak i audio. Aby włączyć tylko tekst, ustaw wartość "modalities": ["text"] . Nie można włączyć tylko dźwięku. |
instrukcje | string | Instrukcje (komunikat systemowy) dotyczące kierowania odpowiedziami tekstowymi i audio modelu. Poniżej przedstawiono przykładowe instrukcje ułatwiające przewodnik zawartości i format odpowiedzi tekstowych i audio: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" Oto kilka przykładowych instrukcji ułatwiania zachowania audio: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" Chociaż model może nie zawsze przestrzegać tych instrukcji, udostępnia wskazówki dotyczące żądanego zachowania. |
voice | RealtimeVoice | Głos używany na potrzeby odpowiedzi modelu na sesję. Po użyciu głosu w sesji na potrzeby odpowiedzi audio modelu nie można go zmienić. |
output_audio_format | RealtimeAudioFormat | Format dźwięku wyjściowego. |
tools | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
tool_choice | RealtimeToolChoice | Narzędzie wybrane dla sesji. |
temperature | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
max__output_tokens | liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, w tym wywołania narzędzi. Określ liczbę całkowitą z zakresu od 1 do 4096, aby ograniczyć tokeny wyjściowe. W przeciwnym razie ustaw wartość na "inf", aby zezwolić na maksymalną liczbę tokenów. Aby na przykład ograniczyć tokeny wyjściowe do 1000, ustaw wartość "max_response_output_tokens": 1000 . Aby zezwolić na maksymalną liczbę tokenów, ustaw wartość "max_response_output_tokens": "inf" .Wartość domyślna to "inf" . |
rozmowa | string | Określa, do której konwersacji jest dodawana odpowiedź. Obsługiwane wartości to auto i none .auto Wartość (lub nie ustawienie tej właściwości) gwarantuje, że zawartość odpowiedzi zostanie dodana do domyślnej konwersacji sesji.Ustaw tę właściwość na , aby none utworzyć odpowiedź poza pasmem, w której elementy nie zostaną dodane do domyślnej konwersacji. Aby uzyskać więcej informacji, zobacz przewodnik z instrukcjami.Wartości domyślne "auto" |
metadane | map | Konfiguracja maksymalnie 16 par klucz-wartość, które można dołączyć do obiektu. Może to być przydatne do przechowywania dodatkowych informacji o obiekcie w formacie ustrukturyzowanym. Klucze mogą mieć długość maksymalnie 64 znaków, a wartości mogą mieć długość maksymalnie 512 znaków. Na przykład: metadata: { topic: "classification" } . |
input | tablica | Elementy wejściowe do uwzględnienia w wierszu polecenia dla modelu. Tworzy nowy kontekst dla tej odpowiedzi bez uwzględniania konwersacji domyślnej. Może zawierać odwołania do elementów z konwersacji domyślnej. Elementy tablicy: RealtimeConversationItemBase |
RealtimeResponseSession
Obiekt RealtimeResponseSession
reprezentuje sesję w interfejsie API czasu rzeczywistego. Jest on używany w niektórych zdarzeniach serwera, takich jak:
Pole | Typ | Opis |
---|---|---|
obiekt | string | Obiekt sesji. Dozwolone wartości: realtime.session |
identyfikator | string | Unikatowy identyfikator sesji. |
model | string | Model używany na potrzeby sesji. |
Sposoby | tablica | Modalności obsługiwane przez sesję. Dozwolone wartości: text , audio Na przykład jest to ustawienie domyślne, "modalities": ["text", "audio"] które włącza zarówno modalności tekstowe, jak i audio. Aby włączyć tylko tekst, ustaw wartość "modalities": ["text"] . Nie można włączyć tylko dźwięku. |
instrukcje | string | Instrukcje (komunikat systemowy) dotyczące kierowania odpowiedziami tekstowymi i audio modelu. Poniżej przedstawiono przykładowe instrukcje ułatwiające przewodnik zawartości i format odpowiedzi tekstowych i audio: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" Oto kilka przykładowych instrukcji ułatwiania zachowania audio: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" Chociaż model może nie zawsze przestrzegać tych instrukcji, udostępnia wskazówki dotyczące żądanego zachowania. |
voice | RealtimeVoice | Głos używany na potrzeby odpowiedzi modelu na sesję. Po użyciu głosu w sesji na potrzeby odpowiedzi audio modelu nie można go zmienić. |
input_audio_format | RealtimeAudioFormat | Format wejściowego dźwięku. |
output_audio_format | RealtimeAudioFormat | Format dźwięku wyjściowego. |
input_audio_transcription | RealtimeAudioInputTranscriptionSettings | Ustawienia transkrypcji danych wejściowych audio. Ta właściwość jest dopuszczana do wartości null. |
turn_detection | RealtimeTurnDetection | Ustawienia wykrywania kolei dla sesji. Ta właściwość jest dopuszczana do wartości null. |
tools | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
tool_choice | RealtimeToolChoice | Narzędzie wybrane dla sesji. |
temperature | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
max_response_output_tokens | liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, w tym wywołania narzędzi. Określ liczbę całkowitą z zakresu od 1 do 4096, aby ograniczyć tokeny wyjściowe. W przeciwnym razie ustaw wartość na "inf", aby zezwolić na maksymalną liczbę tokenów. Aby na przykład ograniczyć tokeny wyjściowe do 1000, ustaw wartość "max_response_output_tokens": 1000 . Aby zezwolić na maksymalną liczbę tokenów, ustaw wartość "max_response_output_tokens": "inf" . |
RealtimeResponseStatus
Dozwolone wartości:
in_progress
completed
cancelled
incomplete
failed
RealtimeResponseStatusDetails
Pole | Typ | Opis |
---|---|---|
type | RealtimeResponseStatus | Stan odpowiedzi. |
RealtimeResponseTextContentPart
Pole | Typ | Opis |
---|---|---|
type | string | Typ części zawartości. Dozwolone wartości: text |
text | string | Zawartość tekstowa. |
RealtimeServerEvent
Pole | Typ | Opis |
---|---|---|
type | RealtimeServerEventType | Typ zdarzenia serwera. |
event_id | string | Unikatowy identyfikator zdarzenia serwera. |
RealtimeServerEventRateLimitsUpdatedRateLimitsItem
Pole | Typ | opis |
---|---|---|
nazwa | string | Nazwa właściwości limitu szybkości zawierająca informacje o tym elemencie. |
limit | integer | Maksymalny skonfigurowany limit dla tej właściwości limitu szybkości. |
pozostało | integer | Pozostały limit przydziału dostępny dla skonfigurowanego limitu dla tej właściwości limitu szybkości. |
reset_seconds | Liczba | Pozostały czas (w sekundach), dopóki ta właściwość limitu szybkości nie zostanie zresetowana. |
RealtimeServerEventType
Dozwolone wartości:
session.created
session.updated
conversation.created
conversation.item.created
conversation.item.deleted
conversation.item.truncated
response.created
response.done
rate_limits.updated
response.output_item.added
response.output_item.done
response.content_part.added
response.content_part.done
response.audio.delta
response.audio.done
response.audio_transcript.delta
response.audio_transcript.done
response.text.delta
response.text.done
response.function_call_arguments.delta
response.function_call_arguments.done
input_audio_buffer.speech_started
input_audio_buffer.speech_stopped
conversation.item.input_audio_transcription.completed
conversation.item.input_audio_transcription.failed
input_audio_buffer.committed
input_audio_buffer.cleared
error
RealtimeServerVadTurnDetection
Pole | Typ | Opis |
---|---|---|
type | string | Typ wykrywania kolei. Dozwolone wartości: server_vad |
threshold | Liczba | Próg aktywacji dla wykrywania zwrotu vaD serwera. W hałaśliwych środowiskach może być konieczne zwiększenie progu, aby uniknąć wyników fałszywie dodatnich. W cichych środowiskach może być konieczne zmniejszenie progu, aby uniknąć wyników fałszywie ujemnych. Wartość domyślna to 0.5 . Próg można ustawić na wartość między 0.0 i 1.0 . |
prefix_padding_ms | string | Czas trwania dźwięku mowy (w milisekundach) do uwzględnienia przed rozpoczęciem wykrytej mowy. Wartość domyślna to 300 . |
silence_duration_ms | string | Czas trwania ciszy (w milisekundach), aby wykryć koniec mowy. Chcesz wykryć koniec mowy tak szybko, jak to możliwe, ale nie zbyt szybko, aby uniknąć odcięcia ostatniej części mowy. Model odpowie szybciej, jeśli ustawisz tę wartość na niższą liczbę, ale może ona odciąć ostatnią część mowy. Jeśli ustawisz tę wartość na wyższą liczbę, model będzie czekać dłużej, aby wykryć koniec mowy, ale może to potrwać dłużej. |
RealtimeSessionBase
Konfiguracja obiektu sesji w czasie rzeczywistym.
Narzędzia czasu rzeczywistego
Podstawowa reprezentacja definicji narzędzia w czasie rzeczywistym.
Pole | Typ | Opis |
---|---|---|
type | RealtimeToolType | Typ narzędzia. |
RealtimeToolChoice
Połączony zestaw dostępnych reprezentacji dla parametru czasu tool_choice
rzeczywistego obejmujący zarówno opcje literału ciągu, jak "auto" i odwołania strukturalne do zdefiniowanych narzędzi.
RealtimeToolChoiceFunctionObject
Reprezentacja czasu tool_choice
rzeczywistego wybierania nazwanego narzędzia funkcji.
Pole | Typ | Opis |
---|---|---|
type | string | Typ elementu tool_choice .Dozwolone wartości: function |
function | obiekt | Narzędzie funkcji do wybrania. Zobacz następne zagnieżdżone właściwości. |
+ nazwa | string | Nazwa narzędzia funkcji. Właściwość function obiektu. |
RealtimeToolChoiceLiteral
Dostępny zestaw opcji literału tool_choice
ciągu na poziomie trybu dla punktu końcowego w czasie rzeczywistym.
Dozwolone wartości:
auto
none
required
RealtimeToolChoiceObject
Podstawowa reprezentacja dla czasu tool_choice
rzeczywistego wybierania nazwanego narzędzia.
Pole | Typ | Opis |
---|---|---|
type | RealtimeToolType | Typ elementu tool_choice . |
RealtimeToolType
Obsługiwane narzędzia dyskryminujące typy narzędzi dla narzędzi w czasie rzeczywistym. Obecnie obsługiwane są tylko narzędzia "function".
Dozwolone wartości:
function
RealtimeTurnDetection
Pole | Typ | Opis |
---|---|---|
type | RealtimeTurnDetectionType | Typ wykrywania kolei. Dozwolone wartości: server_vad |
threshold | Liczba | Próg aktywacji dla wykrywania zwrotu vaD serwera. W hałaśliwych środowiskach może być konieczne zwiększenie progu, aby uniknąć wyników fałszywie dodatnich. W cichych środowiskach może być konieczne zmniejszenie progu, aby uniknąć wyników fałszywie ujemnych. Wartość domyślna to 0.5 . Próg można ustawić na wartość między 0.0 i 1.0 . |
prefix_padding_ms | string | Czas trwania dźwięku mowy (w milisekundach) do uwzględnienia przed rozpoczęciem wykrytej mowy. Domyślnie to 300 milisekundy. |
silence_duration_ms | string | Czas trwania ciszy (w milisekundach), aby wykryć koniec mowy. Chcesz wykryć koniec mowy tak szybko, jak to możliwe, ale nie zbyt szybko, aby uniknąć odcięcia ostatniej części mowy. Model odpowie szybciej, jeśli ustawisz tę wartość na niższą liczbę, ale może ona odciąć ostatnią część mowy. Jeśli ustawisz tę wartość na wyższą liczbę, model będzie czekać dłużej, aby wykryć koniec mowy, ale może to potrwać dłużej. Domyślnie to 500 milisekundy. |
create_response | boolean | Wskazuje, czy serwer automatycznie utworzy odpowiedź po włączeniu funkcji VAD i zatrzymaniu mowy. Wartość domyślna to true . |
RealtimeTurnDetectionType
Dozwolone wartości:
server_vad
RealtimeVoice
Dozwolone wartości:
alloy
ash
ballad
coral
echo
sage
shimmer
verse
Powiązana zawartość
- Wprowadzenie do przewodnika Szybki start dotyczącego interfejsu API czasu rzeczywistego.
- Dowiedz się więcej o sposobie korzystania z interfejsu API czasu rzeczywistego.