Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zdarzenia w czasie rzeczywistym są używane do komunikacji między klientem a serwerem w aplikacjach audio w czasie rzeczywistym. Zdarzenia są wysyłane jako obiekty JSON za pośrednictwem różnych punktów końcowych, takich jak WebSockets lub WebRTC. Zdarzenia są używane do zarządzania konwersacją, buforami audio i odpowiedziami w czasie rzeczywistym.
Można używać zdarzeń klienta audio i serwera z następującymi interfejsami API:
O ile nie określono inaczej, zdarzenia opisane w tym dokumencie mają zastosowanie do obu interfejsów API.
Zdarzenia klienta
Istnieje dziewięć zdarzeń klienta, które można wysłać z klienta do serwera:
Zdarzenie | Opis |
---|---|
UtworzenieElementuKonwersacjiKlientaWRealnymCzasie | 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. |
RealtimeClientEventUsunięcieElementuRozmowy | Zdarzenie klienta conversation.item.delete służy do usuwania elementu z historii konwersacji. |
RealtimeClientEventConversationItemRetrieve (Pobierz element konwersacji w czasie rzeczywistym) | Zdarzenie klienta conversation.item.retrieve służy do pobierania 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. |
RealtimeClientEventOutputAudioBufferClear | Zdarzenie klienta output_audio_buffer.clear służy do czyszczenia bajtów audio w buforze wyjściowym.To zdarzenie dotyczy tylko usługi WebRTC. |
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. |
AktualizacjaSesjiZdarzeniaKlientaWRealnymCzasie | Zdarzenie klienta session.update służy do aktualizowania domyślnej konfiguracji sesji. |
RealtimeClientWydarzenieTworzeniaElementuKonwersacji
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.create . |
poprzedni_id_elementu | ciąg | 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 | ElementŻądaniaRozmowyNaŻywo | 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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.delete . |
Identyfikator przedmiotu | ciąg | Identyfikator elementu do usunięcia. |
WydarzenieKlientaWRealtimePobieranieElementuKonwersacji
Zdarzenie klienta conversation.item.retrieve
służy do pobierania reprezentacji określonego elementu na serwerze w historii konwersacji. To zdarzenie jest przydatne, na przykład, do sprawdzenia dźwięku użytkownika po redukcji szumu i VAD.
Jeśli zdarzenie klienta zakończy się pomyślnie, serwer odpowie zdarzeniem conversation.item.retrieved
. Jeśli element nie istnieje w historii konwersacji, serwer odpowie z błędem.
Struktura zdarzeń
{
"type": "conversation.item.retrieve",
"item_id": "<item_id>",
"event_id": "<event_id>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.retrieve . |
Identyfikator przedmiotu | ciąg | Identyfikator elementu do pobrania. |
event_id | ciąg | Identyfikator zdarzenia. |
Zdarzenie klienta czasu rzeczywistego: skrócenie elementu rozmowy
Zdarzenie klienta conversation.item.truncate
służy do obcinania dźwięku poprzedniego asystenta. Serwer generuje dźwięk szybciej niż w czasie rzeczywistym, więc to zdarzenie jest przydatne, gdy użytkownik przerywa obcięcie dźwięku, który został wysłany do klienta, ale nie został jeszcze odtwarzany. Informacje o dźwięku serwera z odtwarzaniem klienta są synchronizowane.
Obcięcie dźwięku usuwa transkrypcję tekstu po stronie serwera, aby upewnić się, że nie ma tekstu w kontekście, o którego użytkownik nie wie.
Jeśli zdarzenie klienta zakończy się pomyślnie, serwer odpowie zdarzeniem conversation.item.truncated
.
Struktura zdarzeń
{
"type": "conversation.item.truncate",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.truncate . |
Identyfikator przedmiotu | ciąg | Identyfikator elementu komunikatu asystenta do obcinania. Można obcinać tylko elementy komunikatów asystenta. |
indeks_treści | liczba całkowita | Indeks części zawartości do obcinania. Ustaw tę właściwość na wartość "0". |
zakończenie_audio_ms | liczba całkowita | Czas trwania włącznie, do którego dźwięk jest obcięty, w milisekundach. Jeśli audio_end_ms jest większy niż rzeczywisty czas trwania dźwięku, serwer odpowiada z powodu błędu. |
ZdarzenieWejścioweBuforaAudioKlientaWCzasieRzeczywistymDodawanie
Zdarzenie klienta input_audio_buffer.append
służy do dołączania bajtów audio do wejściowego buforu audio. Bufor audio jest magazynem tymczasowym, do którego można zapisywać dane, a następnie zatwierdzać.
W trybie vaD serwera (wykrywanie aktywności głosowej) bufor audio jest używany do wykrywania mowy, a serwer decyduje, kiedy zatwierdzić. Gdy funkcja VAD serwera jest wyłączona, klient może wybrać ilość dźwięku do umieszczenia w każdym zdarzeń maksymalnie 15 MiB. Na przykład przesyłanie strumieniowe mniejszych fragmentów z klienta może umożliwić dynamiczne działanie vaD.
W przeciwieństwie do większości innych zdarzeń klienta serwer nie wysyła odpowiedzi potwierdzenia na zdarzenie klienta input_audio_buffer.append
.
Struktura zdarzeń
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.append . |
dźwięk | ciąg | Bajty audio zakodowane w formacie Base64. Ta wartość musi być w formacie określonym przez input_audio_format pole w konfiguracji sesji. |
Czyszczenie bufora dźwięku wejściowego zdarzenia klienta w czasie rzeczywistym
Zdarzenie klienta input_audio_buffer.clear
służy do czyszczenia bajtów audio w buforze.
Serwer odpowiada za pomocą input_audio_buffer.cleared
zdarzenia.
Struktura zdarzeń
{
"type": "input_audio_buffer.clear"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.clear . |
Zatwierdzenie bufora audio wejściowego zdarzenia klienta w czasie rzeczywistym
Zdarzenie klienta input_audio_buffer.commit
służy do zatwierdzania buforu audio wejściowego użytkownika, który tworzy nowy element wiadomości użytkownika w konwersacji. Dźwięk jest transkrypcji, jeśli input_audio_transcription
jest skonfigurowany dla sesji.
W trybie vaD serwera klient nie musi wysyłać tego zdarzenia, serwer zatwierdza bufor audio automatycznie. Bez funkcji VAD serwera klient musi zatwierdzić bufor audio, aby utworzyć element komunikatu użytkownika. To zdarzenie klienta generuje błąd, jeśli wejściowy bufor audio jest pusty.
Zatwierdzenie wejściowego buforu audio nie powoduje utworzenia odpowiedzi na podstawie modelu.
Serwer odpowiada za pomocą input_audio_buffer.committed
zdarzenia.
Struktura zdarzeń
{
"type": "input_audio_buffer.commit"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.commit . |
W czasie rzeczywistym zdarzenie wyjścia klienta: czyszczenie bufora audio
Zdarzenie klienta output_audio_buffer.clear
służy do czyszczenia bajtów audio w buforze.
Uwaga / Notatka
To zdarzenie dotyczy tylko usługi WebRTC.
To zdarzenie powinno być poprzedzone zdarzeniem response.cancel
klienta, aby zatrzymać generowanie bieżącej odpowiedzi.
Serwer zatrzymuje generowanie dźwięku i reaguje na zdarzenie output_audio_buffer.cleared
.
Struktura zdarzeń
{
"type": "output_audio_buffer.clear"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
event_id | ciąg | Identyfikator zdarzenia, które spowodowało błąd. |
typ | ciąg | Typ zdarzenia musi mieć wartość output_audio_buffer.clear . |
AnulowanieOdpowiedziNaZdarzenieKlientaWRzeczywistymCzasie
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.cancel . |
RealtimeClientEventResponseCreate
Zdarzenie klienta response.create
służy do poinstruowania serwera o utworzeniu odpowiedzi za pośrednictwem wnioskowania modelu. Po skonfigurowaniu sesji w trybie vaD serwera serwer automatycznie tworzy odpowiedzi.
Odpowiedź zawiera co najmniej jeden 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 / Notatka
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.create . |
odpowiedź | RealtimeResponseOptions | Opcje odpowiedzi. |
AktualizacjaSesjiZdarzeńKlientaW czasie rzeczywistym
Zdarzenie klienta session.update
służy do aktualizowania domyślnej konfiguracji sesji. Klient może wysłać to zdarzenie w dowolnym momencie, aby zaktualizować konfigurację sesji, a dowolne pole można zaktualizować w dowolnym momencie, z wyjątkiem głosu.
Aktualizowane są tylko bieżące pola. Aby wyczyścić pole (takie jak instructions
), przekaż pusty ciąg.
Serwer odpowiada zdarzeniem zawierającym pełną efektywną session.updated
konfigurację.
Struktura zdarzeń
{
"type": "session.update"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość session.update . |
sesja | RealtimeRequestSession | Konfiguracja sesji. |
Zdarzenia serwera
Istnieją 28 zdarzeń serwera, które można odebrać z serwera:
Zdarzenie | Opis |
---|---|
RealtimeServerEventConversationCreated | Zdarzenie serwera conversation.created jest zwracane bezpośrednio po utworzeniu sesji. Jedna konwersacja jest tworzona na sesję. |
RealtimeServerEventElementKonwersacjiUtworzony | Zdarzenie serwera conversation.item.created jest zwracane po utworzeniu elementu konwersacji. |
RealtimeServerEventConversationItemRetrieved | Zdarzenie serwera conversation.item.retrieved jest zwracane po odzyskaniu elementu konwersacji. |
RejestrowaneWydarzenieNaSerwerzeUsunięcieElementuRozmowy | Zdarzenie serwera conversation.item.deleted jest zwracane, gdy klient usunął element w konwersacji ze zdarzeniem conversation.item.delete . |
ZdarzenieSerweraWczasieRzeczywistymPozycjaRozmowyWejścieTranskrypcjaAudioZakończona | Zdarzenie serwera conversation.item.input_audio_transcription.completed jest wynikiem transkrypcji audio dla mowy zapisanej w buforze audio. |
Niepowodzenie transkrypcji audio rozmowy przez RealtimeServerEvent | 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ę. |
Przedmiot rozmowy na serwerze w czasie rzeczywistym został skrócony | 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 – wyczyszczono bufor audio wejściowego zdarzenia serwera czasu rzeczywistego. | Zdarzenie serwera input_audio_buffer.cleared jest zwracane, gdy klient czyści wejściowy bufor audio ze zdarzeniem input_audio_buffer.clear . |
Rejestracja bufora wejściowego audio RealtimeServerEvent | 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. |
Zatrzymano mówienie w buforze audio wejściowym serwera w czasie rzeczywistym | Zdarzenie serwera input_audio_buffer.speech_stopped jest zwracane w server_vad trybie, gdy serwer wykryje koniec mowy w buforze audio. |
Wyczyśczenie bufora audio wyjściowego wydarzenia serwera w czasie rzeczywistym | Zdarzenie output_audio_buffer.cleared jest zwracane przez serwer, gdy użytkownik przerwał (input_audio_buffer.speech_started ) lub kiedy klient wysłał zdarzenie output_audio_buffer.clear , aby ręcznie odciąć bieżącą odpowiedź audio.To zdarzenie dotyczy tylko usługi WebRTC. |
RealtimeServerEventOutputAudioBufferStarted | Zdarzenie serwera output_audio_buffer.started jest generowane, gdy serwer rozpoczyna streaming audio do klienta. To zdarzenie jest emitowane po dodaniu części zawartości audio (response.content_part.added ) do odpowiedzi.To zdarzenie dotyczy tylko usługi WebRTC. |
ZdarzenieSerweraRTWyjściowyBuforAudioZatrzymany | Zdarzenie serwera output_audio_buffer.stopped jest zwracane, gdy bufor dźwięku wyjściowego został całkowicie opróżniony na serwerze i nie będzie więcej dźwięku.To zdarzenie dotyczy tylko usługi WebRTC. |
ZaktualizowanoLimityCzęstotliwościZdarzeńNaSerwerzeWczasieRzeczywistym | 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. |
Utworzono odpowiedź na zdarzenie serwera w czasie rzeczywistym | 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. |
ZaktualizowanaSesjaZdarzeniaSerweraWRealnymCzasie | Zdarzenie serwera session.updated jest zwracane po zaktualizowaniu sesji przez klienta. Jeśli wystąpi błąd, serwer wysyła error zamiast tego zdarzenie. |
ZdarzenieSerweraUtworzonoKonwersacjęCzasuRzeczywistego
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.created . |
konwersacja | obiekt | Zasób konwersacji. |
Właściwości konwersacji
(No changes needed) | Typ | Opis |
---|---|---|
id | ciąg | Unikalny identyfikator rozmowy. |
obiekt | ciąg | Typ obiektu musi mieć wartość realtime.conversation . |
ZdarzenieSerweraW czasieRzeczywistymElementKonwersacjiUtworzony
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.created . |
poprzedni_id_elementu | ciąg | Identyfikator poprzedniego elementu w kontekście konwersacji umożliwia klientowi zrozumienie kolejności konwersacji. |
element | RealtimeConversationResponseItem | Element, który został utworzony. |
ZdarzenieSerweraCzasuRzeczywistegoPobraneElementyKonwersacji
Zdarzenie serwera conversation.item.retrieved
jest zwracane po odzyskaniu elementu konwersacji.
Struktura zdarzeń
{
"type": "conversation.item.retrieved",
"previous_item_id": "<previous_item_id>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.retrieved . |
event_id | ciąg | Identyfikator zdarzenia. |
element | RealtimeConversationResponseItem | Element, który został pobrany. |
Przedmiot rozmowy na serwerze w czasie rzeczywistym został usunięty.
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.deleted . |
Identyfikator przedmiotu | ciąg | Identyfikator usuniętego elementu. |
Zakończenie transkrypcji dźwięku w elemencie konwersacji zdarzenia serwera w czasie rzeczywistym
Zdarzenie serwera conversation.item.input_audio_transcription.completed
jest wynikiem transkrypcji audio dla mowy zapisanej w buforze audio.
Transkrypcja rozpoczyna się, gdy wejściowy bufor audio jest zatwierdzany przez klienta lub serwer (w server_vad
trybie). Transkrypcja jest uruchamiana asynchronicznie z tworzeniem odpowiedzi, więc to zdarzenie może pojawić się przed zdarzeniami odpowiedzi lub po nim.
Modele interfejsu API czasu rzeczywistego akceptują dźwięk natywnie, a tym samym transkrypcję danych wejściowych to oddzielny proces uruchamiany w oddzielnym modelu rozpoznawania mowy, takim jak whisper-1
. W związku z tym transkrypcja może nieco odbiegać od interpretacji modelu i powinna być traktowana jako szorstki przewodnik.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.input_audio_transcription.completed . |
Identyfikator przedmiotu | ciąg | Identyfikator elementu wiadomości użytkownika zawierającego dźwięk. |
indeks_treści | liczba całkowita | Indeks części zawartości zawierającej dźwięk. |
transkrypcja | ciąg | Transkrypcja tekstu. |
RealtimeServerEventConversationItemInputAudioTranscriptionFailed (Niepowodzenie transkrypcji audio)
Zdarzenie serwera conversation.item.input_audio_transcription.failed
jest zwracane, gdy skonfigurowano transkrypcję dźwięku wejściowego, a żądanie transkrypcji dla komunikatu użytkownika nie powiodło się. To zdarzenie jest oddzielone od innych error
zdarzeń, aby klient mógł zidentyfikować powiązany element.
Struktura zdarzeń
{
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.input_audio_transcription.failed . |
Identyfikator przedmiotu | ciąg | Identyfikator elementu komunikatu użytkownika. |
indeks_treści | liczba całkowita | Indeks części zawartości zawierającej dźwięk. |
błąd | obiekt | Szczegóły błędu transkrypcji. Zobacz właściwości zagnieżdżone w następnej tabeli. |
Właściwości błędu
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ błędu. |
kod | ciąg | Kod błędu, jeśli istnieje. |
komunikat | ciąg | Czytelny dla człowieka komunikat o błędzie. |
Param | ciąg | Parametr związany z błędem, jeśli istnieje. |
CzasRzeczywistyWydarzenieSerweraElementKonwersacjiObcięty
Zdarzenie serwera conversation.item.truncated
jest zwracane, gdy klient obcina wcześniej asystenta elementu komunikatu audio z zdarzeniem conversation.item.truncate
. To zdarzenie służy do synchronizowania zrozumienia dźwięku serwera z odtwarzaniem klienta.
To zdarzenie obcina dźwięk i usuwa transkrypcję tekstu po stronie serwera, aby upewnić się, że nie ma tekstu w kontekście, o którego użytkownik nie wie.
Struktura zdarzeń
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość conversation.item.truncated . |
Identyfikator przedmiotu | ciąg | Identyfikator elementu komunikatu asystenta, który został obcięty. |
indeks_treści | liczba całkowita | Indeks części zawartości, która została obcięta. |
zakończenie_audio_ms | liczba całkowita | 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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość error . |
błąd | obiekt | Szczegóły błędu. Zobacz właściwości zagnieżdżone w następnej tabeli. |
Właściwości błędu
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ błędu. Na przykład typy błędów "invalid_request_error" i "server_error". |
kod | ciąg | Kod błędu, jeśli istnieje. |
komunikat | ciąg | Czytelny dla człowieka komunikat o błędzie. |
Param | ciąg | Parametr związany z błędem, jeśli istnieje. |
event_id | ciąg | Identyfikator zdarzenia klienta, który spowodował błąd, jeśli ma to zastosowanie. |
ZdarzenieSerweraWierzchołkiBuforDźwiękuOpróżniony
Zdarzenie serwera input_audio_buffer.cleared
jest zwracane, gdy klient czyści wejściowy bufor audio ze zdarzeniem input_audio_buffer.clear
.
Struktura zdarzeń
{
"type": "input_audio_buffer.cleared"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.cleared . |
Zatwierdzenie bufora audio wejściowego zdarzenia serwera w czasie rzeczywistym
Zdarzenie serwera input_audio_buffer.committed
jest zwracane po zatwierdzeniu wejściowego buforu audio przez klienta lub automatycznie w trybie VAD serwera. Właściwość item_id
jest identyfikatorem utworzonego elementu komunikatu użytkownika. W związku z conversation.item.created
tym zdarzenie jest również wysyłane do klienta.
Struktura zdarzeń
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.committed . |
poprzedni_id_elementu | ciąg | Identyfikator poprzedniego elementu, po którym zostanie wstawiony nowy element. |
Identyfikator przedmiotu | ciąg | Identyfikator utworzonego elementu wiadomości użytkownika. |
ZdarzenieSerweraWczasieRzeczywistymWejścieBuforuAudioMowaRozpoczęta
Zdarzenie serwera input_audio_buffer.speech_started
jest zwracane w server_vad
trybie, gdy mowa jest wykrywana w buforze audio. To zdarzenie może wystąpić za każdym razem, gdy dźwięk jest dodawany do buforu (chyba że mowa została już wykryta).
Uwaga / Notatka
Klient może chcieć użyć tego zdarzenia, aby przerwać odtwarzanie audio lub przekazać użytkownikowi opinię wizualną.
Klient powinien oczekiwać odebrania input_audio_buffer.speech_stopped
zdarzenia po zatrzymaniu mowy. Właściwość item_id
jest identyfikatorem elementu komunikatu użytkownika utworzonego po zatrzymaniu mowy. Element item_id
jest również uwzględniony w input_audio_buffer.speech_stopped
zdarzeniu, chyba że klient ręcznie zatwierdzi bufor audio podczas aktywacji VAD.
Struktura zdarzeń
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.speech_started . |
audio_start_ms | liczba całkowita | Milisekundy od początku wszystkich audio zapisanych w buforze podczas sesji, gdy mowa została wykryta po raz pierwszy. Ta właściwość odpowiada początku dźwięku wysyłanego do modelu, a tym samym zawiera prefix_padding_ms skonfigurowane w sesji. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu komunikatu użytkownika utworzony podczas zatrzymywania mowy. |
ZdarzenieSerweraNaŻywoWejścieBuforaAudioMowaZatrzymana
Zdarzenie serwera input_audio_buffer.speech_stopped
jest zwracane w server_vad
trybie, gdy serwer wykryje koniec mowy w buforze audio.
Serwer wysyła conversation.item.created
również zdarzenie z elementem komunikatu użytkownika utworzonym na podstawie buforu audio.
Struktura zdarzeń
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość input_audio_buffer.speech_stopped . |
zakończenie_audio_ms | liczba całkowita | Milisekundy od momentu rozpoczęcia sesji po zatrzymaniu mowy. Ta właściwość odpowiada końcu dźwięku wysyłanego do modelu, a tym samym zawiera min_silence_duration_ms skonfigurowane w sesji. |
Identyfikator przedmiotu | ciąg | Identyfikator utworzonego elementu wiadomości użytkownika. |
ZdarzenieSerweraCzasRzeczywistyWyczyszczonoBuforWyjściaAudio
Zdarzenie na serwerze output_audio_buffer.cleared
jest zwracane po wyczyszczeniu bufora wyjściowego audio.
Uwaga / Notatka
To zdarzenie dotyczy tylko usługi WebRTC.
Dzieje się tak w trybie VAD, gdy użytkownik przerwał (input_audio_buffer.speech_started
) lub gdy klient wywołał zdarzenie output_audio_buffer.clear
, aby ręcznie odciąć bieżącą odpowiedź dźwiękową.
Struktura zdarzeń
{
"type": "output_audio_buffer.cleared"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość output_audio_buffer.cleared . |
event_id | ciąg | Identyfikator zdarzenia serwera. |
identyfikator_reakcji | ciąg | Unikatowy identyfikator odpowiedzi, która wygenerowała dźwięk. |
Rozpoczęto odtwarzanie bufora audio zdarzenia serwera w czasie rzeczywistym
Zdarzenie serwera output_audio_buffer.started
jest generowane, gdy serwer rozpoczyna streaming audio do klienta. To zdarzenie jest emitowane po dodaniu części zawartości audio (response.content_part.added
) do odpowiedzi.
Uwaga / Notatka
To zdarzenie dotyczy tylko usługi WebRTC.
Struktura zdarzeń
{
"type": "output_audio_buffer.started",
"event_id": "<item_id>",
"response_id": "<response_id>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość output_audio_buffer.started . |
event_id | ciąg | Identyfikator zdarzenia serwera. |
identyfikator_reakcji | ciąg | Unikatowy identyfikator odpowiedzi, która wygenerowała dźwięk. |
Bufor dźwięku wyjściowego zdarzenia serwera w czasie rzeczywistym zatrzymany
Zdarzenie serwera output_audio_buffer.stopped
jest zwracane, gdy bufor dźwięku wyjściowego został całkowicie opróżniony na serwerze i nie będzie więcej dźwięku.
Uwaga / Notatka
To zdarzenie dotyczy tylko usługi WebRTC.
Zdarzenie jest zwracane po wysłaniu pełnych danych odpowiedzi do klienta za pośrednictwem zdarzenia response.done
.
Struktura zdarzeń
{
"type": "output_audio_buffer.stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość output_audio_buffer.stopped . |
event_id | ciąg | Identyfikator zdarzenia serwera. |
identyfikator_reakcji | ciąg | Unikatowy identyfikator odpowiedzi, która wygenerowała dźwięk. |
Zaktualizowano limity szybkości zdarzeń serwera w czasie rzeczywistym
Zdarzenie serwera rate_limits.updated
jest emitowane na początku odpowiedzi, aby wskazać zaktualizowane limity szybkości.
Po utworzeniu odpowiedzi niektóre tokeny są zarezerwowane dla tokenów wyjściowych. Przedstawione tutaj limity szybkości odzwierciedlają rezerwację, która jest następnie odpowiednio dostosowywana po zakończeniu odpowiedzi.
Struktura zdarzeń
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość rate_limits.updated . |
limity prędkości | 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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.audio.delta . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
indeks_treści | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
delta | ciąg | Delta danych audio zakodowanych w formacie Base64. |
Zakończenie audio w czasie rzeczywistym reakcji serwera na zdarzenie
Zdarzenie serwera response.audio.done
jest zwracane po zakończeniu generowania przez model dźwięku.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.audio.done . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
indeks_treści | liczba całkowita | 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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.audio_transcript.delta . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
indeks_treści | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
delta | ciąg | Delta transkrypcji. |
Zakończenie transkrypcji audio odpowiedzi zdarzenia z serwera w czasie rzeczywistym
Zdarzenie serwera response.audio_transcript.done
jest zwracane po zakończeniu przesyłania strumieniowego wygenerowanego przez model transkrypcji danych wyjściowych dźwięku.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.audio_transcript.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"transcript": "<transcript>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.audio_transcript.done . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
indeks_treści | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
transkrypcja | ciąg | Ostatnia transkrypcja dźwięku. |
Dodanie części zawartości odpowiedzi na zdarzenie serwera w czasie rzeczywistym
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.content_part.added . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu, do którego została dodana część zawartości. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
indeks_treści | liczba całkowita | 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
(No changes needed) | Typ | Opis |
---|---|---|
typ | RealtimeContentPartType |
Część zawartości odpowiedzi na natychmiastowe wydarzenie serwera została ukończona
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.content_part.done . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
indeks_treści | liczba całkowita | 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
(No changes needed) | Typ | Opis |
---|---|---|
typ | RealtimeContentPartType |
UtworzonoOdpowiedźNaZdarzenieSerweraW CzasieRzeczywistym
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.created . |
odpowiedź | Czas rzeczywistyResponse | Obiekt odpowiedzi. |
Zakończenie odpowiedzi serwera wydarzeń w czasie rzeczywistym
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.done . |
odpowiedź | Czas rzeczywistyResponse | Obiekt odpowiedzi. |
RealtimeSerwerZdarzenieOdpowiedźFunkcjaWywołanieArgumentyDelta
Zdarzenie serwera response.function_call_arguments.delta
jest zwracane po zaktualizowaniu argumentów wywołania funkcji wygenerowanej przez model.
Struktura zdarzeń
{
"type": "response.function_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"delta": "<delta>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.function_call_arguments.delta . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu wywołania funkcji. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
identyfikator_rozmowy | ciąg | Identyfikator wywołania funkcji. |
delta | ciąg | Argumenty delta jako ciąg JSON. |
Zakończono przesyłanie argumentów wywołania funkcji dla zdarzenia serwera czasu rzeczywistego
Zdarzenie serwera response.function_call_arguments.done
jest zwracane, gdy argumenty wywołania funkcji wygenerowane przez model są wykonywane strumieniowo.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.function_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"arguments": "<arguments>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.function_call_arguments.done . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu wywołania funkcji. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
identyfikator_rozmowy | ciąg | Identyfikator wywołania funkcji. |
Argumenty | ciąg | Ostatnie argumenty jako ciąg JSON. |
Wyjście reakcji zdarzenia serwera w czasie rzeczywistym: Element dodany
Zdarzenie serwera response.output_item.added
jest zwracane po utworzeniu nowego elementu podczas generowania odpowiedzi.
Struktura zdarzeń
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.output_item.added . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi, do której należy element. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
element | RealtimeConversationResponseItem | Element, który został dodany. |
WyjścieSkończonoElementOdpowiedziZdarzeniaSerweraWRealnymCzasie
Zdarzenie serwera response.output_item.done
jest zwracane po zakończeniu przesyłania strumieniowego elementu.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.output_item.done . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi, do której należy element. |
indeks_wyjściowy | liczba całkowita | 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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.text.delta . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
indeks_treści | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
delta | ciąg | Delta tekstu. |
Tekst odpowiedzi na wydarzenie serwera w czasie rzeczywistym zakończony
Zdarzenie serwera response.text.done
jest zwracane po zakończeniu przesyłania strumieniowego tekstu wygenerowanego przez model. Tekst odpowiada text
części zawartości elementu komunikatu asystenta.
To zdarzenie jest również zwracane, gdy odpowiedź zostanie przerwana, niekompletna lub anulowana.
Struktura zdarzeń
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
Właściwości
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość response.text.done . |
identyfikator_reakcji | ciąg | Identyfikator odpowiedzi. |
Identyfikator przedmiotu | ciąg | Identyfikator elementu. |
indeks_wyjściowy | liczba całkowita | Indeks elementu wyjściowego w odpowiedzi. |
indeks_treści | liczba całkowita | Indeks części zawartości w tablicy zawartości elementu. |
SMS | ciąg | 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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość session.created . |
sesja | RealtimeResponseSession | Obiekt sesji. |
Sesja Zdarzeń Serwera w Czasie Rzeczywistym Zaktualizowana
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
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ zdarzenia musi mieć wartość session.updated . |
sesja | RealtimeResponseSession | Obiekt sesji. |
Komponenty
Format audio w czasie rzeczywistym
Dozwolone wartości:
pcm16
g711_ulaw
g711_alaw
ModelTranskrypcjiDźwiękuNaŻywo
Dozwolone wartości:
whisper-1
gpt-4o-transcribe
gpt-4o-mini-transcribe
Ustawienia transkrypcji wejścia audio w czasie rzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
język | ciąg | Język wejściowego dźwięku. Podanie języka wejściowego w formacie ISO-639-1 (np en . ) poprawi dokładność i opóźnienie. |
model | RealtimeAudioInputTranscriptionModel | Model transkrypcji danych wejściowych audio. Na przykład whisper-1 . |
monit | ciąg | Polecenie do transkrypcji danych wejściowych audio. Opcjonalny tekst prowadzący do stylu modelu lub kontynuacji poprzedniego segmentu audio.
whisper-1 W przypadku modelu monit jest listą słów kluczowych. W przypadku modeli gpt-4o-transcribe i gpt-4o-mini-transcribe komenda jest wolnym ciągiem tekstowym, takim jak "oczekiwać słów związanych z technologią". |
Ustawienia redukcji szumów dla wejściowego dźwięku w czasie rzeczywistym (RealtimeAudioInputAudioNoiseReductionSettings)
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ redukcji szumu. Określ near_field dla mikrofonów bliskiego zasięgu, takich jak słuchawki, lub far_field dla mikrofonów dalekiego zasięgu, takich jak mikrofony w laptopach lub w salach konferencyjnych. |
RealtimeClientEvent
(No changes needed) | Typ | Opis |
---|---|---|
typ | RealtimeClientEventType | Typ zdarzenia klienta. |
event_id | ciąg | 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
CzęśćTreściWRealnymCzasie
(No changes needed) | Typ | Opis |
---|---|---|
typ | RealtimeContentPartType | Typ zawartości. Właściwość function obiektu.Dozwolone wartości: input_text , , input_audio item_reference , text . |
SMS | ciąg | Zawartość tekstowa. Ta właściwość ma zastosowanie do input_text typów zawartości i text . |
id | ciąg | 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 | ciąg | Bajty audio zakodowane w formacie base64. Ta właściwość ma zastosowanie do input_audio typu zawartości. |
transkrypcja | ciąg | Transkrypcja dźwięku. Ta właściwość ma zastosowanie do input_audio typu zawartości. |
TypCzęściTreściW czasieRzeczywistym
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.
(No changes needed) | Typ | Opis |
---|---|---|
id | ciąg | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. |
typ | RealtimeItemType | Typ elementu. Dozwolone wartości: message , , function_call function_call_output |
obiekt | ciąg | Identyfikator zwracanego obiektu interfejsu API. Wartość będzie zawsze mieć wartość realtime.item . |
stan | 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 |
rola | RealtimeMessageRole | Rola nadawcy wiadomości. Ta właściwość ma zastosowanie tylko dla message elementów. Dozwolone wartości: system , , user assistant |
zawartość | 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 user i input_text zawartości roliinput_audio .— Elementy wiadomości zawartości obsługującej assistant rolętext . |
identyfikator_rozmowy | ciąg | 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 | ciąg | Nazwa wywoływanej funkcji (dla function_call elementów). |
Argumenty | ciąg | Argumenty wywołania funkcji (dla function_call elementów). |
We/Wy | ciąg | Dane wyjściowe wywołania funkcji (dla function_call_output elementów). |
ElementProśbyRozmowyNaŻywo
Obiekt służy RealtimeConversationRequestItem
do tworzenia nowego elementu w konwersacji za pośrednictwem zdarzenia conversation.item.create .
(No changes needed) | Typ | Opis |
---|---|---|
typ | RealtimeItemType | Typ elementu. |
id | ciąg | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. |
ElementOdpowiedziRozmowyNaŻywo
Obiekt RealtimeConversationResponseItem
reprezentuje element w konwersacji. Jest on używany w niektórych zdarzeniach serwera, takich jak:
- rozmowa.element.utworzony
- odpowiedź.output_item.dodany
- odpowiedź.output_element.zakończone
-
response.created
(za pomocąresponse
typuRealtimeResponse
właściwości ) -
response.done
(za pomocąresponse
typuRealtimeResponse
właściwości )
(No changes needed) | Typ | Opis |
---|---|---|
obiekt | ciąg | Identyfikator zwróconego obiektu interfejsu API. Dozwolone wartości: realtime.item |
typ | RealtimeItemType | Typ elementu. Dozwolone wartości: message , , function_call function_call_output |
id | ciąg | Unikatowy identyfikator elementu. Klient może określić identyfikator, aby ułatwić zarządzanie kontekstem po stronie serwera. Jeśli klient nie podaje identyfikatora, serwer go generuje. Ta właściwość jest dopuszczana do wartości null. |
RealtimeFunctionTool
Definicja narzędzia funkcji używanego przez punkt końcowy czasu rzeczywistego.
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ narzędzia. Dozwolone wartości: function |
nazwa | ciąg | Nazwa funkcji. |
opis | ciąg | Opis funkcji, w tym wytyczne dotyczące użycia. Na przykład "Użyj tej funkcji, aby uzyskać bieżący czas". |
Parametry | obiekt | Parametry funkcji w postaci obiektu JSON. |
StatusElementuW czasieRzeczywistym
Dozwolone wartości:
in_progress
completed
incomplete
TypElementuCzasuRzeczywistego
Dozwolone wartości:
message
function_call
function_call_output
RolaWiadomościWRealnymCzasie
Dozwolone wartości:
system
user
assistant
WiadomośćAsystentaŻądaniaW czasieRzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
rola | ciąg | Rola wiadomości. Dozwolone wartości: assistant |
zawartość | tablica obiektu RealtimeRequestTextContentPart | Zawartość wiadomości. |
Część Treści Audio Żądania w Czasie Rzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ części zawartości. Dozwolone wartości: input_audio |
transkrypcja | ciąg | Transkrypcja dźwięku. |
Element wywołania funkcji żądania w czasie rzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ elementu. Dozwolone wartości: function_call |
nazwa | ciąg | Nazwa elementu wywołania funkcji. |
identyfikator_rozmowy | ciąg | Identyfikator elementu wywołania funkcji. |
Argumenty | ciąg | Argumenty elementu wywołania funkcji. |
stan | RealtimeItemStatus | Stan elementu. |
ElementWyjściowyFunkcjiŻądaniaWykonywanegoWCzasieRzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ elementu. Dozwolone wartości: function_call_output |
identyfikator_rozmowy | ciąg | Identyfikator elementu wywołania funkcji. |
We/Wy | ciąg | Dane wyjściowe elementu wywołania funkcji. |
ElementWiadomościŻądaniaW czasieRzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ elementu. Dozwolone wartości: message |
rola | RealtimeMessageRole | Rola wiadomości. |
stan | RealtimeItemStatus | Stan elementu. |
ElementOdniesieniaWiadomościŻądaniaW Czasie Rzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ elementu. Dozwolone wartości: message |
id | ciąg | Identyfikator elementu wiadomości. |
SesjaZapytańWRealnymCzasie
Obiekt jest używany RealtimeRequestSession
, gdy chcesz zaktualizować konfigurację sesji za pośrednictwem zdarzenia session.update .
(No changes needed) | Typ | Opis |
---|---|---|
Sposoby | macierz | 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 | ciąg | Instrukcje (komunikat systemowy) dotyczące kierowania odpowiedziami tekstowymi i audio modelu. Poniżej przedstawiono przykładowe instrukcje ułatwiające przewodnik zawartości i format odpowiedzi tekstowych i audio: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" Oto kilka przykładowych instrukcji ułatwiania zachowania audio: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" Chociaż model może nie zawsze przestrzegać tych instrukcji, udostępnia wskazówki dotyczące żądanego zachowania. |
głos | 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ć. |
format_dźwięku_wejściowego | RealtimeAudioFormat | Format wejściowego dźwięku. |
format_wyjściowy_dźwięku | RealtimeAudioFormat | Format dźwięku wyjściowego. |
redukcja szumów w sygnale wejściowym audio | Ustawienia redukcji szumów w czasie rzeczywistym dla wejścia audio | Konfiguracja redukcji szumu dźwięku wejściowego. Można to ustawić na wartość null, aby wyłączyć. Filtry redukcji szumów przetwarzają dźwięk dodany do wejściowego bufora audio, zanim zostanie on wysłany do usługi VAD i modelu. Filtrowanie dźwięku może poprawić dokładność wykrywania VAD i zmian (zmniejszając liczbę fałszywie dodatnich wyników) oraz poprawić wydajność modelu poprzez polepszenie postrzegania dźwięku wejściowego. Ta właściwość jest dopuszczana do wartości null. |
transkrypcja_audio_wejściowa | Ustawienia Transkrypcji Wejścia Audio w Czasie Rzeczywistym | Konfiguracja transkrypcji dźwięku wejściowego. Domyślnie konfiguracja ma wartość null (wyłączoną). Transkrypcja audio wejściowego nie jest natywna dla modelu, ponieważ model korzysta bezpośrednio z dźwięku. Transkrypcja jest uruchamiana asynchronicznie przez punkt końcowy /audio/transcriptions i powinna być traktowana jako wskazówka dotycząca zawartości wejściowego audio, a nie dokładnie tego, co usłyszał model. Aby uzyskać dodatkowe wskazówki dotyczące usługi transkrypcji, klient może opcjonalnie ustawić język i monitować o transkrypcję.Ta właściwość jest dopuszczana do wartości null. |
wykrywanie zakrętów | RealtimeTurnDetection | Ustawienia wykrywania kolei dla sesji. Ta właściwość jest dopuszczana do wartości null. |
narzędzia | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
wybór narzędzia | 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. |
temperatura | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
maksymalna_liczba_tokenów_odpowiedzi | 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" . |
PozycjaWiadomościSystemuŻądaniaWRealnymCzasie
(No changes needed) | Typ | Opis |
---|---|---|
rola | ciąg | Rola wiadomości. Dozwolone wartości: system |
zawartość | tablica obiektu RealtimeRequestTextContentPart | Zawartość wiadomości. |
CzęśćTekstuŻądaniaW CzasieRzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ części zawartości. Dozwolone wartości: input_text |
SMS | ciąg | Zawartość tekstowa. |
ElementWiadomościUżytkownikaWnioskuWRealnymCzasie
(No changes needed) | Typ | Opis |
---|---|---|
rola | ciąg | Rola wiadomości. Dozwolone wartości: user |
zawartość | tablica elementów RealtimeRequestTextContentPart lub RealtimeRequestAudioContentPart | Zawartość wiadomości. |
Czas rzeczywistyResponse
(No changes needed) | Typ | Opis |
---|---|---|
obiekt | ciąg | Obiekt odpowiedzi. Dozwolone wartości: realtime.response |
id | ciąg | Unikatowy identyfikator odpowiedzi. |
stan | RealtimeResponseStatus | Stan odpowiedzi. Domyślną wartością stanu jest in_progress . |
szczegóły statusu | RealtimeResponseStatusDetails | Szczegóły stanu odpowiedzi. Ta właściwość jest dopuszczana do wartości null. |
We/Wy | 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. |
+ całkowite_znaczniki | liczba całkowita | Łączna liczba tokenów w odpowiedzi, w tym tekst wejściowy i wyjściowy oraz tokeny audio. Właściwość usage obiektu. |
+ input_tokens | liczba całkowita | 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 | liczba całkowita | Liczba tokenów wyjściowych wysłanych w odpowiedzi, w tym tokeny tekstowe i dźwiękowe. Właściwość usage obiektu. |
+ szczegóły_tokenu_wejściowego | obiekt | Szczegółowe informacje o tokenach wejściowych używanych w odpowiedzi. Właściwość usage obiektu.Zobacz następne zagnieżdżone właściwości. |
+ cached_tokens | liczba całkowita | Liczba buforowanych tokenów używanych w odpowiedzi. Właściwość input_token_details obiektu. |
+ tokeny tekstowe | liczba całkowita | Liczba tokenów tekstowych używanych w odpowiedzi. Właściwość input_token_details obiektu. |
+ audio_tokens | liczba całkowita | Liczba tokenów dźwiękowych używanych w odpowiedzi. Właściwość input_token_details obiektu. |
+ szczegóły_wyjściowego_tokena | 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. |
+ tokeny tekstowe | liczba całkowita | Liczba tokenów tekstowych używanych w odpowiedzi. Właściwość output_token_details obiektu. |
+ audio_tokens | liczba całkowita | Liczba tokenów dźwiękowych używanych w odpowiedzi. Właściwość output_token_details obiektu. |
CzęśćAudioZawartościOdpowiedziW czasie rzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ części zawartości. Dozwolone wartości: audio |
transkrypcja | ciąg | Transkrypcja dźwięku. Ta właściwość jest dopuszczana do wartości null. |
RealtimeResponseBase
Zasób odpowiedzi.
ElementWywołaniaFunkcjiOdpowiedziWRealnymCzasie
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ elementu. Dozwolone wartości: function_call |
nazwa | ciąg | Nazwa elementu wywołania funkcji. |
identyfikator_rozmowy | ciąg | Identyfikator elementu wywołania funkcji. |
Argumenty | ciąg | Argumenty elementu wywołania funkcji. |
stan | RealtimeItemStatus | Stan elementu. |
ElementWynikuWywołaniaFunkcjiW czasieRzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ elementu. Dozwolone wartości: function_call_output |
identyfikator_rozmowy | ciąg | Identyfikator elementu wywołania funkcji. |
We/Wy | ciąg | Dane wyjściowe elementu wywołania funkcji. |
ElementWiadomościOdpowiedziNaŻywo
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ elementu. Dozwolone wartości: message |
rola | RealtimeMessageRole | Rola wiadomości. |
zawartość | macierz | Zawartość wiadomości. Elementy tablicy: RealtimeResponseTextContentPart |
stan | RealtimeItemStatus | Stan elementu. |
Opcje reakcji w czasie rzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
Sposoby | macierz | 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 | ciąg | Instrukcje (komunikat systemowy) dotyczące kierowania odpowiedziami tekstowymi i audio modelu. Poniżej przedstawiono przykładowe instrukcje ułatwiające przewodnik zawartości i format odpowiedzi tekstowych i audio: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" Oto kilka przykładowych instrukcji ułatwiania zachowania audio: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" Chociaż model może nie zawsze przestrzegać tych instrukcji, udostępnia wskazówki dotyczące żądanego zachowania. |
głos | 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ć. |
format_wyjściowy_dźwięku | RealtimeAudioFormat | Format dźwięku wyjściowego. |
narzędzia | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
wybór narzędzia | RealtimeToolChoice | Narzędzie wybrane dla sesji. |
temperatura | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
maks__tokeny_wyjściowe | liczba całkowita lub "inf" | Maksymalna liczba tokenów wyjściowych na odpowiedź asystenta, w tym wywołania narzędzi. Określ liczbę całkowitą z zakresu od 1 do 4096, aby ograniczyć tokeny wyjściowe. W przeciwnym razie ustaw wartość na "inf", aby zezwolić na maksymalną liczbę tokenów. Aby na przykład ograniczyć tokeny wyjściowe do 1000, ustaw wartość "max_response_output_tokens": 1000 . Aby zezwolić na maksymalną liczbę tokenów, ustaw wartość "max_response_output_tokens": "inf" .Wartość domyślna to "inf" . |
konwersacja | ciąg | Określa, do której konwersacji jest dodawana odpowiedź. Obsługiwane wartości to auto i none .auto Wartość (lub nie ustawienie tej właściwości) gwarantuje, że zawartość odpowiedzi zostanie dodana do domyślnej konwersacji sesji.Ustaw tę właściwość na , aby none utworzyć odpowiedź poza pasmem, w której elementy nie zostaną dodane do domyślnej konwersacji. Aby uzyskać więcej informacji, zobacz przewodnik z instrukcjami.Wartości domyślne "auto" |
metadane | mapa | Konfiguracja maksymalnie 16 par klucz-wartość, które można dołączyć do obiektu. Może to być przydatne do przechowywania dodatkowych informacji o obiekcie w formacie ustrukturyzowanym. Klucze mogą mieć długość maksymalnie 64 znaków, a wartości mogą mieć długość maksymalnie 512 znaków. Przykład: metadata: { topic: "classification" } |
dane wejściowe | macierz | 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 |
SesjaOdpowiedziW CzasieRzeczywistym
Obiekt RealtimeResponseSession
reprezentuje sesję w interfejsie API czasu rzeczywistego. Jest on używany w niektórych zdarzeniach serwera, takich jak:
(No changes needed) | Typ | Opis |
---|---|---|
obiekt | ciąg | Obiekt sesji. Dozwolone wartości: realtime.session |
id | ciąg | Unikatowy identyfikator sesji. |
model | ciąg | Model używany na potrzeby sesji. |
Sposoby | macierz | 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 | ciąg | Instrukcje (komunikat systemowy) dotyczące kierowania odpowiedziami tekstowymi i audio modelu. Poniżej przedstawiono przykładowe instrukcje ułatwiające przewodnik zawartości i format odpowiedzi tekstowych i audio: "instructions": "be succinct" "instructions": "act friendly" "instructions": "here are examples of good responses" Oto kilka przykładowych instrukcji ułatwiania zachowania audio: "instructions": "talk quickly" "instructions": "inject emotion into your voice" "instructions": "laugh frequently" Chociaż model może nie zawsze przestrzegać tych instrukcji, udostępnia wskazówki dotyczące żądanego zachowania. |
głos | 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ć. |
format_dźwięku_wejściowego | RealtimeAudioFormat | Format wejściowego dźwięku. |
format_wyjściowy_dźwięku | RealtimeAudioFormat | Format dźwięku wyjściowego. |
transkrypcja_audio_wejściowa | Ustawienia Transkrypcji Wejścia Audio w Czasie Rzeczywistym | Ustawienia transkrypcji danych wejściowych audio. Ta właściwość jest dopuszczana do wartości null. |
wykrywanie zakrętów | RealtimeTurnDetection | Ustawienia wykrywania kolei dla sesji. Ta właściwość jest dopuszczana do wartości null. |
narzędzia | tablica narzędzia RealtimeTool | Narzędzia dostępne dla modelu dla sesji. |
wybór narzędzia | RealtimeToolChoice | Narzędzie wybrane dla sesji. |
temperatura | Liczba | Temperatura próbkowania dla modelu. Dozwolone wartości temperatury są ograniczone do [0,6, 1,2]. Wartość domyślna to 0.8. |
maksymalna_liczba_tokenów_odpowiedzi | 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" . |
StatusOdpowiedziWRealnymCzasie
Dozwolone wartości:
in_progress
completed
cancelled
incomplete
failed
SzczegółyStatusuOdpowiedziWRealnymCzasie
(No changes needed) | Typ | Opis |
---|---|---|
typ | RealtimeResponseStatus | Stan odpowiedzi. |
RzeczywistoczasowaOdpowiedźTekstowaCzęśćTreści
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ części zawartości. Dozwolone wartości: text |
SMS | ciąg | Zawartość tekstowa. |
RealtimeServerEvent
(No changes needed) | Typ | Opis |
---|---|---|
typ | RealtimeServerEventType | Typ zdarzenia serwera. |
event_id | ciąg | Unikatowy identyfikator zdarzenia serwera. |
Limity częstości zdarzeń serwera w czasie rzeczywistym zaktualizowane limity pozycji
(No changes needed) | Typ | Opis |
---|---|---|
nazwa | ciąg | Nazwa właściwości limitu szybkości zawierająca informacje o tym elemencie. |
limit / ograniczenie | liczba całkowita | Maksymalny skonfigurowany limit dla tej właściwości limitu szybkości. |
pozostało | liczba całkowita | Pozostały limit przydziału dostępny dla skonfigurowanego limitu dla tej właściwości limitu szybkości. |
zresetuj_sekundy | Liczba | Pozostały czas (w sekundach), dopóki ta właściwość limitu szybkości nie zostanie zresetowana. |
Typ wydarzenia serwera w czasie rzeczywistym
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
Wykrywanie Obrotów w Czasie Rzeczywistym na Serwerze VAD
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ wykrywania kolei. Dozwolone wartości: server_vad |
próg | 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 . |
długość prefiksu ms | ciąg | Czas trwania dźwięku mowy (w milisekundach) do uwzględnienia przed rozpoczęciem wykrytej mowy. Wartość domyślna to 300 . |
czas_trwania_ciszy_ms | ciąg | 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.
(No changes needed) | Typ | Opis |
---|---|---|
typ | 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.
(No changes needed) | Typ | Opis |
---|---|---|
typ | ciąg | Typ elementu tool_choice .Dozwolone wartości: function |
funkcja | obiekt | Narzędzie funkcji do wybrania. Zobacz następne zagnieżdżone właściwości. |
+ nazwa | ciąg | 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.
(No changes needed) | Typ | Opis |
---|---|---|
typ | 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
DetekcjaZakrętówWCzasieRzeczywistym
(No changes needed) | Typ | Opis |
---|---|---|
typ | TypDetekcjiSkrętówWCzasieRzeczywistym | Typ wykrywania kolei. Dozwolone wartości: semantic_vad lub server_vad |
próg | Liczba | Próg aktywacji dla wykrywania zwrotów serwera VAD (server_vad ). 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 .Ta właściwość ma zastosowanie tylko do server_vad wykrywania skrętów. |
długość prefiksu ms | ciąg | Czas trwania dźwięku mowy (w milisekundach) do uwzględnienia przed rozpoczęciem wykrytej mowy. Domyślnie to 300 milisekundy.Ta właściwość ma zastosowanie tylko do server_vad wykrywania skrętów. |
czas_trwania_ciszy_ms | ciąg | 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.Ta właściwość ma zastosowanie tylko do server_vad wykrywania skrętów. |
utwórz_odpowiedź | typ logiczny (boolowski) | Wskazuje, czy serwer automatycznie utworzy odpowiedź po włączeniu funkcji VAD i zatrzymaniu mowy. Wartość domyślna to true . |
odpowiedź na przerwanie | typ logiczny (boolowski) | Wskazuje, czy serwer automatycznie przerywa każdą bieżącą odpowiedź, przekierowując dane do domyślnej konwersacji (auto ), gdy wystąpi zdarzenie rozpoczęcia VAD.Wartość domyślna to true . |
zapał | ciąg | Gotowość modelu do reagowania i przerywania działania użytkownika. Określ low , czy użytkownik będzie dłużej czekał na kontynuowanie mówienia. Określ high , aby jak najszybciej fragmentować dźwięk w celu uzyskania szybszych odpowiedzi. Wartość domyślna jest auto równoważna średniej.Ta właściwość ma zastosowanie tylko do server_vad wykrywania skrętów. |
TypWykrywaniaZakrętówWRealtime
Dozwolone wartości:
-
semantic_vad
- Semantic VAD wykrywa, kiedy użytkownik zakończył mówienie w oparciu o wypowiedziane słowa. Sygnał audio wejściowy jest oceniany na podstawie prawdopodobieństwa, że użytkownik zakończył mówienie. Gdy prawdopodobieństwo jest niskie, model będzie czekać na zakończenie limitu czasu. Gdy prawdopodobieństwo jest wysokie, nie trzeba czekać. -
server_vad
— Serwer ocenia dźwięk użytkownika przesyłany z klienta. Serwer automatycznie używa tego dźwięku do inicjowania generowania odpowiedzi w odpowiednich konwersacjach po wykryciu zakończenia mowy.
RealtimeVoice
Dozwolone wartości:
alloy
ash
ballad
coral
echo
sage
shimmer
verse
Treści powiązane
- Wprowadzenie do przewodnika Szybki start dotyczącego interfejsu API czasu rzeczywistego.
- Dowiedz się więcej o sposobie korzystania z interfejsu API czasu rzeczywistego.