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 | Wyślij to zdarzenie klienta podczas dodawania elementu do konwersacji. |
RealtimeClientEventConversationItemDelete | Wyślij to zdarzenie klienta, gdy chcesz usunąć dowolny element z historii konwersacji. |
RealtimeClientEventConversationItemTruncate | Wyślij to zdarzenie klienta, gdy chcesz obcinać dźwięk poprzedniego asystenta. |
RealtimeClientEventInputAudioBufferAppend | Wyślij to zdarzenie klienta, aby dołączyć bajty audio do wejściowego buforu audio. |
RealtimeClientEventInputAudioBufferClear | Wyślij to zdarzenie klienta, aby wyczyścić bajty audio w buforze. |
RealtimeClientEventInputAudioBufferCommit | Wyślij to zdarzenie klienta, aby zatwierdzić bajty audio do wiadomości użytkownika. |
RealtimeClientEventResponseCancel | Wyślij to zdarzenie klienta, aby anulować odpowiedź w toku. |
RealtimeClientEventResponseCreate | Wyślij to zdarzenie klienta, aby wyzwolić generowanie odpowiedzi. |
RealtimeClientEventSessionUpdate | Wyślij to zdarzenie klienta, aby zaktualizować domyślną konfigurację 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 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 po utworzeniu konwersacji. Emitowane bezpośrednio po utworzeniu sesji. |
RealtimeServerEventConversationItemCreated | Zdarzenie serwera po utworzeniu elementu konwersacji. |
RealtimeServerEventConversationItemDeleted | Zdarzenie serwera po usunięciu elementu w konwersacji. |
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted | Zdarzenie serwera, gdy włączono transkrypcję dźwięku wejściowego, a transkrypcja zakończy się powodzeniem. |
RealtimeServerEventConversationItemInputAudioTranscriptionFailed | Zdarzenie serwera, gdy skonfigurowano transkrypcję dźwięku wejściowego, a żądanie transkrypcji dla komunikatu użytkownika nie powiodło się. |
RealtimeServerEventConversationItemTruncated | Zdarzenie serwera, gdy klient obcina wcześniej asystenta elementu komunikatu audio. |
RealtimeServerEventError | Zdarzenie serwera w przypadku wystąpienia błędu. |
RealtimeServerEventInputAudioBufferCleared | Zdarzenie serwera, gdy klient czyści wejściowy bufor audio. |
RealtimeServerEventInputAudioBufferCommitted | Zdarzenie serwera po zatwierdzeniu wejściowego buforu audio przez klienta lub automatycznie w trybie vaD serwera. |
RealtimeServerEventInputAudioBufferSpeechStarted | Zdarzenie serwera w trybie wykrywania z kolei serwera po wykryciu mowy. |
RealtimeServerEventInputAudioBufferSpeechStopped | Zdarzenie serwera w trybie wykrywania z kolei serwera po zatrzymaniu mowy. |
RealtimeServerEventRateLimitsUpdated | Emitowane po każdym zdarzeniu "response.done", aby wskazać zaktualizowane limity szybkości. |
RealtimeServerEventResponseAudioDelta | Zdarzenie serwera po zaktualizowaniu dźwięku wygenerowanego przez model. |
RealtimeServerEventResponseAudioDone | Zdarzenie serwera po zakończeniu generowania dźwięku przez model. Również emitowane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana. |
RealtimeServerEventResponseAudioTranscriptDelta | Zdarzenie serwera po zaktualizowaniu transkrypcji wygenerowanej przez model danych wyjściowych dźwięku. |
RealtimeServerEventResponseAudioTranscriptDone | Zdarzenie serwera, gdy generowana przez model transkrypcja danych wyjściowych dźwięku jest wykonywana strumieniowo. Również emitowane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana. |
RealtimeServerEventResponseContentPartAdded | Zdarzenie serwera po dodaniu nowej części zawartości do elementu komunikatu asystenta podczas generowania odpowiedzi. |
RealtimeServerEventResponseContentPartDone | Zdarzenie serwera, gdy część zawartości jest wykonywana strumieniowo w elemencie komunikatu asystenta. Również emitowane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana. |
RealtimeServerEventResponseCreated | Zdarzenie serwera po utworzeniu nowej odpowiedzi. Pierwsze zdarzenie tworzenia odpowiedzi, w którym odpowiedź jest w stanie początkowym "in_progress". |
RealtimeServerEventResponseDone | Zdarzenie serwera po zakończeniu przesyłania strumieniowego odpowiedzi. Zawsze emitowane, bez względu na stan końcowy. |
RealtimeServerEventResponseFunctionCallArgumentsDelta | Zdarzenie serwera po zaktualizowaniu argumentów wywołania funkcji wygenerowanej przez model. |
RealtimeServerEventResponseFunctionCallArgumentsDone | Zdarzenie serwera, gdy argumenty wywołania funkcji wygenerowane przez model są wykonywane strumieniowo. Również emitowane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana. |
RealtimeServerEventResponseOutputItemAdded | Zdarzenie serwera po dodaniu nowego elementu wyjściowego do odpowiedzi. |
RealtimeServerEventResponseOutputItemDone | Zdarzenie serwera po zakończeniu przesyłania strumieniowego elementu wyjściowego. Również emitowane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana. |
RealtimeServerEventResponseTextDelta | Zdarzenie serwera po zaktualizowaniu tekstu wygenerowanego przez model. |
RealtimeServerEventResponseTextDone | Zdarzenie serwera po zakończeniu generowania tekstu przez model. Również emitowane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana. |
RealtimeServerEventSessionTworzenie | Zdarzenie serwera po utworzeniu sesji. |
RealtimeServerEventSessionUpdated | Zdarzenie serwera po zaktualizowaniu sesji. |
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. |
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 części zawartości. |
RealtimeContentPartType
Dozwolone wartości:
input_text
input_audio
text
audio
RealtimeConversationItemBase
Element, który ma zostać dodany do konwersacji.
RealtimeConversationRequestItem
Pole | Typ | Opis |
---|---|---|
type | RealtimeItemType | Typ elementu. |
identyfikator | string | Unikatowy identyfikator elementu. |
RealtimeConversationResponseItem
Pole | Typ | Opis |
---|---|---|
obiekt | string | Element odpowiedzi na konwersację. Dozwolone wartości: realtime.item |
type | RealtimeItemType | Typ elementu. |
identyfikator | string | Unikatowy identyfikator elementu. 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. |
parameters | obiekt | Parametry funkcji. |
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
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. |
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" . |
RealtimeResponseSession
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. |
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 tool_choice w czasie rzeczywistym obejmujący zarówno opcje literału ciągu, jak "auto" i odwołania strukturalne do zdefiniowanych narzędzi.
RealtimeToolChoiceFunctionObject
Reprezentacja czasu rzeczywistego tool_choice wybrania nazwanego narzędzia funkcji.
Pole | Typ | Opis |
---|---|---|
type | string | Typ 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 literałów ciągu na poziomie trybu tool_choice opcji punktu końcowego czasu rzeczywistego.
Dozwolone wartości:
auto
none
required
RealtimeToolChoiceObject
Podstawowa reprezentacja w czasie rzeczywistym tool_choice wybierania nazwanego narzędzia.
Pole | Typ | Opis |
---|---|---|
type | RealtimeToolType | Typ 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 |
RealtimeTurnDetectionType
Dozwolone wartości:
server_vad
RealtimeVoice
Dozwolone wartości:
alloy
shimmer
echo
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.