실시간 API(미리 보기) 참조
참고 항목
이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
실시간 API는 Azure OpenAI 서비스와 실시간으로 상호 작용할 수 있는 WebSocket 기반 API입니다.
실시간 API(통해/realtime
)는 최종 사용자와 모델 간의 완전한 비동기 스트리밍 통신을 용이하게 하기 위해 WebSockets API를 기반으로 합니다. 오디오 데이터 캡처 및 렌더링과 같은 디바이스 세부 정보는 Realtime API의 범위를 벗어날 수 있습니다. 최종 사용자에 대한 연결과 모델 엔드포인트 연결을 모두 관리하는 신뢰할 수 있는 중간 서비스의 컨텍스트에서 사용해야 합니다. 신뢰할 수 없는 최종 사용자 디바이스에서 직접 사용하지 마세요.
Connection
실시간 API에는 지원되는 지역에 기존 Azure OpenAI 리소스 엔드포인트가 필요합니다. API는 Azure OpenAI 리소스의 엔드포인트에 /realtime
대한 보안 WebSocket 연결을 통해 액세스됩니다.
다음을 연결하여 전체 요청 URI를 생성할 수 있습니다.
- 보안 WebSocket(
wss://
) 프로토콜 - Azure OpenAI 리소스 엔드포인트 호스트 이름(예:
my-aoai-resource.openai.azure.com
openai/realtime
API 경로- 지원
api-version
되는 API 버전에 대한 쿼리 문자열 매개 변수(예: )2024-10-01-preview
deployment
모델 배포 이름이gpt-4o-realtime-preview
있는 쿼리 문자열 매개 변수
다음 예제는 잘 구성된 /realtime
요청 URI입니다.
wss://my-eastus2-openai-resource.openai.azure.com/openai/realtime?api-version=2024-10-01-preview&deployment=gpt-4o-realtime-preview-1001
인증
인증하려면 다음을 수행합니다.
- Microsoft Entra (권장): 관리 ID를 사용하도록 설정된 Azure OpenAI 서비스 리소스에 대한 API로 토큰 기반 인증
/realtime
을 사용합니다. 헤더가 있는 토큰을 사용하여Bearer
검색된 인증 토큰을 적용합니다Authorization
. - API 키: 다음
api-key
두 가지 방법 중 하나로 제공할 수 있습니다.- 프리핸드셰이
api-key
크 연결에서 연결 헤더 사용 이 옵션은 브라우저 환경에서 사용할 수 없습니다. - 요청 URI에서
api-key
쿼리 문자열 매개 변수 사용 쿼리 문자열 매개 변수는 https/wss를 사용할 때 암호화됩니다.
- 프리핸드셰이
클라이언트 이벤트
클라이언트에서 서버로 보낼 수 있는 9개의 클라이언트 이벤트가 있습니다.
이벤트 | 설명 |
---|---|
RealtimeClientEventConversationItemCreate | 대화에 항목을 추가할 때 이 클라이언트 이벤트를 보냅니다. |
RealtimeClientEventConversationItemDelete | 대화 기록에서 항목을 제거하려는 경우 이 클라이언트 이벤트를 보냅니다. |
RealtimeClientEventConversationItemTruncate | 이전 도우미 메시지의 오디오를 자르려는 경우 이 클라이언트 이벤트를 보냅니다. |
RealtimeClientEventInputAudioBufferAppend | 이 클라이언트 이벤트를 보내 오디오 바이트를 입력 오디오 버퍼에 추가합니다. |
RealtimeClientEventInputAudioBufferClear | 버퍼에서 오디오 바이트를 지우려면 이 클라이언트 이벤트를 보냅니다. |
RealtimeClientEventInputAudioBufferCommit | 이 클라이언트 이벤트를 보내 오디오 바이트를 사용자 메시지에 커밋합니다. |
RealtimeClientEventResponseCancel | 진행 중인 응답을 취소하려면 이 클라이언트 이벤트를 보냅니다. |
RealtimeClientEventResponseCreate | 이 클라이언트 이벤트를 보내 응답 생성을 트리거합니다. |
RealtimeClientEventSessionUpdate | 이 클라이언트 이벤트를 보내 세션의 기본 구성을 업데이트합니다. |
RealtimeClientEventConversationItemCreate
클라이언트 conversation.item.create
이벤트는 메시지, 함수 호출 및 함수 호출 응답을 포함하여 대화의 컨텍스트에 새 항목을 추가하는 데 사용됩니다. 이 이벤트는 대화 기록을 채우고 스트림 중간에 새 항목을 추가하는 데 사용할 수 있습니다. 현재 이 이벤트는 도우미 오디오 메시지를 채울 수 없습니다.
성공하면 서버가 이벤트로 conversation.item.created
응답하고, 그렇지 않으면 error
이벤트가 전송됩니다.
이벤트 구조
{
"type": "conversation.item.create",
"previous_item_id": "<previous_item_id>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.item.create 합니다. |
previous_item_id | string | 새 항목이 삽입된 후 이전 항목의 ID입니다. 설정하지 않으면 새 항목이 대화 끝에 추가됩니다. 설정된 경우 항목이 대화 중간에 삽입될 수 있습니다. ID를 찾을 수 없는 경우 오류가 반환되고 항목이 추가되지 않습니다. |
item | RealtimeConversationRequestItem | 대화에 추가할 항목입니다. |
RealtimeClientEventConversationItemDelete
클라이언트 conversation.item.delete
이벤트는 대화 기록에서 항목을 제거하는 데 사용됩니다.
대화 기록에 항목이 없는 한 서버는 이벤트로 conversation.item.deleted
응답합니다. 이 경우 서버는 오류로 응답합니다.
이벤트 구조
{
"type": "conversation.item.delete",
"item_id": "<item_id>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.item.delete 합니다. |
item_id | string | 삭제할 항목의 ID입니다. |
RealtimeClientEventConversationItemTruncate
클라이언트 conversation.item.truncate
이벤트는 이전 도우미 메시지의 오디오를 자르는 데 사용됩니다. 서버는 실시간보다 더 빠르게 오디오를 생성하므로 이 이벤트는 사용자가 클라이언트로 전송되었지만 아직 재생되지 않은 오디오를 자르기 위해 중단하는 경우에 유용합니다. 클라이언트의 재생을 사용하여 오디오에 대한 서버의 이해가 동기화됩니다.
오디오를 잘리면 서버 쪽 텍스트 대본이 삭제되어 사용자가 모르는 컨텍스트에 텍스트가 없는지 확인합니다.
클라이언트 이벤트가 성공하면 서버는 이벤트로 conversation.item.truncated
응답합니다.
이벤트 구조
{
"type": "conversation.item.truncate",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.item.truncate 합니다. |
item_id | string | 잘리는 도우미 메시지 항목의 ID입니다. 도우미 메시지 항목만 잘라낼 수 있습니다. |
content_index | 정수 | 잘리는 콘텐츠 파트의 인덱스입니다. 이 속성을 "0"으로 설정합니다. |
audio_end_ms | 정수 | 오디오가 잘리는 포괄 기간(밀리초)입니다. audio_end_ms 실제 오디오 기간보다 크면 서버에서 오류로 응답합니다. |
RealtimeClientEventInputAudioBufferAppend
클라이언트 input_audio_buffer.append
이벤트는 입력 오디오 버퍼에 오디오 바이트를 추가하는 데 사용됩니다. 오디오 버퍼는 나중에 커밋할 수 있는 임시 스토리지입니다.
서버 VAD(음성 활동 감지) 모드에서 오디오 버퍼는 음성을 감지하는 데 사용되며 서버는 커밋 시기를 결정합니다. 서버 VAD를 사용하지 않도록 설정하면 클라이언트는 각 이벤트에 최대 15MiB까지 배치할 오디오 양을 선택할 수 있습니다. 예를 들어 클라이언트에서 작은 청크를 스트리밍하면 VAD의 응답성이 높아질 수 있습니다.
다른 클라이언트 이벤트와 달리 서버는 클라이언트 input_audio_buffer.append
이벤트에 대한 확인 응답을 보내지 않습니다.
이벤트 구조
{
"type": "input_audio_buffer.append",
"audio": "<audio>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 input_audio_buffer.append 합니다. |
오디오 | string | Base64로 인코딩된 오디오 바이트입니다. 이 값은 세션 구성의 input_audio_format 필드에 지정된 형식이어야 합니다. |
RealtimeClientEventInputAudioBufferClear
클라이언트 input_audio_buffer.clear
이벤트는 버퍼의 오디오 바이트를 지우는 데 사용됩니다.
서버가 이벤트로 input_audio_buffer.cleared
응답합니다.
이벤트 구조
{
"type": "input_audio_buffer.clear"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 input_audio_buffer.clear 합니다. |
RealtimeClientEventInputAudioBufferCommit
클라이언트 input_audio_buffer.commit
이벤트는 대화에 새 사용자 메시지 항목을 만드는 사용자 입력 오디오 버퍼를 커밋하는 데 사용됩니다. 세션에 대해 구성된 경우 input_audio_transcription
오디오가 전사됩니다.
서버 VAD 모드에서 클라이언트는 이 이벤트를 보낼 필요가 없으며 서버는 오디오 버퍼를 자동으로 커밋합니다. 서버 VAD가 없으면 클라이언트는 오디오 버퍼를 커밋하여 사용자 메시지 항목을 만들어야 합니다. 이 클라이언트 이벤트는 입력 오디오 버퍼가 비어 있으면 오류를 생성합니다.
입력 오디오 버퍼를 커밋해도 모델에서 응답이 생성되지 않습니다.
서버가 이벤트로 input_audio_buffer.committed
응답합니다.
이벤트 구조
{
"type": "input_audio_buffer.commit"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 input_audio_buffer.commit 합니다. |
RealtimeClientEventResponseCancel
클라이언트 response.cancel
이벤트는 진행 중인 응답을 취소하는 데 사용됩니다.
취소할 응답이 response.cancelled
없으면 서버가 이벤트 또는 오류로 응답합니다.
이벤트 구조
{
"type": "response.cancel"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.cancel 합니다. |
RealtimeClientEventResponseCreate
클라이언트 response.create
이벤트는 모델 추론을 통해 응답을 만들도록 서버에 지시하는 데 사용됩니다. 세션이 서버 VAD 모드로 구성된 경우 서버는 자동으로 응답을 만듭니다.
응답에는 하나 item
이상의 응답이 포함되며 두 개의 응답이 있을 수 있습니다. 이 경우 두 번째 응답은 함수 호출입니다. 이러한 항목은 대화 기록에 추가됩니다.
서버는 이벤트, 하나 이상의 항목 및 콘텐츠 이벤트(예: 및response.content_part.added
)로 conversation.item.created
응답하고 마지막으로 response.done
응답이 완료되었음을 나타내는 이벤트로 응답 response.created
합니다.
참고 항목
클라이언트 response.create
이벤트에는 유추 구성(예: instructions
및 temperature
.)이 포함됩니다. 이러한 필드는 이 응답에 대해서만 세션의 구성을 재정의할 수 있습니다.
이벤트 구조
{
"type": "response.create"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.create 합니다. |
응답 | RealtimeResponseOptions | 응답 옵션입니다. |
RealtimeClientEventSessionUpdate
클라이언트 session.update
이벤트는 세션의 기본 구성을 업데이트하는 데 사용됩니다. 클라이언트는 언제든지 이 이벤트를 보내 세션 구성을 업데이트할 수 있으며 음성을 제외한 모든 필드를 언제든지 업데이트할 수 있습니다.
존재하는 필드만 업데이트됩니다. 필드를 지우려면(예: instructions
) 빈 문자열을 전달합니다.
서버는 전체 유효 구성을 session.updated
포함하는 이벤트로 응답합니다.
이벤트 구조
{
"type": "session.update"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 session.update 합니다. |
session | RealtimeRequestSession | 세션 구성입니다. |
서버 이벤트
서버에서 받을 수 있는 28개의 서버 이벤트가 있습니다.
이벤트 | 설명 |
---|---|
RealtimeServerEventConversationCreated | 대화가 만들어지면 서버 이벤트입니다. 세션을 만든 직후에 내보냅니다. |
RealtimeServerEventConversationItemCreated | 대화 항목을 만들 때 서버 이벤트입니다. |
RealtimeServerEventConversationItemDeleted | 대화의 항목이 삭제될 때 발생하는 서버 이벤트입니다. |
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted | 입력 오디오 전사를 사용하도록 설정하고 전사에 성공하면 서버 이벤트입니다. |
RealtimeServerEventConversationItemInputAudioTranscriptionFailed | 입력 오디오 전사가 구성되고 사용자 메시지에 대한 전사 요청이 실패한 경우 서버 이벤트입니다. |
RealtimeServerEventConversationItemTruncated | 클라이언트가 이전 도우미 오디오 메시지 항목을 자르는 경우 서버 이벤트입니다. |
RealtimeServerEventError | 오류가 발생할 때 서버 이벤트입니다. |
RealtimeServerEventInputAudioBufferCleared | 클라이언트가 입력 오디오 버퍼를 지울 때 서버 이벤트입니다. |
RealtimeServerEventInputAudioBufferCommitted | 클라이언트에서 또는 서버 VAD 모드에서 입력 오디오 버퍼가 커밋될 때 서버 이벤트가 발생합니다. |
RealtimeServerEventInputAudioBufferSpeechStarted | 음성이 검색될 때 서버 턴 검색 모드의 서버 이벤트입니다. |
RealtimeServerEventInputAudioBufferSpeechStopped | 음성이 중지되면 서버 턴 검색 모드의 서버 이벤트입니다. |
RealtimeServerEventRateLimitsUpdated | 업데이트된 속도 제한을 나타내기 위해 모든 "response.done" 이벤트 후에 내보냅니다. |
RealtimeServerEventResponseAudioDelta | 모델 생성 오디오가 업데이트될 때 서버 이벤트입니다. |
RealtimeServerEventResponseAudioDone | 모델 생성 오디오가 완료되면 서버 이벤트입니다. 또한 응답이 중단되거나 불완전하거나 취소될 때 내보내집니다. |
RealtimeServerEventResponseAudioTranscriptDelta | 모델에서 생성된 오디오 출력 전사가 업데이트될 때 발생하는 서버 이벤트입니다. |
RealtimeServerEventResponseAudioTranscriptDone | 모델에서 생성된 오디오 출력 전사가 스트리밍을 완료할 때 발생하는 서버 이벤트입니다. 또한 응답이 중단되거나 불완전하거나 취소될 때 내보내집니다. |
RealtimeServerEventResponseContentPartAdded | 응답 생성 중에 새 콘텐츠 파트가 도우미 메시지 항목에 추가되는 경우 서버 이벤트입니다. |
RealtimeServerEventResponseContentPartDone | 보조 메시지 항목에서 콘텐츠 파트 스트리밍이 완료된 경우 서버 이벤트입니다. 또한 응답이 중단되거나 불완전하거나 취소될 때 내보내집니다. |
RealtimeServerEventResponseCreated | 새 응답을 만들 때 서버 이벤트입니다. 응답 생성의 첫 번째 이벤트로, 응답이 초기 상태인 "in_progress"입니다. |
RealtimeServerEventResponseDone | 응답이 스트리밍이 완료되면 서버 이벤트입니다. 최종 상태에 관계없이 항상 내보냅니다. |
RealtimeServerEventResponseFunctionCallArgumentsDelta | 모델에서 생성된 함수 호출 인수가 업데이트될 때 발생하는 서버 이벤트입니다. |
RealtimeServerEventResponseFunctionCallArgumentsDone | 모델 생성 함수 호출 인수가 스트리밍을 완료할 때 발생하는 서버 이벤트입니다. 또한 응답이 중단되거나 불완전하거나 취소될 때 내보내집니다. |
RealtimeServerEventResponseOutputItemAdded | 새 출력 항목이 응답에 추가되는 경우 서버 이벤트입니다. |
RealtimeServerEventResponseOutputItemDone | 출력 항목이 스트리밍이 완료되면 서버 이벤트입니다. 또한 응답이 중단되거나 불완전하거나 취소될 때 내보내집니다. |
RealtimeServerEventResponseTextDelta | 모델 생성 텍스트가 업데이트될 때 발생하는 서버 이벤트입니다. |
RealtimeServerEventResponseTextDone | 모델 생성 텍스트가 완료되면 서버 이벤트입니다. 또한 응답이 중단되거나 불완전하거나 취소될 때 내보내집니다. |
RealtimeServerEventSessionCreated | 세션을 만들 때 서버 이벤트입니다. |
RealtimeServerEventSessionUpdated | 세션이 업데이트되는 경우 서버 이벤트입니다. |
RealtimeServerEventConversationCreated
서버 conversation.created
이벤트는 세션을 만든 직후에 반환됩니다. 세션당 하나의 대화가 만들어집니다.
이벤트 구조
{
"type": "conversation.created",
"conversation": {
"id": "<id>",
"object": "<object>"
}
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.created 합니다. |
대화 | 개체 | 대화 리소스입니다. |
대화 속성
필드 | 형식 | 설명 |
---|---|---|
id | string | 대화의 고유 ID입니다. |
개체 | string | 개체 형식은 .이어야 realtime.conversation 합니다. |
RealtimeServerEventConversationItemCreated
서버 conversation.item.created
이벤트는 대화 항목을 만들 때 반환됩니다. 이 이벤트를 생성하는 몇 가지 시나리오가 있습니다.
- 서버는 응답을 생성합니다. 성공하면 형식(역할
assistant
) 또는 형식message
function_call
인 하나 또는 두 개의 항목을 생성합니다. - 입력 오디오 버퍼는 클라이언트 또는 서버(모드)에
server_vad
의해 커밋됩니다. 서버는 입력 오디오 버퍼의 콘텐츠를 가져와서 새 사용자 메시지 항목에 추가합니다. - 클라이언트는 대화에
conversation.item.create
새 항목을 추가하는 이벤트를 보냈습니다.
이벤트 구조
{
"type": "conversation.item.created",
"previous_item_id": "<previous_item_id>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.item.created 합니다. |
previous_item_id | string | 대화 컨텍스트에서 이전 항목의 ID를 사용하면 클라이언트가 대화의 순서를 이해할 수 있습니다. |
item | RealtimeConversationResponseItem | 만들어진 항목입니다. |
RealtimeServerEventConversationItemDeleted
클라이언트가 이벤트와의 conversation.item.delete
대화에서 항목을 삭제하면 서버 conversation.item.deleted
이벤트가 반환됩니다. 이 이벤트는 대화 기록에 대한 서버의 이해를 클라이언트 보기와 동기화하는 데 사용됩니다.
이벤트 구조
{
"type": "conversation.item.deleted",
"item_id": "<item_id>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.item.deleted 합니다. |
item_id | string | 삭제된 항목의 ID입니다. |
RealtimeServerEventConversationItemInputAudioTranscriptionCompleted
서버 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>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.item.input_audio_transcription.completed 합니다. |
item_id | string | 오디오를 포함하는 사용자 메시지 항목의 ID입니다. |
content_index | 정수 | 오디오를 포함하는 콘텐츠 파트의 인덱스입니다. |
대본 | string | 전사된 텍스트입니다. |
RealtimeServerEventConversationItemInputAudioTranscriptionFailed
입력 오디오 전사가 구성되고 사용자 메시지에 대한 전사 요청이 실패하면 서버 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>"
}
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.item.input_audio_transcription.failed 합니다. |
item_id | string | 사용자 메시지 항목의 ID입니다. |
content_index | 정수 | 오디오를 포함하는 콘텐츠 파트의 인덱스입니다. |
error | 개체 | 전사 오류에 대한 세부 정보입니다. 다음 표에서 중첩된 속성을 참조하세요. |
오류 속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 오류의 유형. |
코드 | string | 오류 코드(있는 경우)입니다. |
message | string | 사람이 읽을 수 있는 오류 메시지 |
param | string | 오류와 관련된 매개 변수(있는 경우)입니다. |
RealtimeServerEventConversationItemTruncated
서버 conversation.item.truncated
이벤트는 클라이언트가 이벤트와 함께 conversation.item.truncate
이전 도우미 오디오 메시지 항목을 자를 때 반환됩니다. 이 이벤트는 클라이언트의 재생과 오디오에 대한 서버의 이해를 동기화하는 데 사용됩니다.
이 이벤트는 오디오를 잘라내고 서버 쪽 텍스트 대본을 제거하여 사용자가 모르는 컨텍스트에 텍스트가 없도록 합니다.
이벤트 구조
{
"type": "conversation.item.truncated",
"item_id": "<item_id>",
"content_index": 0,
"audio_end_ms": 0
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 conversation.item.truncated 합니다. |
item_id | string | 잘린 도우미 메시지 항목의 ID입니다. |
content_index | 정수 | 잘린 콘텐츠 파트의 인덱스입니다. |
audio_end_ms | 정수 | 오디오가 잘린 최대 기간(밀리초)입니다. |
RealtimeServerEventError
서버 이벤트는 클라이언트 문제 또는 서버 error
문제일 수 있는 오류가 발생할 때 반환됩니다. 대부분의 오류는 복구할 수 있으며 세션은 계속 열려 있습니다.
이벤트 구조
{
"type": "error",
"error": {
"code": "<code>",
"message": "<message>",
"param": "<param>",
"event_id": "<event_id>"
}
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 error 합니다. |
error | 개체 | 오류에 대한 세부 정보입니다. 다음 표에서 중첩된 속성을 참조하세요. |
오류 속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 오류의 유형. 예를 들어 "invalid_request_error" 및 "server_error"는 오류 유형입니다. |
코드 | string | 오류 코드(있는 경우)입니다. |
message | string | 사람이 읽을 수 있는 오류 메시지 |
param | string | 오류와 관련된 매개 변수(있는 경우)입니다. |
event_id | string | 해당하는 경우 오류를 발생시킨 클라이언트 이벤트의 ID입니다. |
RealtimeServerEventInputAudioBufferCleared
클라이언트가 이벤트와 함께 input_audio_buffer.clear
입력 오디오 버퍼를 지울 때 서버 input_audio_buffer.cleared
이벤트가 반환됩니다.
이벤트 구조
{
"type": "input_audio_buffer.cleared"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 input_audio_buffer.cleared 합니다. |
RealtimeServerEventInputAudioBufferCommitted
서버 input_audio_buffer.committed
이벤트는 클라이언트 또는 서버 VAD 모드에서 입력 오디오 버퍼가 커밋될 때 반환됩니다. 속성은 item_id
만든 사용자 메시지 항목의 ID입니다. conversation.item.created
따라서 이벤트도 클라이언트로 전송됩니다.
이벤트 구조
{
"type": "input_audio_buffer.committed",
"previous_item_id": "<previous_item_id>",
"item_id": "<item_id>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 input_audio_buffer.committed 합니다. |
previous_item_id | string | 새 항목이 삽입된 후 이전 항목의 ID입니다. |
item_id | string | 만든 사용자 메시지 항목의 ID입니다. |
RealtimeServerEventInputAudioBufferSpeechStarted
오디오 버퍼에서 server_vad
음성이 검색되면 서버 input_audio_buffer.speech_started
이벤트가 모드로 반환됩니다. 이 이벤트는 오디오가 버퍼에 추가될 때마다 발생할 수 있습니다(음성이 이미 검색되지 않은 경우).
참고 항목
클라이언트는 이 이벤트를 사용하여 오디오 재생을 중단하거나 사용자에게 시각적 피드백을 제공할 수 있습니다.
클라이언트는 음성이 중지될 때 이벤트를 수신 input_audio_buffer.speech_stopped
해야 합니다. 속성은 item_id
음성이 중지 될 때 만든 사용자 메시지 항목의 ID입니다. item_id
클라이언트가 VAD 활성화 중에 오디오 버퍼를 수동으로 커밋하지 않는 한 이벤트에도 포함 input_audio_buffer.speech_stopped
됩니다.
이벤트 구조
{
"type": "input_audio_buffer.speech_started",
"audio_start_ms": 0,
"item_id": "<item_id>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 input_audio_buffer.speech_started 합니다. |
audio_start_ms | 정수 | 음성이 처음 검색되었을 때 세션 중에 버퍼에 기록된 모든 오디오의 시작부터 밀리초입니다. 이 속성은 모델에 전송된 오디오의 시작 부분에 해당하므로 세션에 prefix_padding_ms 구성된 오디오가 포함됩니다. |
item_id | string | 음성이 중지되면 생성된 사용자 메시지 항목의 ID입니다. |
RealtimeServerEventInputAudioBufferSpeechStopped
서버 이벤트는 서버 input_audio_buffer.speech_stopped
가 오디오 버퍼에서 server_vad
음성의 끝을 검색할 때 모드로 반환됩니다.
또한 서버는 오디오 버퍼에서 만든 사용자 메시지 항목과 함께 이벤트를 보냅니 conversation.item.created
다.
이벤트 구조
{
"type": "input_audio_buffer.speech_stopped",
"audio_end_ms": 0,
"item_id": "<item_id>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 input_audio_buffer.speech_stopped 합니다. |
audio_end_ms | 정수 | 음성이 중지될 때 세션이 시작된 후 밀리초입니다. 이 속성은 모델에 전송된 오디오의 끝에 해당하므로 세션에 min_silence_duration_ms 구성된 오디오가 포함됩니다. |
item_id | string | 만든 사용자 메시지 항목의 ID입니다. |
RealtimeServerEventRateLimitsUpdated
서버 rate_limits.updated
이벤트는 업데이트된 속도 제한을 나타내기 위해 응답의 시작 부분에서 내보내집니다.
응답이 만들어지면 일부 토큰은 출력 토큰용으로 예약됩니다. 여기에 표시된 속도 제한은 해당 예약을 반영하며 응답이 완료되면 그에 따라 조정됩니다.
이벤트 구조
{
"type": "rate_limits.updated",
"rate_limits": [
{
"name": "<name>",
"limit": 0,
"remaining": 0,
"reset_seconds": 0
}
]
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 rate_limits.updated 합니다. |
rate_limits | RealtimeServerEventRateLimitsUpdatedRateLimitsItem의 배열 | 속도 제한 정보 목록입니다. |
RealtimeServerEventResponseAudioDelta
모델 생성 오디오가 업데이트되면 서버 response.audio.delta
이벤트가 반환됩니다.
이벤트 구조
{
"type": "response.audio.delta",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"delta": "<delta>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.audio.delta 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
content_index | 정수 | 항목의 콘텐츠 배열에 있는 콘텐츠 파트의 인덱스입니다. |
delta | string | Base64로 인코딩된 오디오 데이터 델타입니다. |
RealtimeServerEventResponseAudioDone
모델 생성 오디오가 완료되면 서버 response.audio.done
이벤트가 반환됩니다.
응답이 중단되거나 불완전하거나 취소될 때도 이 이벤트가 반환됩니다.
이벤트 구조
{
"type": "response.audio.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.audio.done 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
content_index | 정수 | 항목의 콘텐츠 배열에 있는 콘텐츠 파트의 인덱스입니다. |
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>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.audio_transcript.delta 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
content_index | 정수 | 항목의 콘텐츠 배열에 있는 콘텐츠 파트의 인덱스입니다. |
delta | string | 대본 델타입니다. |
RealtimeServerEventResponseAudioTranscriptDone
오디오 출력의 모델 생성 전사가 스트리밍을 완료하면 서버 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>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.audio_transcript.done 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
content_index | 정수 | 항목의 콘텐츠 배열에 있는 콘텐츠 파트의 인덱스입니다. |
대본 | string | 오디오의 마지막 대본입니다. |
RealtimeServerEventResponseContentPartAdded
응답 생성 중에 새 콘텐츠 파트가 도우미 메시지 항목에 추가되면 서버 response.content_part.added
이벤트가 반환됩니다.
이벤트 구조
{
"type": "response.content_part.added",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.content_part.added 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 콘텐츠 파트가 추가된 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
content_index | 정수 | 항목의 콘텐츠 배열에 있는 콘텐츠 파트의 인덱스입니다. |
part | RealtimeContentPart | 추가된 콘텐츠 부분입니다. |
파트 속성
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeContentPartType |
RealtimeServerEventResponseContentPartDone
서버 response.content_part.done
이벤트는 콘텐츠 파트가 도우미 메시지 항목에서 스트리밍을 완료할 때 반환됩니다.
응답이 중단되거나 불완전하거나 취소될 때도 이 이벤트가 반환됩니다.
이벤트 구조
{
"type": "response.content_part.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.content_part.done 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
content_index | 정수 | 항목의 콘텐츠 배열에 있는 콘텐츠 파트의 인덱스입니다. |
part | RealtimeContentPart | 완료된 콘텐츠 부분입니다. |
파트 속성
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeContentPartType |
RealtimeServerEventResponseCreated
서버 response.created
이벤트는 새 응답을 만들 때 반환됩니다. 응답이 초기 상태인 응답 생성의 in_progress
첫 번째 이벤트입니다.
이벤트 구조
{
"type": "response.created"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.created 합니다. |
응답 | RealtimeResponse | 응답 개체입니다. |
RealtimeServerEventResponseDone
응답이 스트리밍을 완료하면 서버 response.done
이벤트가 반환됩니다. 이 이벤트는 최종 상태에 관계없이 항상 내보내집니다. 이벤트에 포함된 응답 개체는 응답의 response.done
모든 출력 항목을 포함하지만 원시 오디오 데이터는 생략합니다.
이벤트 구조
{
"type": "response.done"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.done 합니다. |
응답 | RealtimeResponse | 응답 개체입니다. |
RealtimeServerEventResponseFunctionCallArgumentsDelta
모델 생성 함수 호출 인수가 업데이트되면 서버 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>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.function_call_arguments.delta 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 함수 호출 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
call_id | string | 함수 호출의 ID입니다. |
delta | string | 인수 델타를 JSON 문자열로 사용합니다. |
RealtimeServerEventResponseFunctionCallArgumentsDone
모델 생성 함수 호출 인수가 스트리밍을 완료하면 서버 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>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.function_call_arguments.done 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 함수 호출 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
call_id | string | 함수 호출의 ID입니다. |
arguments | string | JSON 문자열로 사용되는 마지막 인수입니다. |
RealtimeServerEventResponseOutputItemAdded
서버 response.output_item.added
이벤트는 응답 생성 중에 새 항목이 만들어지면 반환됩니다.
이벤트 구조
{
"type": "response.output_item.added",
"response_id": "<response_id>",
"output_index": 0
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.output_item.added 합니다. |
response_id | string | 항목이 속한 응답의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
item | RealtimeConversationResponseItem | 추가된 항목입니다. |
RealtimeServerEventResponseOutputItemDone
항목 스트리밍이 완료되면 서버 response.output_item.done
이벤트가 반환됩니다.
응답이 중단되거나 불완전하거나 취소될 때도 이 이벤트가 반환됩니다.
이벤트 구조
{
"type": "response.output_item.done",
"response_id": "<response_id>",
"output_index": 0
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.output_item.done 합니다. |
response_id | string | 항목이 속한 응답의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
item | 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>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.text.delta 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
content_index | 정수 | 항목의 콘텐츠 배열에 있는 콘텐츠 파트의 인덱스입니다. |
delta | string | 텍스트 델타입니다. |
RealtimeServerEventResponseTextDone
모델 생성 텍스트 스트리밍이 완료되면 서버 response.text.done
이벤트가 반환됩니다. 텍스트는 도우미 메시지 항목의 text
콘텐츠 부분에 해당합니다.
응답이 중단되거나 불완전하거나 취소될 때도 이 이벤트가 반환됩니다.
이벤트 구조
{
"type": "response.text.done",
"response_id": "<response_id>",
"item_id": "<item_id>",
"output_index": 0,
"content_index": 0,
"text": "<text>"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 response.text.done 합니다. |
response_id | string | 응답의 ID입니다. |
item_id | string | 항목의 ID입니다. |
output_index | 정수 | 응답에 있는 출력 항목의 인덱스입니다. |
content_index | 정수 | 항목의 콘텐츠 배열에 있는 콘텐츠 파트의 인덱스입니다. |
text | string | 최종 텍스트 콘텐츠입니다. |
RealtimeServerEventSessionCreated
서버 session.created
이벤트는 실시간 API에 대한 새 연결을 설정할 때 첫 번째 서버 이벤트입니다. 이 이벤트는 기본 세션 구성을 사용하여 새 세션을 만들고 반환합니다.
이벤트 구조
{
"type": "session.created"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 session.created 합니다. |
session | RealtimeResponseSession | 세션 개체입니다. |
RealtimeServerEventSessionUpdated
클라이언트에서 세션을 업데이트할 때 서버 session.updated
이벤트가 반환됩니다. 오류가 발생하면 서버에서 대신 이벤트를 보냅니다 error
.
이벤트 구조
{
"type": "session.updated"
}
속성
필드 | 형식 | 설명 |
---|---|---|
type | string | 이벤트 유형은 .이어야 session.updated 합니다. |
session | RealtimeResponseSession | 세션 개체입니다. |
구성 요소
RealtimeAudioFormat
허용되는 값:
pcm16
g711_ulaw
g711_alaw
RealtimeAudioInputTranscriptionModel
허용되는 값:
whisper-1
RealtimeAudioInputTranscriptionSettings
필드 | 형식 | 설명 |
---|---|---|
model | RealtimeAudioInputTranscriptionModel | 기본 whisper-1 모델은 현재 오디오 입력 전사에 지원되는 유일한 모델입니다. |
RealtimeClientEvent
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeClientEventType | 클라이언트 이벤트의 형식입니다. |
event_id | string | 이벤트의 고유 ID입니다. |
RealtimeClientEventType
허용되는 값:
session.update
input_audio_buffer.append
input_audio_buffer.commit
input_audio_buffer.clear
conversation.item.create
conversation.item.delete
conversation.item.truncate
response.create
response.cancel
RealtimeContentPart
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeContentPartType | 콘텐츠 부분의 형식입니다. |
RealtimeContentPartType
허용되는 값:
input_text
input_audio
text
audio
RealtimeConversationItemBase
대화에 추가할 항목입니다.
RealtimeConversationRequestItem
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeItemType | 항목의 형식입니다. |
id | string | 항목의 고유 ID입니다. |
RealtimeConversationResponseItem
필드 | 형식 | 설명 |
---|---|---|
개체 | string | 대화 응답 항목입니다. 허용되는 값: realtime.item |
type | RealtimeItemType | 항목의 형식입니다. |
id | string | 항목의 고유 ID입니다. 이 속성은 null을 허용합니다. |
RealtimeFunctionTool
실시간 엔드포인트에서 사용하는 함수 도구의 정의입니다.
필드 | 형식 | 설명 |
---|---|---|
type | string | 도구의 형식입니다. 허용되는 값: function |
name | string | 함수의 이름. |
description | string | 함수에 대한 설명입니다. |
매개 변수 | 개체 | 함수의 매개 변수입니다. |
RealtimeItemStatus
허용되는 값:
in_progress
completed
incomplete
RealtimeItemType
허용되는 값:
message
function_call
function_call_output
RealtimeMessageRole
허용되는 값:
system
user
assistant
RealtimeRequestAssistantMessageItem
필드 | 형식 | 설명 |
---|---|---|
역할(role) | string | 메시지의 역할입니다. 허용되는 값: assistant |
content | RealtimeRequestTextContentPart의 배열 | 메시지의 내용입니다. |
RealtimeRequestAudioContentPart
필드 | 형식 | 설명 |
---|---|---|
type | string | 콘텐츠 부분의 형식입니다. 허용되는 값: input_audio |
대본 | string | 오디오의 대본입니다. |
RealtimeRequestFunctionCallItem
필드 | 형식 | 설명 |
---|---|---|
type | string | 항목의 형식입니다. 허용되는 값: function_call |
name | string | 함수 호출 항목의 이름입니다. |
call_id | string | 함수 호출 항목의 ID입니다. |
arguments | string | 함수 호출 항목의 인수입니다. |
status | RealtimeItemStatus | 품목의 상태입니다. |
RealtimeRequestFunctionCallOutputItem
필드 | 형식 | 설명 |
---|---|---|
type | string | 항목의 형식입니다. 허용되는 값: function_call_output |
call_id | string | 함수 호출 항목의 ID입니다. |
output | string | 함수 호출 항목의 출력입니다. |
RealtimeRequestMessageItem
필드 | 형식 | 설명 |
---|---|---|
type | string | 항목의 형식입니다. 허용되는 값: message |
역할(role) | RealtimeMessageRole | 메시지의 역할입니다. |
status | RealtimeItemStatus | 품목의 상태입니다. |
RealtimeRequestMessageReferenceItem
필드 | 형식 | 설명 |
---|---|---|
type | string | 항목의 형식입니다. 허용되는 값: message |
id | string | 메시지 항목의 ID입니다. |
RealtimeRequestSession
필드 | 형식 | 설명 |
---|---|---|
형식 | 배열 | 세션에서 지원하는 형식입니다. 허용되는 값: text , audio 예를 들어 "modalities": ["text", "audio"] 텍스트 및 오디오 형식을 모두 사용하도록 설정하는 기본 설정입니다. 텍스트만 사용하려면 .를 설정합니다 "modalities": ["text"] . 오디오만 사용하도록 설정할 수 없습니다. |
지침 | string | 모델의 텍스트 및 오디오 응답을 안내하는 지침(시스템 메시지)입니다. 다음은 텍스트 및 오디오 응답의 콘텐츠 및 형식을 안내하는 데 도움이 되는 몇 가지 예제 지침입니다. "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" 모델이 항상 이러한 지침을 따르는 것은 아니지만 원하는 동작에 대한 지침을 제공합니다. |
voice | RealtimeVoice | 세션의 모델 응답에 사용되는 음성입니다. 모델의 오디오 응답에 대한 세션에서 음성이 사용되면 변경할 수 없습니다. |
input_audio_format | RealtimeAudioFormat | 입력 오디오의 형식입니다. |
output_audio_format | RealtimeAudioFormat | 출력 오디오의 형식입니다. |
input_audio_transcription | RealtimeAudioInputTranscriptionSettings | 오디오 입력 전사에 대한 설정입니다. 이 속성은 null을 허용합니다. |
turn_detection | RealtimeTurnDetection | 세션에 대한 턴 검색 설정입니다. 이 속성은 null을 허용합니다. |
tools | RealtimeTool의 배열 | 세션의 모델에 사용할 수 있는 도구입니다. |
tool_choice | 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" 입니다. |
RealtimeRequestSystemMessageItem
필드 | 형식 | 설명 |
---|---|---|
역할(role) | string | 메시지의 역할입니다. 허용되는 값: system |
content | RealtimeRequestTextContentPart의 배열 | 메시지의 내용입니다. |
RealtimeRequestTextContentPart
필드 | 형식 | 설명 |
---|---|---|
type | string | 콘텐츠 부분의 형식입니다. 허용되는 값: input_text |
text | string | 텍스트 내용입니다. |
RealtimeRequestUserMessageItem
필드 | 형식 | 설명 |
---|---|---|
역할(role) | string | 메시지의 역할입니다. 허용되는 값: user |
content | RealtimeRequestTextContentPart 또는 RealtimeRequestAudioContentPart의 배열 | 메시지의 내용입니다. |
RealtimeResponse
필드 | 형식 | 설명 |
---|---|---|
개체 | string | 응답 개체입니다. 허용되는 값: realtime.response |
id | string | 응답의 고유 ID입니다. |
status | RealtimeResponseStatus | 응답의 상태입니다. 기본 상태 값은 .입니다 in_progress . |
status_details | RealtimeResponseStatusDetails | 응답 상태의 세부 정보입니다. 이 속성은 null을 허용합니다. |
output | RealtimeConversationResponseItem 배열 | 응답의 출력 항목입니다. |
사용량 | 개체 | 응답에 대한 사용 통계입니다. 각 실시간 API 세션은 대화 컨텍스트를 유지하고 대화에 새 항목을 추가합니다. 이전 턴(텍스트 및 오디오 토큰)의 출력은 이후 턴에 대한 입력입니다. 다음에 중첩된 속성을 참조하세요. |
+ total_tokens | 정수 | 입력 및 출력 텍스트 및 오디오 토큰을 포함한 응답의 총 토큰 수입니다. 개체의 속성입니다 usage . |
+ input_tokens | 정수 | 텍스트 및 오디오 토큰을 포함하여 응답에 사용되는 입력 토큰의 수입니다. 개체의 속성입니다 usage . |
+ output_tokens | 정수 | 텍스트 및 오디오 토큰을 포함하여 응답에서 전송된 출력 토큰의 수입니다. 개체의 속성입니다 usage . |
+ input_token_details | 개체 | 응답에 사용되는 입력 토큰에 대한 세부 정보입니다. 개체의 속성입니다 usage .br> 다음에 중첩된 속성을 참조하세요. |
+ cached_tokens | 정수 | 응답에 사용된 캐시된 토큰의 수입니다. 개체의 속성입니다 input_token_details . |
+ text_tokens | 정수 | 응답에 사용된 텍스트 토큰의 수입니다. 개체의 속성입니다 input_token_details . |
+ audio_tokens | 정수 | 응답에 사용된 오디오 토큰의 수입니다. 개체의 속성입니다 input_token_details . |
+ output_token_details | 개체 | 응답에 사용되는 출력 토큰에 대한 세부 정보입니다. 개체의 속성입니다 usage .다음에 중첩된 속성을 참조하세요. |
+ text_tokens | 정수 | 응답에 사용된 텍스트 토큰의 수입니다. 개체의 속성입니다 output_token_details . |
+ audio_tokens | 정수 | 응답에 사용된 오디오 토큰의 수입니다. 개체의 속성입니다 output_token_details . |
RealtimeResponseAudioContentPart
필드 | 형식 | 설명 |
---|---|---|
type | string | 콘텐츠 부분의 형식입니다. 허용되는 값: audio |
대본 | string | 오디오의 대본입니다. 이 속성은 null을 허용합니다. |
RealtimeResponseBase
응답 리소스입니다.
RealtimeResponseFunctionCallItem
필드 | 형식 | 설명 |
---|---|---|
type | string | 항목의 형식입니다. 허용되는 값: function_call |
name | string | 함수 호출 항목의 이름입니다. |
call_id | string | 함수 호출 항목의 ID입니다. |
arguments | string | 함수 호출 항목의 인수입니다. |
status | RealtimeItemStatus | 품목의 상태입니다. |
RealtimeResponseFunctionCallOutputItem
필드 | 형식 | 설명 |
---|---|---|
type | string | 항목의 형식입니다. 허용되는 값: function_call_output |
call_id | string | 함수 호출 항목의 ID입니다. |
output | string | 함수 호출 항목의 출력입니다. |
RealtimeResponseMessageItem
필드 | 형식 | 설명 |
---|---|---|
type | string | 항목의 형식입니다. 허용되는 값: message |
역할(role) | RealtimeMessageRole | 메시지의 역할입니다. |
content | 배열 | 메시지의 내용입니다. 배열 항목: RealtimeResponseTextContentPart |
status | RealtimeItemStatus | 품목의 상태입니다. |
RealtimeResponseOptions
필드 | 형식 | 설명 |
---|---|---|
형식 | 배열 | 세션에서 지원하는 형식입니다. 허용되는 값: text , audio 예를 들어 "modalities": ["text", "audio"] 텍스트 및 오디오 형식을 모두 사용하도록 설정하는 기본 설정입니다. 텍스트만 사용하려면 .를 설정합니다 "modalities": ["text"] . 오디오만 사용하도록 설정할 수 없습니다. |
지침 | string | 모델의 텍스트 및 오디오 응답을 안내하는 지침(시스템 메시지)입니다. 다음은 텍스트 및 오디오 응답의 콘텐츠 및 형식을 안내하는 데 도움이 되는 몇 가지 예제 지침입니다. "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" 모델이 항상 이러한 지침을 따르는 것은 아니지만 원하는 동작에 대한 지침을 제공합니다. |
voice | RealtimeVoice | 세션의 모델 응답에 사용되는 음성입니다. 모델의 오디오 응답에 대한 세션에서 음성이 사용되면 변경할 수 없습니다. |
output_audio_format | RealtimeAudioFormat | 출력 오디오의 형식입니다. |
tools | RealtimeTool의 배열 | 세션의 모델에 사용할 수 있는 도구입니다. |
tool_choice | 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" 입니다. |
RealtimeResponseSession
필드 | 형식 | 설명 |
---|---|---|
개체 | string | 세션 개체입니다. 허용되는 값: realtime.session |
id | string | 세션의 고유 ID입니다. |
model | string | 세션에 사용되는 모델입니다. |
형식 | 배열 | 세션에서 지원하는 형식입니다. 허용되는 값: text , audio 예를 들어 "modalities": ["text", "audio"] 텍스트 및 오디오 형식을 모두 사용하도록 설정하는 기본 설정입니다. 텍스트만 사용하려면 .를 설정합니다 "modalities": ["text"] . 오디오만 사용하도록 설정할 수 없습니다. |
지침 | string | 모델의 텍스트 및 오디오 응답을 안내하는 지침(시스템 메시지)입니다. 다음은 텍스트 및 오디오 응답의 콘텐츠 및 형식을 안내하는 데 도움이 되는 몇 가지 예제 지침입니다. "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" 모델이 항상 이러한 지침을 따르는 것은 아니지만 원하는 동작에 대한 지침을 제공합니다. |
voice | RealtimeVoice | 세션의 모델 응답에 사용되는 음성입니다. 모델의 오디오 응답에 대한 세션에서 음성이 사용되면 변경할 수 없습니다. |
input_audio_format | RealtimeAudioFormat | 입력 오디오의 형식입니다. |
output_audio_format | RealtimeAudioFormat | 출력 오디오의 형식입니다. |
input_audio_transcription | RealtimeAudioInputTranscriptionSettings | 오디오 입력 전사에 대한 설정입니다. 이 속성은 null을 허용합니다. |
turn_detection | RealtimeTurnDetection | 세션에 대한 턴 검색 설정입니다. 이 속성은 null을 허용합니다. |
tools | RealtimeTool의 배열 | 세션의 모델에 사용할 수 있는 도구입니다. |
tool_choice | 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" . |
RealtimeResponseStatus
허용되는 값:
in_progress
completed
cancelled
incomplete
failed
RealtimeResponseStatusDetails
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeResponseStatus | 응답의 상태입니다. |
RealtimeResponseTextContentPart
필드 | 형식 | 설명 |
---|---|---|
type | string | 콘텐츠 부분의 형식입니다. 허용되는 값: text |
text | string | 텍스트 내용입니다. |
RealtimeServerEvent
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeServerEventType | 서버 이벤트의 형식입니다. |
event_id | string | 이벤트의 고유 ID입니다. |
RealtimeServerEventRateLimitsUpdatedRateLimitsItem
필드 | 형식 | Description |
---|---|---|
이름 | string | 이 항목에 대한 정보가 포함된 속도 제한 속성 이름입니다. |
limit | 정수 | 이 속도 제한 속성에 대해 구성된 최대 제한입니다. |
남음 | 정수 | 이 속도 제한 속성에 대해 구성된 제한에 대해 사용할 수 있는 나머지 할당량입니다. |
reset_seconds | 번호 | 이 속도 제한 속성이 다시 설정될 때까지 남은 시간(초)입니다. |
RealtimeServerEventType
허용되는 값:
session.created
session.updated
conversation.created
conversation.item.created
conversation.item.deleted
conversation.item.truncated
response.created
response.done
rate_limits.updated
response.output_item.added
response.output_item.done
response.content_part.added
response.content_part.done
response.audio.delta
response.audio.done
response.audio_transcript.delta
response.audio_transcript.done
response.text.delta
response.text.done
response.function_call_arguments.delta
response.function_call_arguments.done
input_audio_buffer.speech_started
input_audio_buffer.speech_stopped
conversation.item.input_audio_transcription.completed
conversation.item.input_audio_transcription.failed
input_audio_buffer.committed
input_audio_buffer.cleared
error
RealtimeServerVadTurnDetection
필드 | 형식 | 설명 |
---|---|---|
type | string | 턴 검색 유형입니다. 허용되는 값: server_vad |
threshold | 번호 | 서버 VAD 턴 검색에 대한 활성화 임계값입니다. 시끄러운 환경에서는 가양성 방지를 위해 임계값을 늘려야 할 수 있습니다. 조용한 환경에서는 거짓 부정을 방지하기 위해 임계값을 줄이어야 할 수 있습니다. 기본값은 0.5 입니다. 임계값을 사이의 0.0 값으로 설정할 수 있습니다 1.0 . |
prefix_padding_ms | string | 감지된 음성이 시작되기 전에 포함할 음성 오디오의 기간(밀리초)입니다. 기본값은 300 입니다. |
silence_duration_ms | string | 음성의 끝을 감지하는 무음 기간(밀리초)입니다. 가능한 한 빨리 음성의 끝을 감지하려고 하지만 연설의 마지막 부분을 차단하지 않도록 너무 빨리 하지 않으려고 합니다. 이 값을 더 낮은 숫자로 설정하면 모델이 더 빠르게 응답하지만 음성의 마지막 부분이 끊어질 수 있습니다. 이 값을 더 높은 숫자로 설정하면 모델은 음성 종료를 감지하는 데 더 오래 기다리지만 응답하는 데 시간이 더 오래 걸릴 수 있습니다. |
RealtimeSessionBase
실시간 세션 개체 구성입니다.
RealtimeTool
실시간 도구 정의의 기본 표현입니다.
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeToolType | 도구의 형식입니다. |
RealtimeToolChoice
실시간 tool_choice 매개 변수에 사용할 수 있는 표현 집합으로, 'auto'와 같은 문자열 리터럴 옵션과 정의된 도구에 대한 구조적 참조를 모두 포함합니다.
RealtimeToolChoiceFunctionObject
명명된 함수 도구를 선택하는 tool_choice 실시간 표현입니다.
필드 | 형식 | 설명 |
---|---|---|
type | string | tool_choice 형식입니다. 허용되는 값: function |
function | 개체 | 선택할 함수 도구입니다. 다음에 중첩된 속성을 참조하세요. |
+ 이름 | string | 함수 도구의 이름입니다. 개체의 속성입니다 function . |
RealtimeToolChoiceLiteral
실시간 엔드포인트에 사용할 수 있는 모드 수준 문자열 리터럴 tool_choice 옵션 집합입니다.
허용되는 값:
auto
none
required
RealtimeToolChoiceObject
명명된 도구를 선택하는 tool_choice 실시간에 대한 기본 표현입니다.
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeToolType | tool_choice 형식입니다. |
RealtimeToolType
실시간 도구에 대해 지원되는 도구 유형 판별자입니다. 현재는 'function' 도구만 지원됩니다.
허용되는 값:
function
RealtimeTurnDetection
필드 | 형식 | 설명 |
---|---|---|
type | RealtimeTurnDetectionType | 턴 검색 유형입니다. 허용되는 값: server_vad |
RealtimeTurnDetectionType
허용되는 값:
server_vad
RealtimeVoice
허용되는 값:
alloy
shimmer
echo
관련 콘텐츠
- 실시간 API 빠른 시작을 시작 합니다.
- 실시간 API를 사용하는 방법에 대해 자세히 알아봅니다.