Поделиться через


Справочник по API трансляции голосовой связи

Api live voice предоставляет двунаправленную связь для приложений с поддержкой голоса с помощью подключений WebSocket в режиме реального времени. Этот API поддерживает расширенные функции, включая распознавание речи, синтез текста в речь, потоковую передачу аватаров, данные анимации и комплексные возможности обработки звука.

В API используются события, отформатированные в формате JSON, отправленные через подключения WebSocket для управления беседами, аудиопотоками, взаимодействием аватара и ответами в режиме реального времени. События классифицируются на события клиента (отправляемые с клиента на сервер) и события сервера (отправляемые с сервера на клиент).

Ключевые функции

  • Обработка звука в режиме реального времени: поддержка нескольких звуковых форматов, включая PCM16 с различными тарифами выборки и кодеками G.711
  • Дополнительные параметры голосовой связи: голос OpenAI, пользовательские голоса Azure, стандартные голоса Azure и личные голоса Azure
  • Интеграция аватара: потоковая передача аватаров на основе WebRTC с видео, анимацией и смешиваниями
  • Интеллектуальное обнаружение поворотов: несколько вариантов VAD, включая семантику VAD Azure и обнаружение на стороне сервера
  • Улучшение звука: встроенное снижение шума и отмена эхо
  • Вызов функций: интеграция инструментов для расширенных возможностей беседы
  • Гибкое управление сеансами: настраиваемые модальности, инструкции и параметры ответа

События клиента

Динамический API голосовой связи поддерживает следующие события клиента, которые можно отправлять с клиента на сервер:

Event Description
session.update Обновление конфигурации сеанса, включая голосовую связь, модальности, обнаружение поворота и другие параметры
session.аватар.connect Установка подключения аватара путем предоставления клиентского SDP для согласования WebRTC
input_audio_buffer.append Добавление звуковых байтов в входной звуковой буфер
input_audio_buffer.commit Фиксация входного звукового буфера для обработки
input_audio_buffer.clear Очистка входного звукового буфера
conversation.item.create Добавление нового элемента в контекст беседы
conversation.item.retrieve Получение определенного элемента из беседы
conversation.item.truncate Усечение звукового сообщения помощника
conversation.item.delete Удаление элемента из беседы
response.create Указание серверу создать ответ с помощью вывода модели
response.cancel Отмена ответа на ход выполнения
mcp_approval_response Отправка утверждения или отклонения для вызова средства MCP, требующего утверждения

session.update

Обновите конфигурацию сеанса. Это событие можно отправлять в любое время для изменения параметров, таких как голос, модальности, обнаружение поворотов, средства и другие параметры сеанса. Обратите внимание, что после инициализации сеанса с определенной моделью его нельзя изменить на другую модель.

Структура событий

