다음을 통해 공유


WebSocket을 통해 GPT-4o 실시간 API를 사용하는 방법(미리 보기)

비고

이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

음성 및 오디오용 Azure OpenAI GPT-4o 실시간 API는 짧은 대기 시간, "음성 출력, 음성 출력" 대화형 상호 작용을 지원하는 GPT-4o 모델 제품군의 일부입니다.

WebRTC 또는 WebSocket을 통해 실시간 API를 사용하여 모델에 오디오 입력을 보내고 실시간으로 오디오 응답을 받을 수 있습니다.

이 문서의 지침에 따라 WebSockets를 통해 실시간 API를 시작합니다. 짧은 대기 시간이 필요하지 않은 서버 간 시나리오에서 WebSocket을 통해 실시간 API를 사용합니다.

팁 (조언)

대부분의 경우 웹 애플리케이션 또는 모바일 앱과 같은 클라이언트 쪽 애플리케이션에서 실시간 오디오 스트리밍을 위해 WebRTC를 통해 실시간 API 를 사용하는 것이 좋습니다. WebRTC는 짧은 대기 시간, 실시간 오디오 스트리밍을 위해 설계되었으며 대부분의 사용 사례에 가장 적합합니다.

지원되는 모델

GPT-4o 실시간 모델은 미국 동부 2 및 스웨덴 중부 지역에서 글로벌 배포에 사용할 수 있습니다.

  • gpt-4o-mini-realtime-preview (2024-12-17)
  • gpt-4o-realtime-preview (2024-12-17)

실시간 API에 대한 URL에서 API 버전을 2025-04-01-preview 사용해야 합니다.

지원되는 모델에 대한 자세한 내용은 모델 및 버전 설명서를 참조하세요.

필수 조건

GPT-4o 실시간 오디오를 사용하려면 다음이 필요합니다.

연결 및 인증

실시간 API(통해/realtime)는 최종 사용자와 모델 간의 완전한 비동기 스트리밍 통신을 용이하게 하기 위해 WebSockets API를 기반으로 합니다.

실시간 API는 Azure OpenAI 리소스의 엔드포인트에 /realtime 대한 보안 WebSocket 연결을 통해 액세스됩니다.

다음을 연결하여 전체 요청 URI를 생성할 수 있습니다.

  • 보안 WebSocket(wss://) 프로토콜입니다.
  • Azure OpenAI 리소스 엔드포인트 호스트 이름(예: my-aoai-resource.openai.azure.com
  • API 경로입니다 openai/realtime .
  • 지원 api-version 되는 API 버전에 대한 쿼리 문자열 매개 변수(예: ) 2024-12-17
  • deployment 사용자 또는 gpt-4o-realtime-preview 모델 배포의 gpt-4o-mini-realtime-preview 이름을 가진 쿼리 문자열 매개 변수입니다.

다음 예제는 잘 구성된 /realtime 요청 URI입니다.

wss://my-eastus2-openai-resource.openai.azure.com/openai/realtime?api-version=2025-04-01-preview&deployment=gpt-4o-mini-realtime-preview-deployment-name

인증하려면 다음을 수행합니다.

  • Microsoft Entra (권장): 관리 ID를 사용하도록 설정된 Azure OpenAI 리소스에 대한 API로 토큰 기반 인증 /realtime 을 사용합니다. 헤더가 있는 토큰을 사용하여 Bearer 검색된 인증 토큰을 적용합니다 Authorization .
  • API 키: 다음 api-key 두 가지 방법 중 하나로 제공할 수 있습니다.
    • 프리핸드셰이 api-key 크 연결에서 연결 헤더 사용 이 옵션은 브라우저 환경에서 사용할 수 없습니다.
    • 요청 URI에서 api-key 쿼리 문자열 매개 변수 사용 쿼리 문자열 매개 변수는 https/wss를 사용할 때 암호화됩니다.

WebSockets 아키텍처를 통한 실시간 API

WebSocket 연결 세션 /realtime 이 설정되고 인증되면 WebSocket 메시지를 보내고 받기 위한 이벤트를 통해 기능 상호 작용이 이루어집니다. 이러한 이벤트는 각각 JSON 개체의 형태를 취합니다.

실시간 API 인증 및 연결 시퀀스의 다이어그램

이벤트를 병렬로 보내고 받을 수 있으며 애플리케이션은 일반적으로 동시에 비동기적으로 처리해야 합니다.

  • 클라이언트 쪽 호출자는 새 /realtime연결을 시작하는 연결을 session설정합니다.
  • A는 session 자동으로 기본값 conversation을 만듭니다. 여러 동시 대화는 지원되지 않습니다.
  • conversation 호출자가 직접 이벤트를 통해 또는 자동으로 VAD(음성 활동 감지)를 통해 시작될 때까지 response 입력 신호를 누적합니다.
  • 각각 response 은 메시지, 함수 호출 및 기타 정보를 캡슐화할 수 있는 하나 이상의 items정보로 구성됩니다.
  • 각 메시지에 itemcontent_part단일 항목에서 여러 형식(텍스트 및 오디오)을 나타낼 수 있습니다.
  • session 호출자 입력 처리(예: 사용자 오디오) 및 일반적인 출력 생성 처리의 구성을 관리합니다.
  • 각 호출자 시작은 response.create 원하는 경우 일부 출력 response 동작을 재정의할 수 있습니다.
  • 서버에서 만든 item 메시지와 content_part in 메시지는 비동기적으로 병렬로 채울 수 있습니다. 예를 들어 라운드 로빈 방식으로 오디오, 텍스트 및 함수 정보를 동시에 수신합니다.

빠른 시작 시도

이제 필수 구성 요소가 있으므로 Realtime API 빠른 시작 의 지침에 따라 WebSockets를 통해 실시간 API를 시작할 수 있습니다.