Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
События в режиме реального времени используются для обмена данными между клиентом и сервером в звуковых приложениях в режиме реального времени. События отправляются в виде объектов JSON по различным конечным точкам, таким как WebSockets или WebRTC. События используются для управления беседами, буферами звука и ответами в режиме реального времени.
С помощью этих API можно использовать события аудио-клиента и сервера:
Если иное не указано, события, описанные в этом документе, применимы к обоим API.
События клиента
Существует девять событий клиента, которые можно отправлять с клиента на сервер:
| Событие | Описание |
|---|---|
| RealtimeClientEventConversationItemCreate | Событие клиента conversation.item.create используется для добавления нового элемента в контекст беседы, включая сообщения, вызовы функций и ответы на вызовы функций. |
| RealtimeClientEventConversationItemDelete | Событие клиента conversation.item.delete используется для удаления элемента из журнала бесед. |
| RealtimeClientEventConversationItemRetrieve | Событие клиента conversation.item.retrieve используется для получения элемента из истории бесед. |
| RealtimeClientEventConversationItemTruncate | Событие клиента conversation.item.truncate используется для усечения звука предыдущего помощника. |
| RealtimeClientEventInputAudioBufferAppend | Событие клиента input_audio_buffer.append используется для добавления звуковых байтов в входной звуковой буфер. |
| RealtimeClientEventInputAudioBufferClear | Событие клиента input_audio_buffer.clear используется для очистки звуковых байтов в буфере. |
| RealtimeClientEventInputAudioBufferCommit | Событие клиента input_audio_buffer.commit используется для фиксации входного звукового буфера пользователя. |
| RealtimeClientEventOutputAudioBufferClear | Событие клиента output_audio_buffer.clear используется для очистки звуковых байтов в выходном буфере.Это событие применимо только для WebRTC. |
| RealtimeClientEventResponseCancel | Событие клиента response.cancel используется для отмены ответа на ход выполнения. |
| RealtimeClientEventResponseCreate | Событие клиента response.create используется для указания серверу создать ответ с помощью вывода модели. |
| RealtimeClientEventSessionUpdate | Событие клиента session.update используется для обновления конфигурации сеанса по умолчанию. |
RealtimeClientEventConversationItemCreate
Событие клиента conversation.item.create используется для добавления нового элемента в контекст беседы, включая сообщения, вызовы функций и ответы на вызовы функций. Это событие можно использовать для заполнения журнала беседы и добавления новых элементов в середине потока. В настоящее время это событие не может заполнять звуковые сообщения помощника.
В случае успешного conversation.item.created выполнения сервер отвечает на событие, в противном случае error отправляется событие.
Структура событий
{
"type": "conversation.item.create",
"previous_item_id": "<previous_item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.create. |
| предыдущий_идентификатор_элемента | струна | Идентификатор предыдущего элемента, после которого вставляется новый элемент. Если этот параметр не задан, новый элемент добавляется в конец беседы. Если задано, он позволяет вставлять элемент в середине беседы. Если идентификатор не найден, возвращается ошибка и элемент не добавляется. |
| элемент | Элемент запроса разговора в реальном времени | Элемент, добавляемый в беседу. |
RealtimeClientEventConversationItemDelete
Событие клиента conversation.item.delete используется для удаления элемента из журнала бесед.
Сервер отвечает на conversation.item.deleted событие, если элемент не существует в журнале бесед, в этом случае сервер отвечает с ошибкой.
Структура событий
{
"type": "conversation.item.delete",
"item_id": "<item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.delete. |
| идентификатор_товара | струна | Идентификатор удаленного элемента. |
СобытиеКлиентРеальногоВремениИзвлечениеЭлементаРазговора
Событие клиента conversation.item.retrieve используется для получения серверного представления определенного элемента в журнале разговоров. Это событие полезно, например, для проверки звука пользователя после отмены шума и VAD.
Если событие клиента успешно выполнено, сервер отвечает на conversation.item.retrieved событие. Если элемент не существует в журнале бесед, сервер ответит ошибкой.
Структура событий
{
"type": "conversation.item.retrieve",
"item_id": "<item_id>",
"event_id": "<event_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.retrieve. |
| идентификатор_товара | струна | Идентификатор извлекаемого элемента. |
| event_id | струна | Идентификатор события. |
Режим реального времени клиента: Укорачивание элемента разговора (RealtimeClientEventConversationItemTruncate)
Событие клиента conversation.item.truncate используется для усечения звука предыдущего помощника. Сервер создает звук быстрее, чем в режиме реального времени, поэтому это событие полезно, когда пользователь прерывает усечение звука, отправленного клиенту, но еще не воспроизводится. Понимание звука сервера с воспроизведением клиента синхронизируется.
Усечение звука удаляет расшифровку текста на стороне сервера, чтобы убедиться, что в контексте нет текста, о том, что пользователь не знает.
Если событие клиента успешно выполнено, сервер отвечает на conversation.item.truncated событие.
Структура событий
{
"type": "conversation.item.truncate",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.truncate. |
| идентификатор_товара | струна | Идентификатор элемента сообщения помощника для усечения. Только элементы сообщения помощника могут быть усечены. |
| индекс_содержания | целое число | Индекс части содержимого для усечения. Задайте для этого свойства значение "0". |
| окончание_аудио_мс | целое число | Инклюзивное время, до которого усечен звук в миллисекундах. Если audio_end_ms больше фактической продолжительности звука, сервер отвечает ошибкой. |
СобытиеКлиентаДобавитьБуферВходногоАудио
Событие клиента input_audio_buffer.append используется для добавления звуковых байтов в входной звуковой буфер. Буфер звука — это временное хранилище, в который можно записать и позже зафиксировать.
В режиме обнаружения действий голосовой связи сервера буфер звука используется для обнаружения речи, а сервер решает, когда зафиксировать. При отключении VAD сервера клиент может выбрать, сколько звука должно размещаться в каждом событии не более 15 МиБ. Например, потоковая передача небольших блоков от клиента может позволить VAD быть более адаптивным.
В отличие от большинства других событий клиента, сервер не отправляет ответ подтверждения на событие клиента input_audio_buffer.append .
Структура событий
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть input_audio_buffer.append. |
| аудио | струна | Аудиобайты в кодировке Base64. Это значение должно быть в формате, указанном input_audio_format полем в конфигурации сеанса. |
RealtimeClientEventInputAudioBufferClear (очистка входного аудиобуфера в клиенте реального времени)
Событие клиента input_audio_buffer.clear используется для очистки звуковых байтов в буфере.
Сервер отвечает на input_audio_buffer.cleared событие.
Структура событий
{
"type": "input_audio_buffer.clear"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть input_audio_buffer.clear. |
Фиксация входного аудиобуфера события клиента в реальном времени
Событие клиента input_audio_buffer.commit используется для фиксации входного звукового буфера пользователя, который создает новый элемент сообщения пользователя в беседе. Звук транскрибируется, если input_audio_transcription настроен для сеанса.
Если в режиме VAD сервера клиент не должен отправлять это событие, сервер автоматически фиксирует буфер звука. Без vaD сервера клиент должен зафиксировать звуковой буфер, чтобы создать элемент сообщения пользователя. Это событие клиента приводит к ошибке, если входной звуковой буфер пуст.
Фиксация входного звукового буфера не создает ответ от модели.
Сервер отвечает на input_audio_buffer.committed событие.
Структура событий
{
"type": "input_audio_buffer.commit"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть input_audio_buffer.commit. |
Очистка буфера аудиовыхода клиента в режиме реального времени
Событие клиента output_audio_buffer.clear используется для очистки звуковых байтов в буфере.
Замечание
Это событие применимо только для WebRTC.
Это событие должно предшествовать клиентскому response.cancel событию, чтобы остановить генерацию текущего ответа.
Сервер перестает создавать звук и реагирует на output_audio_buffer.cleared событие.
Структура событий
{
"type": "output_audio_buffer.clear"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| event_id | струна | Идентификатор события, вызвавшего ошибку. |
| тип | струна | Тип события должен быть output_audio_buffer.clear. |
Отмена ответа на событие клиента в реальном времени
Событие клиента response.cancel используется для отмены ответа на ход выполнения.
Сервер реагирует на response.cancelled событие или ошибку, если нет ответа на отмену.
Структура событий
{
"type": "response.cancel"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.cancel. |
Создание ответа на клиентское событие в режиме реального времени
Событие клиента response.create используется для указания серверу создать ответ с помощью вывода модели. Если сеанс настроен в режиме VAD сервера, сервер автоматически создает ответы.
Ответ включает по крайней мере один item, и может иметь два, в этом случае второй — вызов функции. Эти элементы добавляются в журнал бесед.
Сервер реагирует на response.created событие, одно или несколько событий элемента и содержимого (например conversation.item.created , и response.content_part.added), и, наконец response.done , событие, указывающее, что ответ завершен.
Замечание
Событие клиента response.create включает конфигурацию вывода, например instructions, и temperature. Эти поля могут переопределить конфигурацию сеанса только для этого ответа.
Структура событий
{
"type": "response.create"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.create. |
| ответ | RealtimeResponseOptions | Параметры ответа. |
RealtimeClientEventSessionUpdate
Событие клиента session.update используется для обновления конфигурации сеанса по умолчанию. Клиент может отправлять это событие в любое время, чтобы обновить конфигурацию сеанса, и любое поле можно обновлять в любое время, за исключением голосовой связи.
Обновляются только те поля, которые присутствуют. Чтобы очистить поле (например instructions, ), передайте пустую строку.
Сервер отвечает на session.updated событие, содержащее полную эффективную конфигурацию.
Структура событий
{
"type": "session.update"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть session.update. |
| сессия | RealtimeRequestSession | Конфигурация сеанса. |
События сервера
С сервера можно получить 28 событий сервера:
| Событие | Описание |
|---|---|
| RealtimeServerEventConversationCreated | Событие сервера conversation.created возвращается сразу после создания сеанса. Для каждого сеанса создается одна беседа. |
| Событие сервера в реальном времени: Создан элемент разговора | Событие сервера conversation.item.created возвращается при создании элемента беседы. |
| Событие Сервера в Реальном Времени: Получен Элемент Разговора | Событие сервера conversation.item.retrieved возвращается при извлечении элемента беседы. |
| RealtimeServerEventConversationItemDeleted | Событие сервера conversation.item.deleted возвращается, когда клиент удалил элемент в беседе с событием conversation.item.delete . |
| Событие в реальном времени на сервере: Расшифровка аудиозаписи завершена | Событие сервера conversation.item.input_audio_transcription.completed является результатом транскрибирования звука для речи, записанной в буфер звука. |
| Событие сервера в реальном времени: ошибка транскрипции аудио во вводе разговора | Событие сервера conversation.item.input_audio_transcription.failed возвращается при настройке входного транскрибирования звука, а запрос транскрибирования для сообщения пользователя завершился ошибкой. |
| RealtimeServerEventConversationItemTruncated | Событие сервера conversation.item.truncated возвращается при усечении предыдущего элемента звукового сообщения помощника с событием conversation.item.truncate . |
| RealtimeServerEventError | Событие сервера error возвращается при возникновении ошибки, которая может быть проблемой клиента или проблемой сервера. |
| Очистка звукового буфера входных данных события сервера в реальном времени | Событие сервера input_audio_buffer.cleared возвращается, когда клиент очищает входной звуковой буфер с событием input_audio_buffer.clear . |
| Зафиксирован входной аудиобуфер события сервера в реальном времени | Событие сервера input_audio_buffer.committed возвращается, когда входной звуковой буфер фиксируется клиентом или автоматически в режиме VAD сервера. |
| RealtimeServerEventInputAudioBufferSpeechStarted | Событие сервера input_audio_buffer.speech_started возвращается в server_vad режиме, когда речь обнаруживается в звуковом буфере. |
| Остановка речи во входном аудиобуфере сервера в реальном времени | Событие сервера input_audio_buffer.speech_stopped возвращается в server_vad режиме, когда сервер обнаруживает конец речи в звуковом буфере. |
| ОчисткаБуфераВыводаАудиоСобытийСервераВРеальномВремени | Событие сервера output_audio_buffer.cleared возвращается, когда пользователь прерывает процесс (input_audio_buffer.speech_started), или когда клиент эмитировал событие output_audio_buffer.clear для ручного отключения текущего звукового ответа.Это событие применимо только для WebRTC. |
| Начал работу буфер вывода аудио событий сервера в реальном времени | Событие output_audio_buffer.started возвращается сервером, когда он начинает потоковую передачу звука клиенту. Это событие создается после добавления части звукового содержимого (response.content_part.added) в ответ.Это событие применимо только для WebRTC. |
| Выход звукового буфера Реального Времени Серверного События остановлен | Событие сервера output_audio_buffer.stopped возвращается, когда выходной звуковой буфер полностью осушен на сервере, и больше звука не ожидается.Это событие применимо только для WebRTC. |
| Обновлены лимиты скорости событий сервера в реальном времени | Событие сервера rate_limits.updated создается в начале ответа, чтобы указать обновленные ограничения скорости. |
| RealtimeServerEventResponseAudioDelta | Событие сервера response.audio.delta возвращается при обновлении звука, созданного моделью. |
| RealtimeServerEventResponseAudioDone | Событие сервера response.audio.done возвращается при завершении звука, созданного моделью. |
| RealtimeServerEventResponseAudioTranscriptDelta | Событие сервера response.audio_transcript.delta возвращается при обновлении транскрибирования звука, созданного моделью. |
| Процесс расшифровки аудиозаписи завершён | Событие сервера response.audio_transcript.done возвращается при выполнении потоковой передачи данных, созданной моделью. |
| RealtimeServerEventResponseContentPartAdded | Событие сервера response.content_part.added возвращается при добавлении новой части содержимого в элемент сообщения помощника. |
| RealtimeServerEventResponseContentPartDone | Событие сервера response.content_part.done возвращается при выполнении потоковой передачи части содержимого. |
| Ответ на событие на сервере в реальном времени создан | Событие сервера response.created возвращается при создании нового ответа. Это первое событие создания ответа, где ответ находится в начальном состоянии in_progress. |
| RealtimeServerEventResponseDone | Событие сервера response.done возвращается при выполнении потоковой передачи ответа. |
| RealtimeServerEventResponseFunctionCallArgumentsDelta | Событие сервера response.function_call_arguments.delta возвращается при обновлении аргументов вызова функции, созданных моделью. |
| RealtimeServerEventResponseFunctionCallArgumentsDone | Событие сервера response.function_call_arguments.done возвращается, когда аргументы вызова функции, созданные моделью, выполняют потоковую передачу. |
| RealtimeServerEventResponseOutputItemAdded | Событие сервера response.output_item.added возвращается при создании нового элемента во время создания ответа. |
| RealtimeServerEventResponseOutputItemDone | Событие сервера response.output_item.done возвращается при выполнении потоковой передачи элемента. |
| RealtimeServerEventResponseTextDelta | Событие сервера response.text.delta возвращается при обновлении текста, созданного моделью. |
| RealtimeServerEventResponseTextDone | Событие сервера response.text.done возвращается при выполнении потоковой передачи созданного моделью текста. |
| RealtimeServerEventSessionCreated | Событие сервера — это первое событие сервера session.created при создании нового подключения к API Realtime. Это событие создает и возвращает новый сеанс с конфигурацией сеанса по умолчанию. |
| RealtimeServerEventSessionUpdated | Событие сервера session.updated возвращается при обновлении сеанса клиентом. Если возникла ошибка, сервер отправляет error событие. |
СобытиеСервераВРеальномВремениБеседаСоздана
Событие сервера conversation.created возвращается сразу после создания сеанса. Для каждого сеанса создается одна беседа.
Структура событий
{
"type": "conversation.created",
"conversation": {
"id": "<id>",
"object": "<object>"
}
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.created. |
| область | объект | Ресурс беседы. |
Свойства беседы
| Поле | Тип | Описание |
|---|---|---|
| идентификатор | струна | Уникальный ИД беседы. |
| объект | струна | Тип объекта должен быть realtime.conversation. |
СобытиеСервераВРеальномВремениЭлементРазговораСоздан
Событие сервера conversation.item.created возвращается при создании элемента беседы. Существует несколько сценариев, которые создают это событие:
- Сервер создает ответ, который при успешном выполнении создает один или два элемента, который имеет тип
message(рольassistant) или типfunction_call. - Входной звуковой буфер фиксируется клиентом или сервером (в
server_vadрежиме). Сервер принимает содержимое входного звукового буфера и добавляет его в новый элемент сообщения пользователя. - Клиент отправил
conversation.item.createсобытие для добавления нового элемента в беседу.
Структура событий
{
"type": "conversation.item.created",
"previous_item_id": "<previous_item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.created. |
| предыдущий_идентификатор_элемента | струна | Идентификатор предыдущего элемента в контексте беседы позволяет клиенту понять порядок беседы. |
| элемент | RealtimeConversationResponseItem | Созданный элемент. |
ПолученЭлементРазговораСобытияСервераВРеальномВремени
Событие сервера conversation.item.retrieved возвращается при извлечении элемента беседы.
Структура событий
{
"type": "conversation.item.retrieved",
"previous_item_id": "<previous_item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.retrieved. |
| event_id | струна | Идентификатор события. |
| элемент | RealtimeConversationResponseItem | Полученный элемент. |
СобытиеСервераВРеальномВремениУдаленЭлементБеседы
Событие сервера conversation.item.deleted возвращается, когда клиент удалил элемент в беседе с событием conversation.item.delete . Это событие используется для синхронизации понимания сервера журнала бесед с представлением клиента.
Структура событий
{
"type": "conversation.item.deleted",
"item_id": "<item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.deleted. |
| идентификатор_товара | струна | Идентификатор удаленного элемента. |
СобытиеСервераВРеальномВремениЗавершениеТранскрипцииАудиоВводаВЭлементРазговора
Событие сервера conversation.item.input_audio_transcription.completed является результатом транскрибирования звука для речи, записанной в буфер звука.
Транскрибирование начинается, когда входной звуковой буфер фиксируется клиентом или сервером (в server_vad режиме). Транскрибирование выполняется асинхронно с созданием ответа, поэтому это событие может происходить до или после событий отклика.
Модели API реального времени принимают аудио напрямую, поэтому транскрибирование входных данных — это отдельный процесс, выполняемый на другой модели распознавания речи, такой как whisper-1. Таким образом, расшифровка может несколько отличаться от интерпретации модели и должна рассматриваться как грубое руководство.
Структура событий
{
"type": "conversation.item.input_audio_transcription.completed",
"item_id": "<item_id>",
"content_index": 0,
"transcript": "<transcript>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.input_audio_transcription.completed. |
| идентификатор_товара | струна | Идентификатор элемента сообщения пользователя, содержащего звук. |
| индекс_содержания | целое число | Индекс части содержимого, содержащей звук. |
| расшифровка | струна | Транскрибированные тексты. |
Ошибка транскрипции аудио в реальном времени на сервере для элемента разговора
Событие сервера conversation.item.input_audio_transcription.failed возвращается при настройке входного транскрибирования звука, а запрос транскрибирования для сообщения пользователя завершился ошибкой. Это событие отличается от других error событий, чтобы клиент смог идентифицировать связанный элемент.
Структура событий
{
"type": "conversation.item.input_audio_transcription.failed",
"item_id": "<item_id>",
"content_index": 0,
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>"
}
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.input_audio_transcription.failed. |
| идентификатор_товара | струна | Идентификатор элемента сообщения пользователя. |
| индекс_содержания | целое число | Индекс части содержимого, содержащей звук. |
| ошибка | объект | Сведения об ошибке транскрибирования. См. вложенные свойства в следующей таблице. |
Свойства ошибки
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип ошибки. |
| код | струна | Код ошибки, если таковой есть. |
| сообщение | струна | Сообщение об ошибке, доступное для чтения человеком. |
| параметр | струна | Параметр, связанный с ошибкой, если таковой есть. |
УкороченныйЭлементРазговораСобытияСервераВРеальномВремени
Событие сервера conversation.item.truncated возвращается при усечении предыдущего элемента звукового сообщения помощника с событием conversation.item.truncate . Это событие используется для синхронизации понимания сервера звука с воспроизведением клиента.
Это событие усекает звук и удаляет расшифровку текста на стороне сервера, чтобы гарантировать отсутствие текста в контексте, о том, что пользователь не знает.
Структура событий
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть conversation.item.truncated. |
| идентификатор_товара | струна | Идентификатор элемента сообщения помощника, который был усечен. |
| индекс_содержания | целое число | Индекс части контента, которая была усечена. |
| окончание_аудио_мс | целое число | Длительность усечения звука в миллисекундах. |
Ошибка события сервера в реальном времени
Событие сервера error возвращается при возникновении ошибки, которая может быть проблемой клиента или проблемой сервера. Большинство ошибок можно восстановить, и сеанс остается открытым.
Структура событий
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть error. |
| ошибка | объект | Сведения об ошибке. См. вложенные свойства в следующей таблице. |
Свойства ошибки
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип ошибки. Например, "invalid_request_error" и "server_error" являются типами ошибок. |
| код | струна | Код ошибки, если таковой есть. |
| сообщение | струна | Сообщение об ошибке, доступное для чтения человеком. |
| параметр | струна | Параметр, связанный с ошибкой, если таковой есть. |
| event_id | струна | Идентификатор события клиента, вызвавшего ошибку, если применимо. |
Входной аудиобуфер события сервера в реальном времени очищен
Событие сервера input_audio_buffer.cleared возвращается, когда клиент очищает входной звуковой буфер с событием input_audio_buffer.clear .
Структура событий
{
"type": "input_audio_buffer.cleared"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть input_audio_buffer.cleared. |
РеальноеСобытиеСервераВводАудиобуферЗафиксирован
Событие сервера input_audio_buffer.committed возвращается, когда входной звуковой буфер фиксируется клиентом или автоматически в режиме VAD сервера. Это item_id свойство является идентификатором созданного элемента пользовательского сообщения. Таким образом, conversation.item.created событие также отправляется клиенту.
Структура событий
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть input_audio_buffer.committed. |
| предыдущий_идентификатор_элемента | струна | Идентификатор предыдущего элемента, после которого вставляется новый элемент. |
| идентификатор_товара | струна | Идентификатор созданного элемента сообщения пользователя. |
СобытиеРеальногоВремениСерверВводАудиоБуферРечьНачата
Событие сервера input_audio_buffer.speech_started возвращается в server_vad режиме, когда речь обнаруживается в звуковом буфере. Это событие может произойти при добавлении звука в буфер (если речь еще не обнаружена).
Замечание
Клиент может использовать это событие для прерывания воспроизведения звука или предоставления визуального отзыва пользователю.
Клиент должен ожидать получения события при остановке input_audio_buffer.speech_stopped речи. Это item_id свойство является идентификатором элемента сообщения пользователя, созданного при остановке речи. Он item_id также включен в input_audio_buffer.speech_stopped событие, если клиент вручную не фиксирует звуковой буфер во время активации VAD.
Структура событий
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть input_audio_buffer.speech_started. |
| аудио_старт_мс | целое число | Миллисекунда с начала всех аудиозаписей, записанных в буфер во время сеанса при первом обнаружении речи. Это свойство соответствует началу аудио, отправленного в модель, и, следовательно, включает prefix_padding_ms настроенный в сеансе. |
| идентификатор_товара | струна | Идентификатор элемента сообщения пользователя, созданного при остановке речи. |
ВременноеОстановEventInputАудиоБуферРечьОстановлена
Событие сервера input_audio_buffer.speech_stopped возвращается в server_vad режиме, когда сервер обнаруживает конец речи в звуковом буфере.
Сервер также отправляет conversation.item.created событие с элементом сообщения пользователя, созданным из звукового буфера.
Структура событий
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть input_audio_buffer.speech_stopped. |
| окончание_аудио_мс | целое число | Миллисекунда с момента начала сеанса при остановке речи. Это свойство соответствует концу звука, отправляемого в модель, и, следовательно, включает min_silence_duration_ms настроенный в сеансе. |
| идентификатор_товара | струна | Идентификатор созданного элемента сообщения пользователя. |
СобытиеСерверРеальногоВремениВыходОчисткаАудиоБуфера
Событие сервера output_audio_buffer.cleared генерируется при очистке звукового выходного буфера.
Замечание
Это событие применимо только для WebRTC.
Это происходит либо в режиме VAD, когда пользователь прервал (input_audio_buffer.speech_started), либо когда клиент вызвал событие output_audio_buffer.clear, чтобы вручную прерывать текущий звуковой ответ.
Структура событий
{
"type": "output_audio_buffer.cleared"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть output_audio_buffer.cleared. |
| event_id | струна | Идентификатор события сервера. |
| идентификатор_ответа | струна | Уникальный идентификатор ответа, создающего звук. |
RealtimeServerEventOutputAudioBufferStarted (событие аудиобуфера сервера в реальном времени начато)
Событие output_audio_buffer.started возвращается сервером, когда он начинает потоковую передачу звука клиенту. Это событие создается после добавления части звукового содержимого (response.content_part.added) в ответ.
Замечание
Это событие применимо только для WebRTC.
Структура событий
{
"type": "output_audio_buffer.started",
"event_id": "<item_id>",
"response_id": "<response_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть output_audio_buffer.started. |
| event_id | струна | Идентификатор события сервера. |
| идентификатор_ответа | струна | Уникальный идентификатор ответа, создающего звук. |
СобытиеСервераВРеальномВремениБуферАудиоОстановлен
Событие сервера output_audio_buffer.stopped возвращается, когда выходной звуковой буфер полностью осушен на сервере, и больше звука не ожидается.
Замечание
Это событие применимо только для WebRTC.
Это событие возвращается после отправки клиенту полных данных ответа через response.done событие.
Структура событий
{
"type": "output_audio_buffer.stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть output_audio_buffer.stopped. |
| event_id | струна | Идентификатор события сервера. |
| идентификатор_ответа | струна | Уникальный идентификатор ответа, создающего звук. |
ОграниченияСкоростиСобытийСервераВРеальномВремениОбновлены
Событие сервера rate_limits.updated создается в начале ответа, чтобы указать обновленные ограничения скорости.
При создании ответа некоторые маркеры зарезервированы для выходных маркеров. Ограничения скорости, отображаемые здесь, отражают это резервирование, которое затем корректируется соответствующим образом после завершения ответа.
Структура событий
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть rate_limits.updated. |
| ограничения частоты запросов | массив RealtimeServerEventRateLimitsUpdatedRateLimitsItem | Список сведений об ограничении скорости. |
РеалтаймСерверИвентРеспонсАудиоДельта
Событие сервера response.audio.delta возвращается при обновлении звука, созданного моделью.
Структура событий
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.audio.delta. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| индекс_содержания | целое число | Индекс части содержимого в массиве содержимого элемента. |
| дельта | струна | Разностные звуковые данные в кодировке Base64. |
Завершение обработки аудио в Реальном времени на сервере
Событие сервера response.audio.done возвращается при завершении звука, созданного моделью.
Это событие также возвращается при прерывании, неполном или отмене ответа.
Структура событий
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.audio.done. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| индекс_содержания | целое число | Индекс части содержимого в массиве содержимого элемента. |
RealtimeServerEventResponseAudioTranscriptDelta
Событие сервера response.audio_transcript.delta возвращается при обновлении транскрибирования звука, созданного моделью.
Структура событий
{
"type": "response.audio_transcript.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.audio_transcript.delta. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| индекс_содержания | целое число | Индекс части содержимого в массиве содержимого элемента. |
| дельта | струна | Разностная расшифровка. |
ЗавершениеАудиоТранскрипцииВОтветНаСобытиеРеальногоВремениСервера
Событие сервера response.audio_transcript.done возвращается при выполнении потоковой передачи данных, созданной моделью.
Это событие также возвращается при прерывании, неполном или отмене ответа.
Структура событий
{
"type": "response.audio_transcript.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"transcript": "<transcript>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.audio_transcript.done. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| индекс_содержания | целое число | Индекс части содержимого в массиве содержимого элемента. |
| расшифровка | струна | Окончательный расшифровка звука. |
"Часть содержимого ответа на событие сервера в реальном времени добавлена"
Событие сервера response.content_part.added возвращается при добавлении новой части содержимого в элемент сообщения помощника во время создания ответа.
Структура событий
{
"type": "response.content_part.added",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.content_part.added. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента, к которому была добавлена часть содержимого. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| индекс_содержания | целое число | Индекс части содержимого в массиве содержимого элемента. |
| часть | RealtimeContentPart | Добавленная часть содержимого. |
Свойства части
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeContentPartType |
Ответ на событие сервера в реальном времени: часть завершена
Событие сервера response.content_part.done возвращается при выполнении потоковой передачи части содержимого в элементе сообщения помощника.
Это событие также возвращается при прерывании, неполном или отмене ответа.
Структура событий
{
"type": "response.content_part.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.content_part.done. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| индекс_содержания | целое число | Индекс части содержимого в массиве содержимого элемента. |
| часть | RealtimeContentPart | Выполненная часть содержимого. |
Свойства части
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeContentPartType |
СозданОтветНаСобытиеСервераВРеальномВремени
Событие сервера response.created возвращается при создании нового ответа. Это первое событие создания ответа, где ответ находится в начальном состоянии in_progress.
Структура событий
{
"type": "response.created"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.created. |
| ответ | RealtimeResponse | Объект ответа. |
Выполнение ответа на событие сервера в реальном времени
Событие сервера response.done возвращается при выполнении потоковой передачи ответа. Это событие всегда создается, независимо от конечного состояния. Объект ответа, включенный в response.done событие, включает все выходные элементы в ответе, но не включает необработанные звуковые данные.
Структура событий
{
"type": "response.done"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.done. |
| ответ | RealtimeResponse | Объект ответа. |
Аргументы вызова функции ответа на событие сервера в реальном времени - Дельта
Событие сервера response.function_call_arguments.delta возвращается при обновлении аргументов вызова функции, созданных моделью.
Структура событий
{
"type": "response.function_call_arguments.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"delta": "<delta>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.function_call_arguments.delta. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента вызова функции. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| идентификатор вызова | струна | Идентификатор вызова функции. |
| дельта | струна | Аргументы разностно в виде строки JSON. |
ГотовоАргументыВызоваФункцииОтветаНаСобытиеСервераВРеальномВремени
Событие сервера response.function_call_arguments.done возвращается, когда аргументы вызова функции, созданные моделью, выполняют потоковую передачу.
Это событие также возвращается при прерывании, неполном или отмене ответа.
Структура событий
{
"type": "response.function_call_arguments.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"call_id": "<call_id>",
"arguments": "<arguments>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.function_call_arguments.done. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента вызова функции. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| идентификатор вызова | струна | Идентификатор вызова функции. |
| аргументы | струна | Окончательные аргументы в виде строки JSON. |
ОтветРеальногоВремениСервераСобытиеВыходДобавленЭлемент
Событие сервера response.output_item.added возвращается при создании нового элемента во время создания ответа.
Структура событий
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.output_item.added. |
| идентификатор_ответа | струна | Идентификатор ответа, к которому принадлежит элемент. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| элемент | RealtimeConversationResponseItem | Добавлен элемент. |
Готов элемент ответа события сервера в реальном времени
Событие сервера response.output_item.done возвращается при выполнении потоковой передачи элемента.
Это событие также возвращается при прерывании, неполном или отмене ответа.
Структура событий
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.output_item.done. |
| идентификатор_ответа | струна | Идентификатор ответа, к которому принадлежит элемент. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| элемент | RealtimeConversationResponseItem | Элемент, который выполняет потоковую передачу. |
RealtimeServerEventResponseTextDelta
Событие сервера response.text.delta возвращается при обновлении текста, созданного моделью. Текст соответствует text части содержимого элемента сообщения помощника.
Структура событий
{
"type": "response.text.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.text.delta. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| индекс_содержания | целое число | Индекс части содержимого в массиве содержимого элемента. |
| дельта | струна | Разностный текст. |
Ответ сервера в реальном времени – текст завершён
Событие сервера response.text.done возвращается при выполнении потоковой передачи созданного моделью текста. Текст соответствует text части содержимого элемента сообщения помощника.
Это событие также возвращается при прерывании, неполном или отмене ответа.
Структура событий
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть response.text.done. |
| идентификатор_ответа | струна | Идентификатор ответа. |
| идентификатор_товара | струна | Идентификатор элемента. |
| выходной_индекс | целое число | Индекс выходного элемента в ответе. |
| индекс_содержания | целое число | Индекс части содержимого в массиве содержимого элемента. |
| текст | струна | Окончательное текстовое содержимое. |
СозданаСессияСобытияСервераВРеальномВремени
Событие сервера — это первое событие сервера session.created при создании нового подключения к API Realtime. Это событие создает и возвращает новый сеанс с конфигурацией сеанса по умолчанию.
Структура событий
{
"type": "session.created"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть session.created. |
| сессия | RealtimeResponseSession | Объект сеанса. |
Обновление сеанса события сервера в реальном времени
Событие сервера session.updated возвращается при обновлении сеанса клиентом. Если возникла ошибка, сервер отправляет error событие.
Структура событий
{
"type": "session.updated"
}
Свойства
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип события должен быть session.updated. |
| сессия | RealtimeResponseSession | Объект сеанса. |
Компоненты
Формат реального времени для аудио
Допустимые значения:
pcm16g711_ulawg711_alaw
Модель транскрипции аудиовхода в реальном времени
Допустимые значения:
whisper-1gpt-4o-transcribegpt-4o-mini-transcribegpt-4o-transcribe-diarize
Настройки транскрипции аудиовхода в реальном времени
| Поле | Тип | Описание |
|---|---|---|
| язык | струна | Язык входного звука. Предоставление языка ввода в формате ISO-639-1 (например en) повышает точность и задержку. |
| модель | RealtimeAudioInputTranscriptionModel | Модель для транскрибирования входных звуковых данных. Например: whisper-1. |
| подсказка | струна | Запрос на транскрибирование входных звуковых данных. Необязательный текст для руководства по стилю модели или продолжения предыдущего сегмента звука.
whisper-1 Для модели запрос — это список ключевых слов. Для моделей gpt-4o-transcribe, gpt-4o-transcribe-diarize и gpt-4o-mini-transcribe подсказка — это свободная текстовая строка, например, "ожидайте слова, связанные с технологией". |
Настройки уменьшения шума аудиовхода в реальном времени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип уменьшения шума. Укажите near_field для микрофонов близкого разговора, таких как наушники или far_field для микрофонов с дальним полем, таких как ноутбук или микрофоны конференц-зала. |
RealtimeClientEvent
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeClientEventType | Тип события клиента. |
| event_id | струна | Уникальный идентификатор события. Клиент может указать идентификатор, который поможет определить событие. |
Тип события клиента в режиме реального времени
Допустимые значения:
session.updateinput_audio_buffer.appendinput_audio_buffer.commitinput_audio_buffer.clearconversation.item.createconversation.item.deleteconversation.item.truncateresponse.createresponse.cancel
РеалтаймКонтентЧасть
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeContentPartType | Тип контента. Свойство function объекта.Допустимые значения: input_text, , input_audioitem_referencetext. |
| текст | струна | Текстовое содержимое. Это свойство применимо к типам контента и input_text типам text контента. |
| идентификатор | струна | Идентификатор предыдущего элемента беседы для ссылки как на созданные клиентом, так и на сервер. Это свойство применимо к типу item_reference контента в response.create событиях. |
| аудио | струна | Звуковые байты в кодировке Base64. Это свойство применимо к типу input_audio контента. |
| расшифровка | струна | Расшифровка звука. Это свойство применимо к типу input_audio контента. |
Тип части контента в реальном времени
Допустимые значения:
input_textinput_audiotextaudio
RealtimeConversationItemBase
Элемент, добавляемый в беседу.
В этой таблице описываются все RealtimeConversationItem свойства. Свойства, применимые для каждого события, зависят от RealtimeItemType.
| Поле | Тип | Описание |
|---|---|---|
| идентификатор | струна | Уникальный идентификатор элемента. Клиент может указать идентификатор для управления контекстом на стороне сервера. Если клиент не предоставляет идентификатор, сервер создает его. |
| тип | RealtimeItemType | Тип элемента. Допустимые значения: message, function_callfunction_call_output |
| объект | струна | Идентификатор возвращаемого объекта API. Значение всегда будет.realtime.item |
| статус | RealtimeItemStatus | Состояние элемента. Это поле не влияет на беседу, но оно принимается для согласованности с событием conversation.item.created .Допустимые значения: completed, incomplete |
| роль | RealtimeMessageRole | Роль отправителя сообщения. Это свойство применимо только для message элементов. Допустимые значения: system, userassistant |
| содержимое | массив RealtimeContentPart | Содержимое сообщения. Это свойство применимо только для message элементов.— Элементы сообщений роли system поддерживают только input_text содержимое.— Элементы сообщения о поддержке user ролей input_text и input_audio содержимом.— Элементы сообщения о содержимом поддержки assistant ролейtext. |
| идентификатор вызова | струна | Идентификатор вызова функции (для function_call и function_call_output элементов). При передаче function_call_output элемента сервер проверяет наличие function_call элемента с тем же идентификатором в журнале бесед. |
| имя | струна | Имя вызываемой функции (для function_call элементов). |
| аргументы | струна | Аргументы вызова функции (для function_call элементов). |
| результат | струна | Выходные данные вызова функции (для function_call_output элементов). |
ЭлементЗапросаНаРазговорВРеальномВремени
Вы используете объект RealtimeConversationRequestItem для создания нового элемента в беседе с помощью события conversation.item.create.
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeItemType | Тип элемента. |
| идентификатор | струна | Уникальный идентификатор элемента. Клиент может указать идентификатор для управления контекстом на стороне сервера. Если клиент не предоставляет идентификатор, сервер создает его. |
RealtimeConversationResponseItem
Объект RealtimeConversationResponseItem представляет элемент в беседе. Он используется в некоторых событиях сервера, таких как:
- элемент беседы создан
- ответ.выходной_элемент.добавлен
- ответ.элемент_вывода.готово
-
response.created(черезresponseтипRealtimeResponseсвойства ) -
response.done(черезresponseтипRealtimeResponseсвойства )
| Поле | Тип | Описание |
|---|---|---|
| объект | струна | Идентификатор возвращаемого объекта API. Допустимые значения: realtime.item |
| тип | RealtimeItemType | Тип элемента. Допустимые значения: message, function_callfunction_call_output |
| идентификатор | струна | Уникальный идентификатор элемента. Клиент может указать идентификатор для управления контекстом на стороне сервера. Если клиент не предоставляет идентификатор, сервер создает его. Это свойство допускает значение NULL. |
RealtimeFunctionTool
Определение средства функции, используемого конечной точкой реального времени.
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип средства. Допустимые значения: function |
| имя | струна | Имя функции. |
| описание | струна | Описание функции, включая рекомендации по использованию. Например, "Используйте эту функцию для получения текущего времени". |
| Параметры | объект | Параметры функции в виде объекта JSON. |
СтатусЭлементаВРеальномВремени
Допустимые значения:
in_progresscompletedincomplete
Тип элемента в реальном времени
Допустимые значения:
messagefunction_callfunction_call_output
РольСообщенияВРеальномВремени
Допустимые значения:
systemuserassistant
ЭлементСообщенияАссистентаЗапросаВРеальномВремени
| Поле | Тип | Описание |
|---|---|---|
| роль | струна | Роль сообщения. Допустимые значения: assistant |
| содержимое | массив RealtimeRequestTextContentPart | Содержимое сообщения. |
ЧастьАудиоЗапросаВРеальномВремени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип части содержимого. Допустимые значения: input_audio |
| расшифровка | струна | Расшифровка звука. |
Элемент вызова функции запроса в реальном времени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип элемента. Допустимые значения: function_call |
| имя | струна | Имя элемента вызова функции. |
| идентификатор вызова | струна | Идентификатор элемента вызова функции. |
| аргументы | струна | Аргументы элемента вызова функции. |
| статус | RealtimeItemStatus | Состояние элемента. |
Элемент вывода функции вызова запроса в реальном времени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип элемента. Допустимые значения: function_call_output |
| идентификатор вызова | струна | Идентификатор элемента вызова функции. |
| результат | струна | Выходные данные элемента вызова функции. |
ЭлементСообщенияЗапросаВРеальномВремени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип элемента. Допустимые значения: message |
| роль | RealtimeMessageRole | Роль сообщения. |
| статус | RealtimeItemStatus | Состояние элемента. |
ЭлементСсылкиНаСообщениеЗапросаВРеальномВремени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип элемента. Допустимые значения: message |
| идентификатор | струна | Идентификатор элемента сообщения. |
Сеанс запроса в реальном времени
Вы используете объект RealtimeRequestSession, когда хотите обновить конфигурацию сеанса с помощью события session.update.
| Поле | Тип | Описание |
|---|---|---|
| Условия | массив | Модальности, поддерживаемые сеансом. Допустимые значения: text, audioНапример, "modalities": ["text", "audio"] это параметр по умолчанию, который включает как текстовые, так и звуковые модалы. Чтобы включить только текст, задайте ."modalities": ["text"] Вы не можете включить только звук. |
| инструкции | струна | Инструкции (системное сообщение) для руководства по текстовым и звуковым ответам модели. Ниже приведены некоторые примеры инструкций по использованию содержимого и формата текстовых и звуковых ответов: "instructions": "be succinct""instructions": "act friendly""instructions": "here are examples of good responses"Ниже приведены некоторые примеры инструкций по поведению звука: "instructions": "talk quickly""instructions": "inject emotion into your voice""instructions": "laugh frequently"Хотя модель может не всегда следовать этим инструкциям, они предоставляют рекомендации по требуемому поведению. |
| голос | RealtimeVoice | Голос, используемый для ответа модели для сеанса. После использования голоса в сеансе для звукового ответа модели его нельзя изменить. |
| формат_входного_аудио | RealtimeAudioFormat | Формат входного звука. |
| формат_выходного_аудио | RealtimeAudioFormat | Формат выходного звука. |
| подавление шума входного аудиосигнала | Настройки снижения шума аудиовхода реального времени | Настройка для уменьшения шума входного звука. Для отключения этого параметра может быть задано значение NULL. Фильтры для уменьшения шума обрабатывают звук, добавленный во входной звуковой буфер перед отправкой в VAD и модель. Фильтрация звука может повысить точность обнаружения VAD и поворота (уменьшая ложные срабатывания) и производительность модели, повышая восприятие входного звука. Это свойство допускает значение NULL. |
| ввод стенограммы аудио | Настройки транскрипции аудиоввода в реальном времени | Конфигурация входного транскрибирования звука. Конфигурация имеет значение NULL (off) по умолчанию. Транскрибирование входного звука не является собственным для модели, так как модель использует звук напрямую. Транскрибирование выполняется асинхронно через /audio/transcriptions конечную точку и должно рассматриваться как рекомендация по входному аудиосодержимому, а не как точное воспроизведение того, что слышала модель. Для получения дополнительных рекомендаций для службы транскрибирования клиент может при необходимости задать язык и запрашивать транскрибирование.Это свойство допускает значение NULL. |
| обнаружение поворотов | RealtimeTurnDetection | Параметры обнаружения поворота для сеанса. Это свойство допускает значение NULL. |
| инструменты | массив RealtimeTool | Средства, доступные модели для сеанса. |
| выбор инструмента | RealtimeToolChoice | Выбор средства для сеанса. Допустимые значения: auto, none и required. В противном случае можно указать имя используемой функции. |
| Температура | число/номер | Температура выборки для модели. Допустимые значения температуры ограничены [0,6, 1.2]. По умолчанию используется значение 0.8. |
| максимальное_количество_токенов_вывода_ответа | целое число или inf | Максимальное количество выходных маркеров на ответ помощника, включающее вызовы инструментов. Укажите целое число от 1 до 4096, чтобы ограничить выходные маркеры. В противном случае задайте значение inf, чтобы разрешить максимальное количество маркеров. Например, чтобы ограничить выходные маркеры до 1000, задайте "max_response_output_tokens": 1000. Чтобы разрешить максимальное количество маркеров, задайте "max_response_output_tokens": "inf".По умолчанию — "inf". |
ЭлементСообщенияСистемыЗапросовВРеальномВремени
| Поле | Тип | Описание |
|---|---|---|
| роль | струна | Роль сообщения. Допустимые значения: system |
| содержимое | массив RealtimeRequestTextContentPart | Содержимое сообщения. |
Содержимое текста запроса в режиме реального времени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип части содержимого. Допустимые значения: input_text |
| текст | струна | Текстовое содержимое. |
ЭлементСообщенияПользователяЗапросаВРеальномВремени
| Поле | Тип | Описание |
|---|---|---|
| роль | струна | Роль сообщения. Допустимые значения: user |
| содержимое | массив RealtimeRequestTextContentPart или RealtimeRequestAudioContentPart | Содержимое сообщения. |
RealtimeResponse
| Поле | Тип | Описание |
|---|---|---|
| объект | струна | Объект ответа. Допустимые значения: realtime.response |
| идентификатор | струна | Уникальный идентификатор ответа. |
| статус | RealtimeResponseStatus | Состояние ответа. Значение состояния по умолчанию — in_progress. |
| подробности_статуса | RealtimeResponseStatusDetails | Сведения о состоянии ответа. Это свойство допускает значение NULL. |
| результат | массив RealtimeConversationResponseItem | Выходные элементы ответа. |
| использование | объект | Статистика использования ответа. Каждый сеанс API реального времени поддерживает контекст беседы и добавляет новые элементы в беседу. Выходные данные предыдущих поворотов (текстовые и звуковые маркеры) — входные данные для последующих поворотов. Далее см. вложенные свойства. |
| + итого_токены | целое число | Общее количество маркеров в ответе, включая входной и выходной текст и маркеры звука. Свойство usage объекта. |
| + input_tokens | целое число | Количество маркеров ввода, используемых в ответе, включая текстовые и звуковые маркеры. Свойство usage объекта. |
| + выходные_токены (output_tokens) | целое число | Количество маркеров вывода, отправленных в ответе, включая текстовые и звуковые маркеры. Свойство usage объекта. |
| детали токена ввода | объект | Сведения о входных маркерах, используемых в ответе. Свойство usage объекта.Далее см. вложенные свойства. |
| + кэшированные_токены | целое число | Количество кэшированных маркеров, используемых в ответе. Свойство input_token_details объекта. |
| + текстовые_токены | целое число | Количество текстовых маркеров, используемых в ответе. Свойство input_token_details объекта. |
| + аудио_токены | целое число | Количество маркеров звука, используемых в ответе. Свойство input_token_details объекта. |
| + выходные_данные_токена_детали | объект | Сведения о выходных маркерах, используемых в ответе. Свойство usage объекта.Далее см. вложенные свойства. |
| + текстовые_токены | целое число | Количество текстовых маркеров, используемых в ответе. Свойство output_token_details объекта. |
| + аудио_токены | целое число | Количество маркеров звука, используемых в ответе. Свойство output_token_details объекта. |
Часть аудиоконтента RealtimeResponse
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип части содержимого. Допустимые значения: audio |
| расшифровка | струна | Расшифровка звука. Это свойство допускает значение NULL. |
RealtimeResponseBase
Ресурс ответа.
Элемент вызова функции времени отклика в реальном времени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип элемента. Допустимые значения: function_call |
| имя | струна | Имя элемента вызова функции. |
| идентификатор вызова | струна | Идентификатор элемента вызова функции. |
| аргументы | струна | Аргументы элемента вызова функции. |
| статус | RealtimeItemStatus | Состояние элемента. |
Элемент вывода функции вызова в реальном времени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип элемента. Допустимые значения: function_call_output |
| идентификатор вызова | струна | Идентификатор элемента вызова функции. |
| результат | струна | Выходные данные элемента вызова функции. |
ЭлементСообщенияОткликаВРеальномВремени
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип элемента. Допустимые значения: message |
| роль | RealtimeMessageRole | Роль сообщения. |
| содержимое | массив | Содержимое сообщения. Элементы массива: RealtimeResponseTextContentPart |
| статус | RealtimeItemStatus | Состояние элемента. |
Опции实时反应
| Поле | Тип | Описание |
|---|---|---|
| Условия | массив | Модальности, поддерживаемые сеансом. Допустимые значения: text, audioНапример, "modalities": ["text", "audio"] это параметр по умолчанию, который включает как текстовые, так и звуковые модалы. Чтобы включить только текст, задайте ."modalities": ["text"] Вы не можете включить только звук. |
| инструкции | струна | Инструкции (системное сообщение) для руководства по текстовым и звуковым ответам модели. Ниже приведены некоторые примеры инструкций по использованию содержимого и формата текстовых и звуковых ответов: "instructions": "be succinct""instructions": "act friendly""instructions": "here are examples of good responses"Ниже приведены некоторые примеры инструкций по поведению звука: "instructions": "talk quickly""instructions": "inject emotion into your voice""instructions": "laugh frequently"Хотя модель может не всегда следовать этим инструкциям, они предоставляют рекомендации по требуемому поведению. |
| голос | RealtimeVoice | Голос, используемый для ответа модели для сеанса. После использования голоса в сеансе для звукового ответа модели его нельзя изменить. |
| формат_выходного_аудио | RealtimeAudioFormat | Формат выходного звука. |
| инструменты | массив RealtimeTool | Средства, доступные модели для сеанса. |
| выбор инструмента | RealtimeToolChoice | Выбор средства для сеанса. |
| Температура | число/номер | Температура выборки для модели. Допустимые значения температуры ограничены [0,6, 1.2]. По умолчанию используется значение 0.8. |
| max__output_tokens (максимальное количество выходных токенов) | целое число или inf | Максимальное количество выходных маркеров на ответ помощника, включающее вызовы инструментов. Укажите целое число от 1 до 4096, чтобы ограничить выходные маркеры. В противном случае задайте значение inf, чтобы разрешить максимальное количество маркеров. Например, чтобы ограничить выходные маркеры до 1000, задайте "max_response_output_tokens": 1000. Чтобы разрешить максимальное количество маркеров, задайте "max_response_output_tokens": "inf".По умолчанию — "inf". |
| область | струна | Определяет, к какой беседе добавляется ответ. Поддерживаемые значения: auto и none.Значение auto (или не задано это свойство) гарантирует, что содержимое ответа добавляется в беседу по умолчанию сеанса.Задайте этому свойству значение, чтобы none создать ответ вне диапазона, в котором элементы не будут добавлены в беседу по умолчанию. Дополнительные сведения см. в руководстве.По умолчанию — "auto". |
| метаданные | карта | Настройка до 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов. Например: metadata: { topic: "classification" } |
| ввод | массив | Входные элементы для включения в запрос модели. Создает новый контекст для этого ответа, не включая беседу по умолчанию. Может включать ссылки на элементы из беседы по умолчанию. Элементы массива: RealtimeConversationItemBase |
Сессия оперативной реакции
Объект RealtimeResponseSession представляет сеанс в API Реального времени. Он используется в некоторых событиях сервера, таких как:
| Поле | Тип | Описание |
|---|---|---|
| объект | струна | Объект сеанса. Допустимые значения: realtime.session |
| идентификатор | струна | Уникальный идентификатор сеанса. |
| модель | струна | Модель, используемая для сеанса. |
| Условия | массив | Модальности, поддерживаемые сеансом. Допустимые значения: text, audioНапример, "modalities": ["text", "audio"] это параметр по умолчанию, который включает как текстовые, так и звуковые модалы. Чтобы включить только текст, задайте ."modalities": ["text"] Вы не можете включить только звук. |
| инструкции | струна | Инструкции (системное сообщение) для руководства по текстовым и звуковым ответам модели. Ниже приведены некоторые примеры инструкций по использованию содержимого и формата текстовых и звуковых ответов: "instructions": "be succinct""instructions": "act friendly""instructions": "here are examples of good responses"Ниже приведены некоторые примеры инструкций по поведению звука: "instructions": "talk quickly""instructions": "inject emotion into your voice""instructions": "laugh frequently"Хотя модель может не всегда следовать этим инструкциям, они предоставляют рекомендации по требуемому поведению. |
| голос | RealtimeVoice | Голос, используемый для ответа модели для сеанса. После использования голоса в сеансе для звукового ответа модели его нельзя изменить. |
| формат_входного_аудио | RealtimeAudioFormat | Формат входного звука. |
| формат_выходного_аудио | RealtimeAudioFormat | Формат выходного звука. |
| ввод стенограммы аудио | Настройки транскрипции аудиоввода в реальном времени | Параметры транскрибирования входных звука. Это свойство допускает значение NULL. |
| обнаружение поворотов | RealtimeTurnDetection | Параметры обнаружения поворота для сеанса. Это свойство допускает значение NULL. |
| инструменты | массив RealtimeTool | Средства, доступные модели для сеанса. |
| выбор инструмента | RealtimeToolChoice | Выбор средства для сеанса. |
| Температура | число/номер | Температура выборки для модели. Допустимые значения температуры ограничены [0,6, 1.2]. По умолчанию используется значение 0.8. |
| максимальное_количество_токенов_вывода_ответа | целое число или inf | Максимальное количество выходных маркеров на ответ помощника, включающее вызовы инструментов. Укажите целое число от 1 до 4096, чтобы ограничить выходные маркеры. В противном случае задайте значение inf, чтобы разрешить максимальное количество маркеров. Например, чтобы ограничить выходные маркеры до 1000, задайте "max_response_output_tokens": 1000. Чтобы разрешить максимальное количество маркеров, задайте "max_response_output_tokens": "inf". |
RealtimeResponseStatus
Допустимые значения:
in_progresscompletedcancelledincompletefailed
Детали статуса ответа в реальном времени
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeResponseStatus | Состояние ответа. |
RealtimeResponseTextContentPart
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип части содержимого. Допустимые значения: text |
| текст | струна | Текстовое содержимое. |
RealtimeServerEvent
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeServerEventType | Тип события сервера. |
| event_id | струна | Уникальный идентификатор события сервера. |
ПределыСкоростиОбновленныхЛимитовРеальногоВремениСерверныхСобытий
| Поле | Тип | Описание |
|---|---|---|
| имя | струна | Имя свойства ограничения скорости, о которое этот элемент содержит сведения. |
| предел | целое число | Максимально настроенное ограничение для этого свойства ограничения скорости. |
| осталось | целое число | Оставшаяся квота, доступная в соответствии с настроенным ограничением для этого свойства ограничения скорости. |
| сброс_секунд | число/номер | Оставшееся время (в секундах), пока это свойство ограничения скорости не будет сброшено. |
Тип события сервера в реальном времени
Допустимые значения:
session.createdsession.updatedconversation.createdconversation.item.createdconversation.item.deletedconversation.item.truncatedresponse.createdresponse.donerate_limits.updatedresponse.output_item.addedresponse.output_item.doneresponse.content_part.addedresponse.content_part.doneresponse.audio.deltaresponse.audio.doneresponse.audio_transcript.deltaresponse.audio_transcript.doneresponse.text.deltaresponse.text.doneresponse.function_call_arguments.deltaresponse.function_call_arguments.doneinput_audio_buffer.speech_startedinput_audio_buffer.speech_stoppedconversation.item.input_audio_transcription.completedconversation.item.input_audio_transcription.failedinput_audio_buffer.committedinput_audio_buffer.clearederror
Обнаружение поворотов VAD в реальном времени на сервере
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип обнаружения поворота. Допустимые значения: server_vad |
| порог | число/номер | Порог активации для обнаружения поворота VAD сервера. В шумных средах может потребоваться увеличить пороговое значение, чтобы избежать ложных срабатываний. В тихих средах может потребоваться уменьшить пороговое значение, чтобы избежать ложных отрицательных значений. По умолчанию — 0.5. Пороговое значение можно задать между 0.0 и 1.0. |
| prefix_padding_ms (предварительное заполнение в миллисекундах) | струна | Длительность звука речи (в миллисекундах), включаемая до начала обнаруженной речи. По умолчанию — 300. |
| длительность_тишины_мс | струна | Длительность молчания (в миллисекундах) для обнаружения конца речи. Вы хотите обнаружить конец речи как можно скорее, но не слишком скоро, чтобы избежать сокращения последней части речи. Модель будет реагировать быстрее, если задать это значение меньшему числу, но она может отрезать последнюю часть речи. Если задать это значение более высоким числом, модель будет ждать больше времени, чтобы обнаружить конец речи, но может потребоваться больше времени для ответа. |
RealtimeSessionBase
Конфигурация объекта сеанса в режиме реального времени.
RealtimeTool
Базовое представление определения инструмента в режиме реального времени.
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeToolType | Тип средства. |
RealtimeToolChoice
Объединенный набор доступных представлений для параметра реального времени tool_choice , охватывающий как строковые литеральные параметры, такие как auto, так и структурированные ссылки на определенные инструменты.
RealtimeToolChoiceFunctionObject
Представление именованного средства функции в режиме реального времени tool_choice .
| Поле | Тип | Описание |
|---|---|---|
| тип | струна | Тип tool_choice.Допустимые значения: function |
| функция | объект | Средство функции для выбора. Далее см. вложенные свойства. |
| + имя | струна | Имя средства функции. Свойство function объекта. |
Выбор инструмента в реальном времени (дословно)
Доступный набор параметров строкового литерала tool_choice для конечной точки реального времени.
Допустимые значения:
autononerequired
RealtimeToolChoiceObject
Базовое представление для реального времени tool_choice выбора именованного инструмента.
| Поле | Тип | Описание |
|---|---|---|
| тип | RealtimeToolType | Тип tool_choice. |
Тип инструмента реального времени
Поддерживаемый тип инструмента дискриминационный для инструментов в режиме реального времени. В настоящее время поддерживаются только средства функции.
Допустимые значения:
function
ОбнаружениеПоворотовВРеальномВремени
| Поле | Тип | Описание |
|---|---|---|
| тип | ТипОбнаруженияПоворотаВРеальномВремени | Тип обнаружения поворота. Допустимые значения: semantic_vad или server_vad |
| порог | число/номер | Порог активации для обнаружения поворота сервера VAD (server_vad). В шумных средах может потребоваться увеличить пороговое значение, чтобы избежать ложных срабатываний. В тихих средах может потребоваться уменьшить пороговое значение, чтобы избежать ложных отрицательных значений.По умолчанию — 0.5. Пороговое значение можно задать между 0.0 и 1.0.Это свойство применимо только для server_vad обнаружения поворота. |
| prefix_padding_ms (предварительное заполнение в миллисекундах) | струна | Длительность звука речи (в миллисекундах), включаемая до начала обнаруженной речи. По умолчанию используется 300 миллисекунда.Это свойство применимо только для server_vad обнаружения поворота. |
| длительность_тишины_мс | струна | Длительность молчания (в миллисекундах) для обнаружения конца речи. Вы хотите обнаружить конец речи как можно скорее, но не слишком скоро, чтобы избежать сокращения последней части речи. Модель будет реагировать быстрее, если задать это значение меньшему числу, но она может отрезать последнюю часть речи. Если задать это значение более высоким числом, модель будет ждать больше времени, чтобы обнаружить конец речи, но может потребоваться больше времени для ответа. По умолчанию используется 200 миллисекунда.Это свойство применимо только для server_vad обнаружения поворота. |
| создать_ответ | булевый | Указывает, будет ли сервер автоматически создавать ответ при включении VAD и остановке речи. По умолчанию — true. |
| ответ на прерывание | булевый | Указывает, будет ли сервер автоматически прерывать любой текущий ответ с выходными данными беседы по умолчанию (auto) при возникновении события запуска VAD.По умолчанию — true. |
| рвение | струна | Стремление модели реагировать и прерывать пользователя. Укажите low , чтобы ждать, пока пользователь продолжит говорить. Укажите high, чтобы разбить звук на фрагменты как можно скорее для более быстрого ответа. Значение по умолчанию эквивалентно auto среднему значению.Это свойство применимо только для semantic_vad обнаружения поворота. |
ТипРеальногоВремениОбнаруженияПоворота
Допустимые значения:
-
semantic_vad— Семантический VAD определяет, когда пользователь закончил говорить на основе слов, которые они произносили. Входной звук оценивается на основе вероятности того, что пользователь закончил говорить. Если вероятность низка, модель будет ожидать истечения времени ожидания. Когда вероятность высока, не нужно ждать. -
server_vad— сервер оценивает звук пользователя от клиента. Сервер автоматически использует этот звук для запуска создания ответов в применимых беседах при обнаружении конца речи.
RealtimeVoice
Допустимые значения:
alloyashballadcoralechosageshimmerverse
Связанный контент
- Краткое руководство по началу работы с API Realtime.
- Узнайте больше об использовании API реального времени.