{
  "type": "session.update",
  "session": {
    "modalities": ["text", "audio"],
    "voice": {
      "type": "openai",
      "name": "alloy"
    },
    "instructions": "You are a helpful assistant. Be concise and friendly.",
    "input_audio_format": "pcm16",
    "output_audio_format": "pcm16",
    "input_audio_sampling_rate": 24000,
    "turn_detection": {
      "type": "azure_semantic_vad",
      "threshold": 0.5,
      "prefix_padding_ms": 300,
      "silence_duration_ms": 500
    },
    "temperature": 0.8,
    "max_response_output_tokens": "inf"
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "session.update".
сеанс RealtimeRequestSession Объект конфигурации сеанса с полями для обновления

Пример с пользовательским голосом Azure

{
  "type": "session.update",
  "session": {
    "voice": {
      "type": "azure-custom",
      "name": "my-custom-voice",
      "endpoint_id": "12345678-1234-1234-1234-123456789012",
      "temperature": 0.7,
      "style": "cheerful"
    },
    "input_audio_noise_reduction": {
      "type": "azure_deep_noise_suppression"
    },
    "avatar": {
      "character": "lisa",
      "customized": false,
      "video": {
        "resolution": {
          "width": 1920,
          "height": 1080
        },
        "bitrate": 2000000
      }
    }
  }
}

session.аватар.connect

Установите подключение аватара, предоставив клиенту предложение SDP (протокол описания сеанса) для согласования мультимедиа WebRTC. Это событие необходимо при использовании функций аватара.

Структура событий

{
  "type": "session.avatar.connect",
  "client_sdp": "<client_sdp>"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "session.avatar.connect".
client_sdp струна Предложение SDP клиента для создания подключений WebRTC

input_audio_buffer.append

Добавьте звуковые байты в входной звуковой буфер.

Структура событий

{
  "type": "input_audio_buffer.append",
  "audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}

Свойства

Поле Тип Description
type струна Должен содержать значение "input_audio_buffer.append".
audio струна Звуковые данные в кодировке Base64

input_audio_buffer.commit

Зафиксируйте входной звуковой буфер для обработки.

Структура событий

{
  "type": "input_audio_buffer.commit"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "input_audio_buffer.commit".

input_audio_buffer.clear

Снимите входной звуковой буфер.

Структура событий

{
  "type": "input_audio_buffer.clear"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "input_audio_buffer.clear".

conversation.item.create

Добавьте новый элемент в контекст беседы. Это может включать сообщения, вызовы функций и ответы на вызовы функций. Элементы можно вставить по определенным позициям в журнале бесед.

Структура событий

{
  "type": "conversation.item.create",
  "previous_item_id": "item_ABC123",
  "item": {
    "id": "item_DEF456",
    "type": "message",
    "role": "user",
    "content": [
      {
        "type": "input_text",
        "text": "Hello, how are you?"
      }
    ]
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "conversation.item.create".
previous_item_id струна Необязательно. Идентификатор элемента, после которого необходимо вставить этот элемент. Если он не указан, добавляется в конец
item RealtimeConversationRequestItem Элемент, добавляемый в беседу

Пример с аудиоконтентом

{
  "type": "conversation.item.create",
  "item": {
    "type": "message",
    "role": "user",
    "content": [
      {
        "type": "input_audio",
        "audio": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=",
        "transcript": "Hello there"
      }
    ]
  }
}

Пример вызова функции

{
  "type": "conversation.item.create",
  "item": {
    "type": "function_call",
    "name": "get_weather",
    "call_id": "call_123",
    "arguments": "{\"location\": \"San Francisco\", \"unit\": \"celsius\"}"
  }
}

Пример вызова MCP

{
  "type": "conversation.item.create",
  "item": {
    "type": "mcp_call",
    "approval_request_id": null,
    "arguments": "",
    "server_label": "deepwiki",
    "name": "ask_question",
    "output": null,
    "error": null
  }
}

conversation.item.retrieve

Извлеките определенный элемент из журнала бесед. Это полезно для проверки обработанного звука после отмены шума и VAD.

Структура событий

{
  "type": "conversation.item.retrieve",
  "item_id": "item_ABC123"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "conversation.item.retrieve".
item_id струна Идентификатор извлекаемого элемента

conversation.item.truncate

Усечение звукового содержимого сообщения помощника. Это полезно для остановки воспроизведения в определенной точке и синхронизации понимания сервера с состоянием клиента.

Структура событий

{
  "type": "conversation.item.truncate",
  "item_id": "item_ABC123",
  "content_index": 0,
  "audio_end_ms": 5000
}

Свойства

Поле Тип Description
type струна Должен содержать значение "conversation.item.truncate".
item_id струна Идентификатор элемента сообщения помощника для усечения
content_index целое число Индекс части содержимого для усечения
audio_end_ms целое число Длительность усечения звука в миллисекундах

conversation.item.delete

Удалите элемент из журнала бесед.

Структура событий

{
  "type": "conversation.item.delete",
  "item_id": "item_ABC123"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "conversation.item.delete".
item_id струна Идентификатор элемента для удаления

response.create

Указать серверу создать ответ с помощью вывода модели. Это событие может указать конфигурацию, зависящую от ответа, которая переопределяет значения сеанса по умолчанию.

Структура событий

{
  "type": "response.create",
  "response": {
    "modalities": ["text", "audio"],
    "instructions": "Be extra helpful and detailed.",
    "voice": {
      "type": "openai",
      "name": "alloy"
    },
    "output_audio_format": "pcm16",
    "temperature": 0.7,
    "max_response_output_tokens": 1000
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.create".
response RealtimeResponseOptions Необязательная конфигурация ответа, переопределивающая значения сеанса по умолчанию

Пример с выбором инструмента

{
  "type": "response.create",
  "response": {
    "modalities": ["text"],
    "tools": [
      {
        "type": "function",
        "name": "get_current_time",
        "description": "Get the current time",
        "parameters": {
          "type": "object",
          "properties": {}
        }
      }
    ],
    "tool_choice": "get_current_time",
    "temperature": 0.3
  }
}

Пример с анимацией

{
  "type": "response.create",
  "response": {
    "modalities": ["audio", "animation"],
    "animation": {
      "model_name": "default",
      "outputs": ["blendshapes", "viseme_id"]
    },
    "voice": {
      "type": "azure-custom",
      "name": "my-expressive-voice",
      "endpoint_id": "12345678-1234-1234-1234-123456789012",
      "style": "excited"
    }
  }
}

response.cancel

Отмена ответа на ход выполнения. Это немедленно останавливает создание ответов и связанные звуковые выходные данные.

Структура событий

{
  "type": "response.cancel"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.cancel".

Свойства

Поле Тип Description
type струна Тип события должен быть conversation.item.retrieve.
item_id струна Идентификатор извлекаемого элемента.
event_id струна Идентификатор события.

RealtimeClientEventConversationItemTruncate

Событие клиента conversation.item.truncate используется для усечения звука предыдущего помощника. Сервер создает звук быстрее, чем в режиме реального времени, поэтому это событие полезно, когда пользователь прерывает усечение звука, отправленного клиенту, но еще не воспроизводится. Понимание звука сервера с воспроизведением клиента синхронизируется.

Усечение звука удаляет расшифровку текста на стороне сервера, чтобы убедиться, что в контексте нет текста, о том, что пользователь не знает.

Если событие клиента успешно выполнено, сервер отвечает на conversation.item.truncated событие.

Структура событий

{
  "type": "conversation.item.truncate",
  "item_id": "<item_id>",
  "content_index": 0,
  "audio_end_ms": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть conversation.item.truncate.
item_id струна Идентификатор элемента сообщения помощника для усечения. Только элементы сообщения помощника могут быть усечены.
content_index целое число Индекс части содержимого для усечения. Задайте для этого свойства значение "0".
audio_end_ms целое число Инклюзивное время, до которого усечен звук в миллисекундах. Если audio_end_ms больше фактической продолжительности звука, сервер отвечает ошибкой.

RealtimeClientEventInputAudioBufferAppend

Событие клиента input_audio_buffer.append используется для добавления звуковых байтов в входной звуковой буфер. Буфер звука — это временное хранилище, в который можно записать и позже зафиксировать.

В режиме обнаружения действий голосовой связи сервера буфер звука используется для обнаружения речи, а сервер решает, когда зафиксировать. При отключении VAD сервера клиент может выбрать, сколько звука должно размещаться в каждом событии не более 15 МиБ. Например, потоковая передача небольших блоков от клиента может позволить VAD быть более адаптивным.

В отличие от большинства других событий клиента, сервер не отправляет ответ подтверждения на событие клиента input_audio_buffer.append .

Структура событий

{
  "type": "input_audio_buffer.append",
  "audio": "<audio>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть input_audio_buffer.append.
audio струна Аудиобайты в кодировке Base64. Это значение должно быть в формате, указанном input_audio_format полем в конфигурации сеанса.

RealtimeClientEventInputAudioBufferClear

Событие клиента input_audio_buffer.clear используется для очистки звуковых байтов в буфере.

Сервер отвечает на input_audio_buffer.cleared событие.

Структура событий

{
  "type": "input_audio_buffer.clear"
}

Свойства

Поле Тип Description
type струна Тип события должен быть input_audio_buffer.clear.

RealtimeClientEventInputAudioBufferCommit

Событие клиента input_audio_buffer.commit используется для фиксации входного звукового буфера пользователя, который создает новый элемент сообщения пользователя в беседе. Звук транскрибируется, если input_audio_transcription настроен для сеанса.

Если в режиме VAD сервера клиент не должен отправлять это событие, сервер автоматически фиксирует буфер звука. Без vaD сервера клиент должен зафиксировать звуковой буфер, чтобы создать элемент сообщения пользователя. Это событие клиента приводит к ошибке, если входной звуковой буфер пуст.

Фиксация входного звукового буфера не создает ответ от модели.

Сервер отвечает на input_audio_buffer.committed событие.

Структура событий

{
  "type": "input_audio_buffer.commit"
}

Свойства

Поле Тип Description
type струна Тип события должен быть input_audio_buffer.commit.

RealtimeClientEventResponseCancel

Событие клиента response.cancel используется для отмены ответа на ход выполнения.

Сервер будет отвечать на response.done событие с состоянием response.status=cancelled.

Структура событий

{
  "type": "response.cancel"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.cancel.

RealtimeClientEventResponseCreate

Событие клиента response.create используется для указания серверу создать ответ с помощью вывода модели. Если сеанс настроен в режиме VAD сервера, сервер автоматически создает ответы.

Ответ включает по крайней мере один item, и может иметь два, в этом случае второй — вызов функции. Эти элементы добавляются в журнал бесед.

Сервер реагирует на response.created событие, одно или несколько событий элемента и содержимого (например conversation.item.created , и response.content_part.added), и, наконец response.done , событие, указывающее, что ответ завершен.

Структура событий

{
  "type": "response.create"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.create.
response RealtimeResponseOptions Параметры ответа.

RealtimeClientEventSessionUpdate

Событие клиента session.update используется для обновления конфигурации сеанса по умолчанию. Клиент может отправлять это событие в любое время, чтобы обновить конфигурацию сеанса, и любое поле можно обновлять в любое время, за исключением голосовой связи.

Обновляются только те поля, которые присутствуют. Чтобы очистить поле (например instructions, ), передайте пустую строку.

Сервер отвечает на session.updated событие, содержащее полную эффективную конфигурацию.

Структура событий

{
  "type": "session.update"
}

Свойства

Поле Тип Description
type струна Тип события должен быть session.update.
сеанс RealtimeRequestSession Конфигурация сеанса.

События сервера

Api голосовой трансляции отправляет следующие события сервера для обмена данными о состоянии, ответах и данных клиенту:

Event Description
ошибка Указывает, что во время обработки произошла ошибка
session.created Отправлено при успешной установке нового сеанса
session.обновлен Отправляется при обновлении конфигурации сеанса
session.avatar.connecting Указывает, что устанавливается подключение WebRTC аватара
conversation.item.created Отправляется при добавлении нового элемента в беседу
conversation.item.retrieved Ответ на запрос conversation.item.retrieve
conversation.item.усечено Подтверждает усечение элемента
conversation.item.deleted Подтверждает удаление элементов
conversation.item.input_audio_transcription.completed Входной транскрибирование звука завершено
conversation.item.input_audio_transcription.delta Транскрибирование входного звука потоковой передачи
conversation.item.input_audio_transcription.failed Сбой входного транскрибирования звука
input_audio_buffer.committed Входной звуковой буфер зафиксирован для обработки
input_audio_buffer.cleared Входной звуковой буфер очищается
input_audio_buffer.speech_started Распознавание речи в входном звуковом буфере (VAD)
input_audio_buffer.speech_остановлено Речь закончилась входным звуковым буфером (VAD)
response.created Начало нового поколения ответов
response.done Создание ответов завершено
response.output_item.added Новый выходной элемент, добавленный в ответ
response.output_item.done Выходной элемент завершен
response.content_part.added Новая часть содержимого, добавленная в выходной элемент
response.content_part.done Часть содержимого завершена
response.text.delta Потоковая передача текстового содержимого из модели
response.text.done Текстовое содержимое завершено
response.audio_transcript.delta Потоковая расшифровка звука
response.audio_transcript.done Расшифровка звука завершена
response.audio.delta Потоковая передача звукового содержимого из модели
response.audio.done Аудиоконтент завершен
response.animation_blendshapes.delta Потоковая анимация смешивает данные
response.animation_blendshapes.done Данные смешивания анимации завершены
response.audio_timestamp.delta Потоковая передача сведений о метке времени звука
response.audio_timestamp.done Сведения о метке времени звука завершены
response.animation_viseme.delta Потоковая анимация данных viseme
response.animation_viseme.done Данные viseme анимации завершены
response.function_call_arguments.delta Аргументы вызова функции потоковой передачи
response.function_call_arguments.done Аргументы вызова функции завершены
mcp_list_tools.in_progress Список инструментов MCP выполняется
mcp_list_tools.completed Список инструментов MCP завершен
mcp_list_tools.failed Сбой списка инструментов MCP
response.mcp_call_arguments.delta Аргументы вызова потоковой передачи MCP
response.mcp_call_arguments.done Аргументы вызова MCP завершены
response.mcp_call.in_progress Вызов MCP выполняется
response.mcp_call.completed Вызов MCP завершен
response.mcp_call.failed Сбой вызова MCP

session.created

Отправляется при успешном выполнении нового сеанса. Это первое событие, полученное после подключения к API.

Структура событий

{
  "type": "session.created",
  "session": {
    "id": "sess_ABC123DEF456",
    "object": "realtime.session",
    "model": "gpt-realtime",
    "modalities": ["text", "audio"],
    "instructions": "You are a helpful assistant.",
    "voice": {
      "type": "openai",
      "name": "alloy"
    },
    "input_audio_format": "pcm16",
    "output_audio_format": "pcm16",
    "input_audio_sampling_rate": 24000,
    "turn_detection": {
      "type": "azure_semantic_vad",
      "threshold": 0.5,
      "prefix_padding_ms": 300,
      "silence_duration_ms": 500
    },
    "temperature": 0.8,
    "max_response_output_tokens": "inf"
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "session.created".
сеанс RealtimeResponseSession Созданный объект сеанса

session.обновлен

Отправляется при успешном обновлении конфигурации сеанса session.update в ответ на событие клиента.

Структура событий

{
  "type": "session.updated",
  "session": {
    "id": "sess_ABC123DEF456",
    "voice": {
      "type": "azure-custom",
      "name": "my-voice",
      "endpoint_id": "12345678-1234-1234-1234-123456789012"
    },
    "temperature": 0.7,
    "avatar": {
      "character": "lisa",
      "customized": false
    }
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "session.updated".
сеанс RealtimeResponseSession Обновленный объект сеанса

session.avatar.connecting

Указывает, что устанавливается подключение WebRTC аватара. Это событие отправляется в ответ на session.avatar.connect событие клиента.

Структура событий

{
  "type": "session.avatar.connecting",
  "server_sdp": "<server_sdp>"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "session.avatar.connecting".

conversation.item.created

Отправляется при добавлении нового элемента в беседу через событие клиента conversation.item.create или автоматически во время создания ответа.

Структура событий

{
  "type": "conversation.item.created",
  "previous_item_id": "item_ABC123",
  "item": {
    "id": "item_DEF456",
    "object": "realtime.item",
    "type": "message",
    "status": "completed",
    "role": "user",
    "content": [
      {
        "type": "input_text",
        "text": "Hello, how are you?"
      }
    ]
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "conversation.item.created".
previous_item_id струна Идентификатор элемента, после которого был вставлен этот элемент
item RealtimeConversationResponseItem Созданный элемент беседы

Пример с элементом аудио

{
  "type": "conversation.item.created",
  "item": {
    "id": "item_GHI789",
    "type": "message",
    "status": "completed",
    "role": "user",
    "content": [
      {
        "type": "input_audio",
        "audio": null,
        "transcript": "What's the weather like today?"
      }
    ]
  }
}

conversation.item.retrieved

Отправляется в ответ на событие клиента, предоставляя запрошенный conversation.item.retrieve элемент беседы.

Свойства

Поле Тип Description
type струна Должен содержать значение "conversation.item.created".
item RealtimeConversationResponseItem Созданный элемент беседы

conversation.item.усечено

Событие сервера conversation.item.truncated возвращается при усечении предыдущего элемента звукового сообщения помощника с событием conversation.item.truncate . Это событие используется для синхронизации понимания сервера звука с воспроизведением клиента.

Это событие усекает звук и удаляет расшифровку текста на стороне сервера, чтобы гарантировать отсутствие текста в контексте, о том, что пользователь не знает.

Структура событий

{
  "type": "conversation.item.truncated",
  "item_id": "<item_id>",
  "content_index": 0,
  "audio_end_ms": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть conversation.item.truncated.
item_id струна Идентификатор элемента сообщения помощника, который был усечен.
content_index целое число Индекс части контента, которая была усечена.
audio_end_ms целое число Длительность усечения звука в миллисекундах.

conversation.item.deleted

Отправлено в ответ на событие клиента, убедив, что указанный conversation.item.delete элемент был удален из беседы.

Структура событий

{
  "type": "conversation.item.deleted",
  "item_id": "item_ABC123"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "conversation.item.deleted".
item_id струна Идентификатор удаленного элемента

response.created

Отправляется при начале создания нового ответа. Это первое событие в последовательности откликов.

Структура событий

{
  "type": "response.created",
  "response": {
    "id": "resp_ABC123",
    "object": "realtime.response",
    "status": "in_progress",
    "status_details": null,
    "output": [],
    "usage": {
      "total_tokens": 0,
      "input_tokens": 0,
      "output_tokens": 0
    }
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.created".
response RealtimeResponse Созданный объект ответа

response.done

Отправляется после завершения создания ответов. Это событие содержит окончательный ответ со всеми выходными элементами и статистикой использования.

Структура событий

{
  "type": "response.done",
  "response": {
    "id": "resp_ABC123",
    "object": "realtime.response",
    "status": "completed",
    "status_details": null,
    "output": [
      {
        "id": "item_DEF456",
        "object": "realtime.item",
        "type": "message",
        "status": "completed",
        "role": "assistant",
        "content": [
          {
            "type": "text",
            "text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
          }
        ]
      }
    ],
    "usage": {
      "total_tokens": 87,
      "input_tokens": 52,
      "output_tokens": 35,
      "input_token_details": {
        "cached_tokens": 0,
        "text_tokens": 45,
        "audio_tokens": 7
      },
      "output_token_details": {
        "text_tokens": 15,
        "audio_tokens": 20
      }
    }
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.done".
response RealtimeResponse Завершенный объект ответа

response.output_item.added

Отправляется при добавлении нового выходного элемента в ответ во время создания.

Структура событий

{
  "type": "response.output_item.added",
  "response_id": "resp_ABC123",
  "output_index": 0,
  "item": {
    "id": "item_DEF456",
    "object": "realtime.item",
    "type": "message",
    "status": "in_progress",
    "role": "assistant",
    "content": []
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.output_item.added".
response_id струна Идентификатор ответа, к которому принадлежит этот элемент
output_index целое число Индекс элемента в выходном массиве ответа
item RealtimeConversationResponseItem Добавленный выходной элемент

response.output_item.done

Отправляется после завершения выходного элемента.

Структура событий

{
  "type": "response.output_item.done",
  "response_id": "resp_ABC123",
  "output_index": 0,
  "item": {
    "id": "item_DEF456",
    "object": "realtime.item",
    "type": "message",
    "status": "completed",
    "role": "assistant",
    "content": [
      {
        "type": "text",
        "text": "Hello! I'm doing well, thank you for asking."
      }
    ]
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.output_item.done".
response_id струна Идентификатор ответа, к которому принадлежит этот элемент
output_index целое число Индекс элемента в выходном массиве ответа
item RealtimeConversationResponseItem Завершенный выходной элемент

response.content_part.added

Событие сервера response.content_part.added возвращается при добавлении новой части содержимого в элемент сообщения помощника во время создания ответа.

Структура событий

{
  "type": "response.content_part.added",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "part": {
    "type": "text",
    "text": ""
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.content_part.added".
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента, к которому принадлежит эта часть содержимого
output_index целое число Индекс элемента в ответе
content_index целое число Индекс этой части содержимого в элементе
part RealtimeContentPart Добавленная часть содержимого

response.content_part.done

Событие сервера response.content_part.done возвращается при выполнении потоковой передачи части содержимого в элементе сообщения помощника.

Это событие также возвращается при прерывании, неполном или отмене ответа.

Структура событий

{
  "type": "response.content_part.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "part": {
    "type": "text",
    "text": "Hello! I'm doing well, thank you for asking."
  }
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.content_part.done".
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента, к которому принадлежит эта часть содержимого
output_index целое число Индекс элемента в ответе
content_index целое число Индекс этой части содержимого в элементе
part RealtimeContentPart Завершенная часть содержимого

response.text.delta

Потоковая передача текстового содержимого из модели. Отправляется постепенно, как модель создает текст.

Структура событий

{
  "type": "response.text.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "Hello! I'm"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.text.delta".
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого
delta струна Добавочное текстовое содержимое

response.text.done

Отправляется после завершения создания текстового содержимого.

Структура событий

{
  "type": "response.text.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.text.done".
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого
текст струна Полное текстовое содержимое

response.audio.delta

Потоковая передача звукового содержимого из модели. Звук предоставляется в виде данных в кодировке Base64.

Структура событий

{
  "type": "response.audio.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.audio.delta".
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого
delta струна Блок звуковых данных в кодировке Base64

response.audio.done

Отправляется после завершения создания звукового содержимого.

Структура событий

{
  "type": "response.audio.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.audio.done".
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого

response.audio_transcript.delta

Потоковая расшифровка созданного звукового содержимого.

Структура событий

{
  "type": "response.audio_transcript.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "delta": "Hello! I'm doing"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.audio_transcript.delta".
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого
delta струна Добавочный текст транскрибирования

response.audio_transcript.done

Отправляется после завершения создания транскрибирования звука.

Структура событий

{
  "type": "response.audio_transcript.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "transcript": "Hello! I'm doing well, thank you for asking. How can I help you today?"
}

Свойства

Поле Тип Description
type струна Должен содержать значение "response.audio_transcript.done".
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого
transcript струна Полный текст расшифровки

conversation.item.input_audio_transcription.completed

Событие сервера 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>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть conversation.item.input_audio_transcription.completed.
item_id струна Идентификатор элемента сообщения пользователя, содержащего звук.
content_index целое число Индекс части содержимого, содержащей звук.
transcript струна Транскрибированные тексты.

conversation.item.input_audio_transcription.delta

Событие сервера conversation.item.input_audio_transcription.delta возвращается при настройке входного транскрибирования звука, а запрос транскрибирования для сообщения пользователя выполняется. Это событие предоставляет частичные результаты транскрибирования по мере их доступности.

Структура событий

{
  "type": "conversation.item.input_audio_transcription.delta",
  "item_id": "<item_id>",
  "content_index": 0,
  "delta": "<delta>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть conversation.item.input_audio_transcription.delta.
item_id струна Идентификатор элемента сообщения пользователя.
content_index целое число Индекс части содержимого, содержащей звук.
delta струна Добавочный текст транскрибирования.

conversation.item.input_audio_transcription.failed

Событие сервера 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>"
  }
}

Свойства

Поле Тип Description
type струна Тип события должен быть conversation.item.input_audio_transcription.failed.
item_id струна Идентификатор элемента сообщения пользователя.
content_index целое число Индекс части содержимого, содержащей звук.
ошибка объект Сведения об ошибке транскрибирования.

См. вложенные свойства в следующей таблице.

Свойства ошибки

Поле Тип Description
type струна Тип ошибки.
код струна Код ошибки, если таковой есть.
сообщение струна Сообщение об ошибке, доступное для чтения человеком.
параметр струна Параметр, связанный с ошибкой, если таковой есть.

response.animation_blendshapes.delta

Событие сервера response.animation_blendshapes.delta возвращается, когда модель создает данные анимации смешения данных в ответе. Это событие предоставляет добавочные данные blendshapes по мере его доступности.

Структура событий

{
  "type": "response.animation_blendshapes.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "frame_index": 0,
  "frames": [
    [0.0, 0.1, 0.2, ..., 1.0]
    ...
  ]
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.animation_blendshapes.delta.
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого
frame_index целое число Индекс первого кадра в этом пакете кадров
Кадров массив массива с плавающей запятой Массив кадров blendshape, каждый кадр является массивом значений blendshape

response.animation_blendshapes.done

Событие сервера response.animation_blendshapes.done возвращается, когда модель завершит создание анимации смешает данные в ответе.

Структура событий

{
  "type": "response.animation_blendshapes.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.animation_blendshapes.done.
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе

response.audio_timestamp.delta

Событие сервера response.audio_timestamp.delta возвращается, когда модель создает данные метки времени звука в рамках ответа. Это событие предоставляет добавочные данные метки времени для выравнивания выходного звука и текста по мере его доступности.

Структура событий

{
  "type": "response.audio_timestamp.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "audio_offset_ms": 0,
  "audio_duration_ms": 500,
  "text": "Hello",
  "timestamp_type": "word"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.audio_timestamp.delta.
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого
audio_offset_ms целое число Смещение звука в миллисекундах с начала звука
audio_duration_ms целое число Длительность сегмента звука в миллисекундах
текст струна Сегмент текста, соответствующий этой метке времени звука
timestamp_type струна Тип метки времени, в настоящее время поддерживается только "word"

response.audio_timestamp.done

Отправляется после завершения создания метки времени звука.

Структура событий

{
  "type": "response.audio_timestamp.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.audio_timestamp.done.
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого

response.animation_viseme.delta

Событие сервера response.animation_viseme.delta возвращается при создании данных анимации viseme в ответе. Это событие предоставляет добавочные данные viseme по мере его доступности.

Структура событий

{
  "type": "response.animation_viseme.delta",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0,
  "audio_offset_ms": 0,
  "viseme_id": 1
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.animation_viseme.delta.
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого
audio_offset_ms целое число Смещение звука в миллисекундах с начала звука
viseme_id целое число Идентификатор viseme, соответствующий фигуре рта для анимации

response.animation_viseme.done

Событие сервера response.animation_viseme.done возвращается, когда модель завершит создание данных viseme анимации в ответе.

Структура событий

{
  "type": "response.animation_viseme.done",
  "response_id": "resp_ABC123",
  "item_id": "item_DEF456",
  "output_index": 0,
  "content_index": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.animation_viseme.done.
response_id струна Идентификатор ответа
item_id струна Идентификатор элемента
output_index целое число Индекс элемента в ответе
content_index целое число Индекс части содержимого

Событие сервера response.animation_viseme.delta возвращается при создании данных анимации viseme в ответе. Это событие предоставляет добавочные данные viseme по мере его доступности.

ошибка

Событие сервера error возвращается при возникновении ошибки, которая может быть проблемой клиента или проблемой сервера. Большинство ошибок можно восстановить, и сеанс остается открытым.

Структура событий

{
  "type": "error",
  "error": {
    "code": "<code>",
    "message": "<message>",
    "param": "<param>",
    "event_id": "<event_id>"
  }
}

Свойства

Поле Тип Description
type струна Тип события должен быть error.
ошибка объект Сведения об ошибке.

См. вложенные свойства в следующей таблице.

Свойства ошибки

Поле Тип Description
type струна Тип ошибки. Например, "invalid_request_error" и "server_error" являются типами ошибок.
код струна Код ошибки, если таковой есть.
сообщение струна Сообщение об ошибке, доступное для чтения человеком.
параметр струна Параметр, связанный с ошибкой, если таковой есть.
event_id струна Идентификатор события клиента, вызвавшего ошибку, если применимо.

input_audio_buffer.cleared

Событие сервера input_audio_buffer.cleared возвращается, когда клиент очищает входной звуковой буфер с событием input_audio_buffer.clear .

Структура событий

{
  "type": "input_audio_buffer.cleared"
}

Свойства

Поле Тип Description
type струна Тип события должен быть input_audio_buffer.cleared.

input_audio_buffer.committed

Событие сервера 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>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть input_audio_buffer.committed.
previous_item_id струна Идентификатор предыдущего элемента, после которого вставляется новый элемент.
item_id струна Идентификатор созданного элемента сообщения пользователя.

input_audio_buffer.speech_started

Событие сервера 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>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть input_audio_buffer.speech_started.
audio_start_ms целое число Миллисекунда с начала всех аудиозаписей, записанных в буфер во время сеанса при первом обнаружении речи. Это свойство соответствует началу аудио, отправленного в модель, и, следовательно, включает prefix_padding_ms настроенный в сеансе.
item_id струна Идентификатор элемента сообщения пользователя, созданного при остановке речи.

input_audio_buffer.speech_остановлено

Событие сервера input_audio_buffer.speech_stopped возвращается в server_vad режиме, когда сервер обнаруживает конец речи в звуковом буфере.

Сервер также отправляет conversation.item.created событие с элементом сообщения пользователя, созданным из звукового буфера.

Структура событий

{
  "type": "input_audio_buffer.speech_stopped",
  "audio_end_ms": 0,
  "item_id": "<item_id>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть input_audio_buffer.speech_stopped.
audio_end_ms целое число Миллисекунда с момента начала сеанса при остановке речи. Это свойство соответствует концу звука, отправляемого в модель, и, следовательно, включает min_silence_duration_ms настроенный в сеансе.
item_id струна Идентификатор созданного элемента сообщения пользователя.

rate_limits.обновлено

Событие сервера rate_limits.updated создается в начале ответа, чтобы указать обновленные ограничения скорости.

При создании ответа некоторые маркеры зарезервированы для выходных маркеров. Ограничения скорости, отображаемые здесь, отражают это резервирование, которое затем корректируется соответствующим образом после завершения ответа.

Структура событий

{
  "type": "rate_limits.updated",
  "rate_limits": [
    {
      "name": "<name>",
      "limit": 0,
      "remaining": 0,
      "reset_seconds": 0
    }
  ]
}

Свойства

Поле Тип Description
type струна Тип события должен быть rate_limits.updated.
rate_limits массив RealtimeRateLimitsItem Список сведений об ограничении скорости.

response.audio.delta

Событие сервера response.audio.delta возвращается при обновлении звука, созданного моделью.

Структура событий

{
  "type": "response.audio.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.audio.delta.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента.
output_index целое число Индекс выходного элемента в ответе.
content_index целое число Индекс части содержимого в массиве содержимого элемента.
delta струна Разностные звуковые данные в кодировке Base64.

response.audio.done

Событие сервера response.audio.done возвращается при завершении звука, созданного моделью.

Это событие также возвращается при прерывании, неполном или отмене ответа.

Структура событий

{
  "type": "response.audio.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.audio.done.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента.
output_index целое число Индекс выходного элемента в ответе.
content_index целое число Индекс части содержимого в массиве содержимого элемента.

response.audio_transcript.delta

Событие сервера 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>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.audio_transcript.delta.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента.
output_index целое число Индекс выходного элемента в ответе.
content_index целое число Индекс части содержимого в массиве содержимого элемента.
delta струна Разностная расшифровка.

response.audio_transcript.done

Событие сервера 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>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.audio_transcript.done.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента.
output_index целое число Индекс выходного элемента в ответе.
content_index целое число Индекс части содержимого в массиве содержимого элемента.
transcript струна Окончательный расшифровка звука.

response.function_call_arguments.delta

Событие сервера 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>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.function_call_arguments.delta.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента вызова функции.
output_index целое число Индекс выходного элемента в ответе.
call_id струна Идентификатор вызова функции.
delta струна Аргументы разностно в виде строки JSON.

response.function_call_arguments.done

Событие сервера 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>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.function_call_arguments.done.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента вызова функции.
output_index целое число Индекс выходного элемента в ответе.
call_id струна Идентификатор вызова функции.
arguments струна Окончательные аргументы в виде строки JSON.

mcp_list_tools.in_progress

Событие сервера mcp_list_tools.in_progress возвращается при запуске службы перечисления доступных средств с сервера mcp.

Структура событий

{
  "type": "mcp_list_tools.in_progress",
  "item_id": "<mcp_list_tools_item_id>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть mcp_list_tools.in_progress.
item_id струна Идентификатор обрабатываемого элемента средств списка MCP .

mcp_list_tools.completed

Событие сервера mcp_list_tools.completed возвращается, когда служба завершает перечисление доступных средств с сервера mcp.

Структура событий

{
  "type": "mcp_list_tools.completed",
  "item_id": "<mcp_list_tools_item_id>"
}
Свойства
Поле Тип Description
type струна Тип события должен быть mcp_list_tools.completed.
item_id струна Идентификатор обрабатываемого элемента средств списка MCP .

mcp_list_tools.failed

Событие сервера mcp_list_tools.failed возвращается, когда служба не может перечислить доступные средства с сервера mcp.

Структура событий

{
  "type": "mcp_list_tools.failed",
  "item_id": "<mcp_list_tools_item_id>"
}
Свойства
Поле Тип Description
type струна Тип события должен быть mcp_list_tools.failed.
item_id струна Идентификатор обрабатываемого элемента средств списка MCP .

response.mcp_call_arguments.delta

Событие сервера response.mcp_call_arguments.delta возвращается при обновлении аргументов вызова средства mcp, созданного моделью.

Структура событий

{
  "type": "response.mcp_call_arguments.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "delta": "<delta>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.mcp_call_arguments.delta.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента вызова средства mcp.
output_index целое число Индекс выходного элемента в ответе.
delta струна Аргументы разностно в виде строки JSON.

response.mcp_call_arguments.done

Событие сервера response.mcp_call_arguments.done возвращается при выполнении потоковой передачи аргументов вызова средства mcp, созданного моделью.

Структура событий

{
  "type": "response.mcp_call_arguments.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "arguments": "<arguments>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.mcp_call_arguments.done.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента вызова средства mcp.
output_index целое число Индекс выходного элемента в ответе.
arguments струна Окончательные аргументы в виде строки JSON.

response.mcp_call.in_progress

Событие сервера response.mcp_call.in_progress возвращается при запуске обработки вызова средства MCP.

Структура событий

{
  "type": "response.mcp_call.in_progress",
  "item_id": "<item_id>",
  "output_index": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.mcp_call.in_progress.
item_id струна Идентификатор элемента вызова средства mcp.
output_index целое число Индекс выходного элемента в ответе.

response.mcp_call.completed

Событие сервера response.mcp_call.completed возвращается при успешном завершении вызова средства MCP.

Структура событий

{
  "type": "response.mcp_call.completed",
  "item_id": "<item_id>",
  "output_index": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.mcp_call.completed.
item_id струна Идентификатор элемента вызова средства mcp.
output_index целое число Индекс выходного элемента в ответе.

response.mcp_call.failed

Событие сервера response.mcp_call.failed возвращается при сбое вызова средства MCP.

Структура событий

{
  "type": "response.mcp_call.failed",
  "item_id": "<item_id>",
  "output_index": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.mcp_call.failed.
item_id струна Идентификатор элемента вызова средства mcp.
output_index целое число Индекс выходного элемента в ответе.

response.output_item.added

Событие сервера response.output_item.added возвращается при создании нового элемента во время создания ответа.

Структура событий

{
  "type": "response.output_item.added",
  "response_id": "<response_id>",
  "output_index": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.output_item.added.
response_id струна Идентификатор ответа, к которому принадлежит элемент.
output_index целое число Индекс выходного элемента в ответе.
item RealtimeConversationResponseItem Добавлен элемент.

response.output_item.done

Событие сервера response.output_item.done возвращается при выполнении потоковой передачи элемента.

Это событие также возвращается при прерывании, неполном или отмене ответа.

Структура событий

{
  "type": "response.output_item.done",
  "response_id": "<response_id>",
  "output_index": 0
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.output_item.done.
response_id струна Идентификатор ответа, к которому принадлежит элемент.
output_index целое число Индекс выходного элемента в ответе.
item RealtimeConversationResponseItem Элемент, который выполняет потоковую передачу.

response.text.delta

Событие сервера response.text.delta возвращается при обновлении текста, созданного моделью. Текст соответствует text части содержимого элемента сообщения помощника.

Структура событий

{
  "type": "response.text.delta",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "delta": "<delta>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.text.delta.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента.
output_index целое число Индекс выходного элемента в ответе.
content_index целое число Индекс части содержимого в массиве содержимого элемента.
delta струна Разностный текст.

response.text.done

Событие сервера response.text.done возвращается при выполнении потоковой передачи созданного моделью текста. Текст соответствует text части содержимого элемента сообщения помощника.

Это событие также возвращается при прерывании, неполном или отмене ответа.

Структура событий

{
  "type": "response.text.done",
  "response_id": "<response_id>",
  "item_id": "<item_id>",
  "output_index": 0,
  "content_index": 0,
  "text": "<text>"
}

Свойства

Поле Тип Description
type струна Тип события должен быть response.text.done.
response_id струна Идентификатор ответа.
item_id струна Идентификатор элемента.
output_index целое число Индекс выходного элемента в ответе.
content_index целое число Индекс части содержимого в массиве содержимого элемента.
текст струна Окончательное текстовое содержимое.

Components

Форматы звука

RealtimeAudioFormat

Базовый формат звука, используемый для входного звука.

Допустимые значения:

  • pcm16 — 16-разрядный формат звука PCM
  • g711_ulaw - Формат звука μ-права G.711
  • g711_alaw — Аудиоформат G.711 A-law

RealtimeOutputAudioFormat

Формат звука, используемый для вывода звука с определенными скоростями выборки.

Допустимые значения:

  • pcm16 — 16-разрядный звуковой формат PCM по умолчанию (24 кГц)
  • pcm16_8000hz — 16-разрядный аудиоформат PCM с частотой выборки 8 кГц
  • pcm16_16000hz — 16-разрядный аудиоформат PCM с частотой выборки 16 кГц
  • g711_ulaw - Аудиоформат G.711 μ (mu-law) в частоте выборки 8 кГц
  • g711_alaw — Аудиоформат G.711 A-law с частотой выборки 8 кГц

RealtimeAudioInputTranscriptionSettings

Конфигурация входного транскрибирования звука.

Поле Тип Description
model струна Модель транскрибирования. Поддерживается: whisper-1, , gpt-4o-transcribegpt-4o-mini-transcribegpt-4o-transcribe-diarizeazure-speech
language струна Необязательный код языка в BCP-47 (например, en-USили ISO-639-1 (например, en) или нескольких языках с автоматическим обнаружением (например, en,zh).
custom_speech объект Необязательная конфигурация для пользовательских моделей речи, допустимая только для azure-speech модели.
phrase_list строка[] Необязательный список подсказок фраз для распознавания предвзятости, допустимый только для azure-speech модели.
prompt струна Необязательный текст запроса для указания транскрибирования, допустимый только для whisper-1моделейgpt-4o-transcribegpt-4o-mini-transcribe, а также gpt-4o-transcribe-diarize для моделей.

RealtimeInputAudioNoiseReductionSettings

Это может быть:

RealtimeOpenAINoiseReduction

Конфигурация уменьшения шума OpenAI с явным полем типа, доступной только для gpt-realtime моделей и gpt-realtime-mini моделей.

Поле Тип Description
type струна near_field или far_field

RealtimeAzureDeepNoiseSuppression

Настройка для уменьшения шума входного звука.

Поле Тип Description
type струна Должен содержать значение "azure_deep_noise_suppression".

RealtimeInputAudioEchoCancellationSettings

Конфигурация отмены эхо для обработки звука на стороне сервера.

Поле Тип Description
type струна Должен содержать значение "server_echo_cancellation".

Конфигурация голосовой связи

RealtimeVoice

Объединение всех поддерживаемых конфигураций голосовой связи.

Это может быть:

RealtimeOpenAIVoice

Конфигурация голосовой связи OpenAI с явным полем типа.

Поле Тип Description
type струна Должен содержать значение "openai".
имя струна Имя голоса OpenAI: alloy, ashballadcoralechosageshimmer, , versemarincedar

RealtimeAzureVoice

База конфигураций голосовой связи Azure. Это дискриминируемое объединение с различными типами:

RealtimeAzureCustomVoice

Настраиваемая конфигурация голосовой связи Azure (предпочтительна для пользовательских голосов).

Поле Тип Description
type струна Должен содержать значение "azure-custom".
имя струна Имя голоса (не может быть пустым)
endpoint_id струна Идентификатор конечной точки (не может быть пустым)
Температура число/номер Необязательно. Температура между 0,0 и 1,0
custom_lexicon_url струна Необязательно. URL-адрес пользовательской лексики
prefer_locales строка[] Необязательно. Предпочтительный языковой стандарт
Предпочитать языковые стандарта изменят акценты языков. Если значение не задано, TTS будет использовать акцент по умолчанию для каждого языка. Например, когда TTS говорит на английском языке, он будет использовать американский английский акцент. И при разговоре на испанском языке он будет использовать мексиканский испанский акцент.
Если задать prefer_locales ["en-GB", "es-ES"], английский акцент будет британским английским, а испанский акцент будет европейским испанским. И TTS также может говорить на других языках, таких как французский, китайский и т. д.
местность струна Необязательно. Спецификация языкового стандарта
Принудительное применение языкового стандарта для выходных данных TTS. Если не задано, TTS всегда будет использовать заданный языковой стандарт для разговора. например, задать языковой en-USстандарт , TTS всегда будет использовать американский английский акцент, чтобы говорить текстовое содержимое, даже текстовое содержимое находится на другом языке. И TTS будет выводить молчание, если текстовое содержимое находится на китайском языке.
стиль струна Необязательно. Стиль голоса
смола струна Необязательно. Корректировка тона
скорость струна Необязательно. Корректировка скорости речи
volume струна Необязательно. Корректировка тома

Пример:

{
  "type": "azure-custom",
  "name": "my-custom-voice",
  "endpoint_id": "12345678-1234-1234-1234-123456789012",
  "temperature": 0.7,
  "style": "cheerful",
  "locale": "en-US"
}
RealtimeAzureStandardVoice

Стандартная конфигурация голосовой связи Azure.

Поле Тип Description
type струна Должен содержать значение "azure-standard".
имя струна Имя голоса (не может быть пустым)
Температура число/номер Необязательно. Температура между 0,0 и 1,0
custom_lexicon_url струна Необязательно. URL-адрес пользовательской лексики
prefer_locales строка[] Необязательно. Предпочтительный языковой стандарт
местность струна Необязательно. Спецификация языкового стандарта
стиль струна Необязательно. Стиль голоса
смола струна Необязательно. Корректировка тона
скорость струна Необязательно. Корректировка скорости речи
volume струна Необязательно. Корректировка тома
RealtimeAzurePersonalVoice

Конфигурация личного голоса Azure.

Поле Тип Description
type струна Должен содержать значение "azure-personal".
имя струна Имя голоса (не может быть пустым)
Температура число/номер Необязательно. Температура между 0,0 и 1,0
model струна Базовая нейронная модель: DragonLatestNeural, PhoenixLatestNeuralPhoenixV2Neural

Обнаружение поворота

RealtimeTurnDetection

Конфигурация для обнаружения поворотов. Это дискриминированный союз, поддерживающий несколько типов VAD.

RealtimeServerVAD

Базовое обнаружение поворота на основе VAD.

Поле Тип Description
type струна Должен содержать значение "server_vad".
threshold число/номер Необязательно. Порог активации (0.0-1.0)
prefix_padding_ms целое число Необязательно. Заполнение звука перед началом работы с речью
silence_duration_ms целое число Необязательно. Длительность молчания для обнаружения конца речи
end_of_utterance_detection RealtimeEOUDetection Необязательно. Конфигурация обнаружения речевых фрагментов
создать_ответ булевый Необязательно. Включите или отключите, создается ли ответ.
ответ на прерывание булевый Необязательно. Включение или отключение прерывания баржи (по умолчанию: false)
auto_truncate булевый Необязательно. Автоматическое усечение при прерывании (по умолчанию: false)
RealtimeOpenAISemanticVAD

Семантическая конфигурация VAD OpenAI, которая использует модель для определения завершения речи пользователя. Доступно только для gpt-realtime моделей и gpt-realtime-mini моделей.

Поле Тип Description
type струна Должен содержать значение "semantic_vad".
рвение струна Необязательно. Это способ управления тем, как модель стремится прервать пользователя, настроить максимальное время ожидания. В режиме транскрибирования, даже если модель не отвечает, она влияет на то, как звук блокируется.
Допустимы следующие значения:
- auto (по умолчанию) эквивалентно medium,
- low позволит пользователю занять свое время, чтобы говорить,
- high будет кусок звука как можно скорее.

Если вы хотите, чтобы модель реагировала чаще в режиме беседы или возвращать события транскрибирования быстрее в режиме транскрибирования, можно задать значение охотности high.
С другой стороны, если вы хотите разрешить пользователю говорить без прерывания в режиме беседы или если вы хотите, чтобы большие блоки расшифровки в режиме транскрибирования, можно задать желание low.
создать_ответ булевый Необязательно. Включите или отключите, создается ли ответ.
ответ на прерывание булевый Необязательно. Включение или отключение прерывания баржи (по умолчанию: false)
RealtimeAzureSemanticVAD

Семантическая vaD Azure, которая определяет, когда пользователь начинает и говорит с помощью семантической модели речи, обеспечивая более надежное обнаружение в шумных средах.

Поле Тип Description
type струна Должен содержать значение "azure_semantic_vad".
threshold число/номер Необязательно. Порог активации
prefix_padding_ms целое число Необязательно. Заполнение звука перед речью
silence_duration_ms целое число Необязательно. Длительность молчания для окончания речи
end_of_utterance_detection RealtimeEOUDetection Необязательно. Конфигурация обнаружения EOU
speech_duration_ms целое число Необязательно. Минимальная длительность речи
remove_filler_words булевый Необязательно. Удаление слов заливки (по умолчанию: false)
Языки строка[] Необязательно. Поддерживает английский язык. Другие языки будут игнорироваться.
создать_ответ булевый Необязательно. Включите или отключите, создается ли ответ.
ответ на прерывание булевый Необязательно. Включение или отключение прерывания баржи (по умолчанию: false)
auto_truncate булевый Необязательно. Автоматическое усечение при прерывании (по умолчанию: false)
RealtimeAzureSemanticVADMultilingual

Семантическое VAD Azure (вариант по умолчанию).

Поле Тип Description
type струна Должен содержать значение "azure_semantic_vad_multilingual".
threshold число/номер Необязательно. Порог активации
prefix_padding_ms целое число Необязательно. Заполнение звука перед речью
silence_duration_ms целое число Необязательно. Длительность молчания для окончания речи
end_of_utterance_detection RealtimeEOUDetection Необязательно. Конфигурация обнаружения EOU
speech_duration_ms целое число Необязательно. Минимальная длительность речи
remove_filler_words булевый Необязательно. Удалите слова заполнители (по умолчанию: false).
Языки строка[] Необязательно. Поддерживает английский, испанский, французский, итальянский, немецкий (DE), японский, португальский, китайский, корейский, хинди. Другие языки будут игнорироваться.
создать_ответ булевый Необязательно. Включите или отключите, создается ли ответ.
ответ на прерывание булевый Необязательно. Включение или отключение прерывания баржи (по умолчанию: false)
auto_truncate булевый Необязательно. Автоматическое усечение при прерывании (по умолчанию: false)

RealtimeEOUDetection

Конечное высказывание Azure (EOU) может указывать, когда конечный пользователь перестал говорить, позволяя естественным паузам. Обнаружение конца высказывания может значительно сократить преждевременные сигналы конца реплики, не добавляя заметной задержки.

Поле Тип Description
model струна Может поддерживать semantic_detection_v1 английский или semantic_detection_v1_multilingual вспомогательный английский, испанский, французский, итальянский, немецкий (DE), японский, португальский, китайский, корейский, хинди
threshold_level струна Необязательно. Уровень порогового low значения обнаружения (medium, highdefault иmedium) по умолчанию равен параметру. При более низком параметре вероятность завершения предложения будет выше.
timeout_ms число/номер Необязательно. Максимальное время в миллисекундах, чтобы ожидать больше речи пользователя. По умолчанию — 1000 мс.

Конфигурация аватара

RealtimeAvatarConfig

Настройка потоковой передачи аватара и поведения.

Поле Тип Description
ice_servers RealtimeIceServer[] Необязательно. СЕРВЕРы ICE для WebRTC
характер струна Имя символа или идентификатор аватара
стиль струна Необязательно. Стиль аватара (эмоциональный тон, стиль речи)
Настроить булевый Настраивается ли аватар
video RealtimeVideoParams Необязательно. Конфигурация видео

RealtimeIceServer

Конфигурация сервера ICE для согласования подключений WebRTC.

Поле Тип Description
URL-адреса строка[] URL-адреса сервера ICE (конечные точки TURN или STUN)
username струна Необязательно. Имя пользователя для проверки подлинности
credential струна Необязательно. Учетные данные для проверки подлинности

RealtimeVideoParams

Параметры потоковой передачи видео для аватара.

Поле Тип Description
скорость битовой скорости целое число Необязательно. Скорость в битах в секунду (по умолчанию: 2000000)
кодек струна Необязательно. Видеокодек, в настоящее время только h264 (по умолчанию: h264)
урожай RealtimeVideoCrop Необязательно. Обрезка параметров
резолюция RealtimeVideoResolution Необязательно. Параметры разрешения

RealtimeVideoCrop

Определение прямоугольника обрезки видео.

Поле Тип Description
top_left целое число[] Верхний левый угол [x, y], неотрицательных целых чисел
bottom_right целое число[] Нижний правый угол [x, y], неотрицательных целых чисел

RealtimeVideoResolution

Спецификация разрешения видео.

Поле Тип Description
Ширина целое число Ширина в пикселях (должна быть > 0)
height целое число Высота в пикселях (должна быть > 0)

Конфигурация анимации

RealtimeAnimation

Конфигурация выходных данных анимации, включая смешивания и виземы.

Поле Тип Description
model_name струна Необязательно. Имя модели анимации (по умолчанию: "default")
выходные данные RealtimeAnimationOutputType[] Необязательно. Типы выходных данных (по умолчанию: ["blendshapes"])

RealtimeAnimationOutputType

Типы данных анимации для вывода.

Допустимые значения:

  • blendshapes — данные о смешиваниях лиц
  • viseme_id — Данные идентификатора Viseme

Конфигурация сеанса

RealtimeRequestSession

Объект конфигурации сеанса, используемый в session.update событиях.

Поле Тип Description
model струна Необязательно. Имя модели для использования
modalities RealtimeModality[] Необязательно. Поддерживаемые модальности для сеанса.

Например, "модальности": ["text", "audio"] — это параметр по умолчанию, который включает как текстовые, так и звуковые модалы. Чтобы включить только текст, задайте "модальности": ["text"]. Чтобы включить выходные данные аватара, задайте "модальности": ["text", "audio", "аватар"]. Вы не можете включить только звук.
мультипликация RealtimeAnimation Необязательно. Конфигурация анимации
голос RealtimeVoice Необязательно. Конфигурация голосовой связи
instructions струна Необязательно. Системные инструкции для модели. Инструкции могут руководствоваться выходным звуком, если используются голоса OpenAI, но могут не применяться к голосам Azure.
input_audio_sampling_rate целое число Необязательно. Частота выборки входных аудио в Гц (по умолчанию: 24000 для pcm16, 8000 для g711_ulaw и g711_alaw)
input_audio_format RealtimeAudioFormat Необязательно. Формат входного звука (по умолчанию: pcm16)
output_audio_format RealtimeOutputAudioFormat Необязательно. Формат выходного звука (по умолчанию: pcm16)
input_audio_noise_reduction RealtimeInputAudioNoiseReductionSettings Настройка для уменьшения шума входного звука. Для отключения этого параметра может быть задано значение NULL. Фильтры для уменьшения шума обрабатывают звук, добавленный во входной звуковой буфер перед отправкой в VAD и модель. Фильтрация звука может повысить точность обнаружения VAD и поворота (уменьшая ложные срабатывания) и производительность модели, повышая восприятие входного звука.

Это свойство допускает значение NULL.
input_audio_echo_cancellation RealtimeInputAudioEchoCancellationSettings Настройка для отмены эхо-звука ввода. Для отключения этого параметра может быть задано значение NULL. Эта отслужебная отмена эхо-сигнала может помочь улучшить качество входного звука, уменьшая влияние эхо-и реверберации.

Это свойство допускает значение NULL.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Конфигурация входного транскрибирования звука. Конфигурация имеет значение NULL (off) по умолчанию. Транскрибирование входного звука не является собственным для модели, так как модель использует звук напрямую. Транскрибирование выполняется асинхронно через /audio/transcriptions конечную точку и должно рассматриваться как руководство по входным звуковым содержимым, а не точно то, что слышала модель. Для получения дополнительных рекомендаций для службы транскрибирования клиент может при необходимости задать язык и запрашивать транскрибирование.

Это свойство допускает значение NULL.
turn_detection RealtimeTurnDetection Параметры обнаружения поворота для сеанса. Для отключения этого параметра может быть задано значение NULL.
инструменты массив RealtimeTool Средства, доступные модели для сеанса.
выбор инструмента RealtimeToolChoice Выбор средства для сеанса.

Допустимые значения: auto, noneи required. В противном случае можно указать имя используемой функции.
Температура число/номер Температура выборки для модели. Допустимые значения температуры ограничены [0,6, 1.2]. По умолчанию используется значение 0.8.
max_response_output_tokens целое число или inf Максимальное количество выходных маркеров на ответ помощника, включающее вызовы инструментов.

Укажите целое число от 1 до 4096, чтобы ограничить выходные маркеры. В противном случае задайте значение inf, чтобы разрешить максимальное количество маркеров.

Например, чтобы ограничить выходные маркеры до 1000, задайте "max_response_output_tokens": 1000. Чтобы разрешить максимальное количество маркеров, задайте "max_response_output_tokens": "inf".

По умолчанию — "inf".
аватар RealtimeAvatarConfig Необязательно. Конфигурация аватара
output_audio_timestamp_types RealtimeAudioTimestampType[] Необязательно. Типы меток времени для выходного звука

RealtimeModality

Поддерживаемые модальности сеанса.

Допустимые значения:

  • text — входные и выходные данные текста
  • audio — входные и выходные данные звука
  • animation — выходные данные анимации
  • avatar — выходные данные видео аватара

RealtimeAudioTimestampType

Типы меток времени вывода, поддерживаемые в содержимом звукового ответа.

Допустимые значения:

  • word — метки времени на слово в выходном звуке

Настройка средства

Мы поддерживаем два типа инструментов: вызов функций и инструменты MCP, которые позволяют подключаться к серверу mcp.

RealtimeTool

Определение средства для вызова функции.

Поле Тип Description
type струна Должен содержать значение "function".
имя струна Имя функции
описание струна Рекомендации по описанию функций и использованию
parameters объект Параметры функции в виде объекта схемы JSON

RealtimeToolChoice

Стратегия выбора инструментов.

Это может быть:

  • "auto" — Пусть модель выбирается
  • "none" — Не используйте средства
  • "required" — должен использовать средство
  • { "type": "function", "name": "function_name" } — Использование конкретной функции

MCPTool

Настройка средства MCP.

Поле Тип Description
type струна Должен содержать значение "mcp".
метка сервера струна Обязательное. Метка сервера MCP.
URL сервера струна Обязательное. URL-адрес сервера MCP.
разрешённые_инструменты строка[] Необязательно. Список разрешенных имен инструментов. Если это не указано, все средства разрешены.
headers объект Необязательно. Дополнительные заголовки для включения в запросы MCP.
авторизация струна Необязательно. Маркер авторизации для запросов MCP.
требовать_одобрение строка или словарь Необязательно.
Если задано значение строки, значение должно быть never или always.
Если задано значение словаря, он должен быть в формате {"never": ["<tool_name_1>", "<tool_name_2>"], "always": ["<tool_name_3>"]}.
Значение по умолчанию: always.
Если задано значение always, выполнение средства требует утверждения, mcp_approval_request будет отправлено клиенту при завершении аргумента mcp и будет выполняться только при получении mcp_approval_response.approve=true
Если задано значение never, средство будет выполняться автоматически без утверждения.

RealtimeConversationResponseItem

Это тип объединения, который может быть одним из следующих типов:

RealtimeConversationUserMessageItem

Элемент сообщения пользователя.

Поле Тип Description
id струна Уникальный идентификатор элемента.
type струна Должен содержать значение "message".
объект струна Должен содержать значение "conversation.item".
роль струна Должен содержать значение "user".
содержимое RealtimeInputTextContentPart Содержимое сообщения.
статус RealtimeItemStatus Состояние элемента.

RealtimeConversationAssistantMessageItem

Элемент сообщения помощника.

Поле Тип Description
id струна Уникальный идентификатор элемента.
type струна Должен содержать значение "message".
объект струна Должен содержать значение "conversation.item".
роль струна Должен содержать значение "assistant".
содержимое RealtimeOutputTextContentPart[] или RealtimeOutputAudioContentPart[] Содержимое сообщения.
статус RealtimeItemStatus Состояние элемента.

RealtimeConversationSystemMessageItem

Элемент системного сообщения.

Поле Тип Description
id струна Уникальный идентификатор элемента.
type струна Должен содержать значение "message".
объект струна Должен содержать значение "conversation.item".
роль струна Должен содержать значение "system".
содержимое RealtimeInputTextContentPart[] Содержимое сообщения.
статус RealtimeItemStatus Состояние элемента.

RealtimeConversationFunctionCallItem

Элемент запроса вызова функции.

Поле Тип Description
id струна Уникальный идентификатор элемента.
type струна Должен содержать значение "function_call".
объект струна Должен содержать значение "conversation.item".
имя струна Имя вызываемой функции.
arguments струна Аргументы для вызова функции в виде строки JSON.
call_id струна Уникальный идентификатор вызова функции.
статус RealtimeItemStatus Состояние элемента.

RealtimeConversationFunctionCallOutputItem

Элемент ответа вызова функции.

Поле Тип Description
id струна Уникальный идентификатор элемента.
type струна Должен содержать значение "function_call_output".
объект струна Должен содержать значение "conversation.item".
имя струна Имя вызываемой функции.
output струна Выходные данные вызова функции.
call_id струна Уникальный идентификатор вызова функции.
статус RealtimeItemStatus Состояние элемента.

RealtimeConversationMCPListToolsItem

Элемент ответа средств списка MCP.

Поле Тип Description
id струна Уникальный идентификатор элемента.
type струна Должен содержать значение "mcp_list_tools".
метка сервера струна Метка сервера MCP.

RealtimeConversationMCPCallItem

Элемент ответа на вызов MCP.

Поле Тип Description
id струна Уникальный идентификатор элемента.
type струна Должен содержать значение "mcp_call".
метка сервера струна Метка сервера MCP.
имя струна Имя вызываемого средства.
approval_request_id струна Идентификатор запроса утверждения для вызова MCP.
arguments струна Аргументы для вызова MCP.
output струна Выходные данные вызова MCP.
ошибка объект Сведения об ошибке, если сбой вызова MCP.

RealtimeConversationMCPApprovalRequestItem

Элемент запроса на утверждение MCP.

Поле Тип Description
id струна Уникальный идентификатор элемента.
type струна Должен содержать значение "mcp_approval_request".
метка сервера струна Метка сервера MCP.
имя струна Имя вызываемого средства.
arguments струна Аргументы для вызова MCP.

RealtimeItemStatus

Состояние элементов беседы.

Допустимые значения:

  • in_progress - В настоящее время обрабатывается
  • completed — успешно завершено
  • incomplete — неполный (прерывание или сбой)

RealtimeContentPart

Часть содержимого в сообщении.

RealtimeInputTextContentPart

Часть текстового содержимого.

Поле Тип Description
type струна Должен содержать значение "input_text".
текст струна Текстовое содержимое

RealtimeOutputTextContentPart

Часть текстового содержимого.

Поле Тип Description
type струна Должен содержать значение "text".
текст струна Текстовое содержимое

RealtimeInputAudioContentPart

Часть звукового содержимого.

Поле Тип Description
type струна Должен содержать значение "input_audio".
audio струна Необязательно. Звуковые данные в кодировке Base64
transcript струна Необязательно. Транскрибирование звука

RealtimeOutputAudioContentPart

Часть звукового содержимого.

Поле Тип Description
type струна Должен содержать значение "audio".
audio струна Звуковые данные в кодировке Base64
transcript струна Необязательно. Транскрибирование звука

Объекты ответа

RealtimeResponse

Объект ответа, представляющий ответ на вывод модели.

Поле Тип Description
id струна Необязательно. Идентификатор ответа
объект струна Необязательно. Всегда "realtime.response"
статус RealtimeResponseStatus Необязательно. Состояние ответа
подробности_статуса RealtimeResponseStatusDetails Необязательно. Сведения о статусе
output RealtimeConversationResponseItem[] Необязательно. Выходные элементы
использование RealtimeUsage Необязательно. Статистика использования маркеров
conversation_id струна Необязательно. Связанный идентификатор беседы
голос RealtimeVoice Необязательно. Голос, используемый для ответа
modalities строка[] Необязательно. Используемые модальности
output_audio_format RealtimeOutputAudioFormat Необязательно. Используемый формат звука
Температура число/номер Необязательно. Используется температура
max_response_output_tokens целое число или inf Необязательно. Максимальное количество используемых маркеров

RealtimeResponseStatus

Значения состояния ответа.

Допустимые значения:

  • in_progress — создается ответ
  • completed — ответ успешно завершен
  • cancelled - Ответ был отменен
  • incomplete — неполный ответ (прерванный)
  • failed — сбой ответа с ошибкой

RealtimeUsage

Статистика использования маркеров.

Поле Тип Description
общее количество токенов целое число Всего используемых маркеров
input_tokens целое число Используемые маркеры ввода
output_tokens целое число Выходные маркеры, созданные
input_token_details TokenDetails Разбивка входных маркеров
output_token_details TokenDetails Разбивка выходных маркеров

TokenDetails

Подробные сведения об использовании маркеров.

Поле Тип Description
cached_tokens целое число Необязательно. Кэшированные маркеры, используемые
text_tokens целое число Необязательно. Используемые текстовые маркеры
audio_tokens целое число Необязательно. Используемые маркеры звука

Обработка ошибок

RealtimeErrorDetails

Объект сведений об ошибках.

Поле Тип Description
type струна Тип ошибки (например, "invalid_request_error", "server_error")
код струна Необязательно. Конкретный код ошибки
сообщение струна Описание ошибки, доступной для чтения человеком
параметр струна Необязательно. Параметр, связанный с ошибкой
event_id струна Необязательно. Идентификатор события клиента, вызвавшего ошибку

RealtimeConversationRequestItem

Объект используется RealtimeConversationRequestItem для создания нового элемента в беседе с помощью события conversation.item.create .

Это тип объединения, который может быть одним из следующих типов:

RealtimeSystemMessageItem

Элемент системного сообщения.

Поле Тип Description
type струна Тип элемента.

Допустимые значения: message
роль струна Роль сообщения.

Допустимые значения: system
содержимое массив RealtimeInputTextContentPart Содержимое сообщения.
id струна Уникальный идентификатор элемента. Клиент может указать идентификатор для управления контекстом на стороне сервера. Если клиент не предоставляет идентификатор, сервер создает его.

RealtimeUserMessageItem

Элемент сообщения пользователя.

Поле Тип Description
type струна Тип элемента.

Допустимые значения: message
роль струна Роль сообщения.

Допустимые значения: user
содержимое массив RealtimeInputTextContentPart или RealtimeInputAudioContentPart Содержимое сообщения.
id струна Уникальный идентификатор элемента. Клиент может указать идентификатор для управления контекстом на стороне сервера. Если клиент не предоставляет идентификатор, сервер создает его.

RealtimeAssistantMessageItem

Элемент сообщения помощника.

Поле Тип Description
type струна Тип элемента.

Допустимые значения: message
роль струна Роль сообщения.

Допустимые значения: assistant
содержимое массив RealtimeOutputTextContentPart Содержимое сообщения.

RealtimeFunctionCallItem

Элемент вызова функции.

Поле Тип Description
type струна Тип элемента.

Допустимые значения: function_call
имя струна Имя вызываемой функции.
arguments струна Аргументы вызова функции в виде строки JSON.
call_id струна Идентификатор элемента вызова функции.
id струна Уникальный идентификатор элемента. Клиент может указать идентификатор для управления контекстом на стороне сервера. Если клиент не предоставляет идентификатор, сервер создает его.

RealtimeFunctionCallOutputItem

Выходной элемент вызова функции.

Поле Тип Description
type струна Тип элемента.

Допустимые значения: function_call_output
call_id струна Идентификатор элемента вызова функции.
output струна Выходные данные вызова функции— это строка свободной формы с результатом функции, также может быть пустой.
id струна Уникальный идентификатор элемента. Если клиент не предоставляет идентификатор, сервер создает его.

RealtimeMCPApprovalResponseItem

Элемент ответа на утверждение MCP.

Поле Тип Description
type струна Тип элемента.

Допустимые значения: mcp_approval_response
одобрять булевый Утверждается ли запрос MCP.
approval_request_id струна Идентификатор запроса на утверждение MCP.

RealtimeFunctionTool

Определение средства функции, используемого конечной точкой реального времени.

Поле Тип Description
type струна Тип средства.

Допустимые значения: function
имя струна Имя функции.
описание струна Описание функции, включая рекомендации по использованию. Например, "Используйте эту функцию для получения текущего времени".
parameters объект Параметры функции в виде объекта JSON.

RealtimeItemStatus

Допустимые значения:

  • in_progress
  • completed
  • incomplete

RealtimeResponseAudioContentPart

Поле Тип Description
type струна Тип части содержимого.

Допустимые значения: audio
transcript струна Расшифровка звука.

Это свойство допускает значение NULL.

RealtimeResponseFunctionCallItem

Поле Тип Description
type струна Тип элемента.

Допустимые значения: function_call
имя струна Имя элемента вызова функции.
call_id струна Идентификатор элемента вызова функции.
arguments струна Аргументы элемента вызова функции.
статус RealtimeItemStatus Состояние элемента.

RealtimeResponseFunctionCallOutputItem

Поле Тип Description
type струна Тип элемента.

Допустимые значения: function_call_output
call_id струна Идентификатор элемента вызова функции.
output струна Выходные данные элемента вызова функции.

RealtimeResponseOptions

Поле Тип Description
modalities массив Модальности, поддерживаемые сеансом.

Допустимые значения: text, audio

Например, "modalities": ["text", "audio"] это параметр по умолчанию, который включает как текстовые, так и звуковые модалы. Чтобы включить только текст, задайте ."modalities": ["text"] Вы не можете включить только звук.
instructions струна Инструкции (системное сообщение) для руководства ответами модели.
голос RealtimeVoice Голос, используемый для ответа модели для сеанса.

После использования голоса в сеансе для звукового ответа модели его нельзя изменить.
инструменты массив RealtimeTool Средства, доступные модели для сеанса.
выбор инструмента RealtimeToolChoice Выбор средства для сеанса.
Температура число/номер Температура выборки для модели. Допустимые значения температуры ограничены [0,6, 1.2]. По умолчанию используется значение 0.8.
max_response_output_tokens целое число или inf Максимальное количество выходных маркеров на ответ помощника, включающее вызовы инструментов.

Укажите целое число от 1 до 4096, чтобы ограничить выходные маркеры. В противном случае задайте значение inf, чтобы разрешить максимальное количество маркеров.

Например, чтобы ограничить выходные маркеры до 1000, задайте "max_response_output_tokens": 1000. Чтобы разрешить максимальное количество маркеров, задайте "max_response_output_tokens": "inf".

По умолчанию — "inf".
разговор струна Определяет, к какой беседе добавляется ответ. Поддерживаемые значения: auto и none.

Значение auto (или не задано это свойство) гарантирует, что содержимое ответа добавляется в беседу по умолчанию сеанса.

Задайте этому свойству значение, чтобы none создать ответ вне диапазона, в котором элементы не будут добавлены в беседу по умолчанию.

По умолчанию — "auto".
metadata карта Настройка до 16 пар "ключ-значение", которые могут быть присоединены к объекту. Это может быть полезно для хранения дополнительных сведений об объекте в структурированном формате. Ключи могут содержать не более 64 символов, а значения могут содержать не более 512 символов.

Например: metadata: { topic: "classification" }

RealtimeResponseSession

Объект RealtimeResponseSession представляет сеанс в API Реального времени. Он используется в некоторых событиях сервера, таких как:

Поле Тип Description
объект струна Объект сеанса.

Допустимые значения: realtime.session
id струна Уникальный идентификатор сеанса.
model струна Модель, используемая для сеанса.
modalities массив Модальности, поддерживаемые сеансом.

Допустимые значения: text, audio

Например, "modalities": ["text", "audio"] это параметр по умолчанию, который включает как текстовые, так и звуковые модалы. Чтобы включить только текст, задайте ."modalities": ["text"] Вы не можете включить только звук.
instructions струна Инструкции (системное сообщение) для руководства по текстовым и звуковым ответам модели.

Ниже приведены некоторые примеры инструкций по использованию содержимого и формата текстовых и звуковых ответов:
"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 Голос, используемый для ответа модели для сеанса.

После использования голоса в сеансе для звукового ответа модели его нельзя изменить.
input_audio_sampling_rate целое число Частота выборки для входного звука.
input_audio_format RealtimeAudioFormat Формат входного звука.
output_audio_format RealtimeAudioFormat Формат выходного звука.
input_audio_transcription RealtimeAudioInputTranscriptionSettings Параметры транскрибирования входных звука.

Это свойство допускает значение NULL.
turn_detection RealtimeTurnDetection Параметры обнаружения поворота для сеанса.

Это свойство допускает значение NULL.
инструменты массив RealtimeTool Средства, доступные модели для сеанса.
выбор инструмента RealtimeToolChoice Выбор средства для сеанса.
Температура число/номер Температура выборки для модели. Допустимые значения температуры ограничены [0,6, 1.2]. По умолчанию используется значение 0.8.
max_response_output_tokens целое число или inf Максимальное количество выходных маркеров на ответ помощника, включающее вызовы инструментов.

Укажите целое число от 1 до 4096, чтобы ограничить выходные маркеры. В противном случае задайте значение inf, чтобы разрешить максимальное количество маркеров.

Например, чтобы ограничить выходные маркеры до 1000, задайте "max_response_output_tokens": 1000. Чтобы разрешить максимальное количество маркеров, задайте "max_response_output_tokens": "inf".

RealtimeResponseStatusDetails

Поле Тип Description
type RealtimeResponseStatus Состояние ответа.

RealtimeRateLimitsItem

Поле Тип Description
имя струна Имя свойства ограничения скорости, о которое этот элемент содержит сведения.
limit целое число Максимально настроенное ограничение для этого свойства ограничения скорости.
remaining целое число Оставшаяся квота, доступная в соответствии с настроенным ограничением для этого свойства ограничения скорости.
reset_seconds число/номер Оставшееся время (в секундах), пока это свойство ограничения скорости не будет сброшено.