기술 주변기기 일체 포함 Openai Realtime API : 예제가있는 안내서

Openai Realtime API : 예제가있는 안내서

Mar 03, 2025 am 10:38 AM

새로 소개 된 OpenAi 실시간 API를 통해 빠른 속도의 저렴한 멀티 모달 경험을 응용 프로그램에 통합 할 수 있습니다. 이 API를 사용하면 사용자와 대형 언어 모델 (LLMS) 간의 원활한 음성 음성 상호 작용을 만들 수 있습니다. 이 API는 하나의 통합 API에서 완전한 솔루션을 제공하므로 음성 중심 경험을 달성하기 위해 여러 모델이 필요하지 않습니다. 그것은 대기 시간을 줄이는 것을 목표로 할뿐만 아니라 감정적 뉘앙스와 대화의 자연스러운 흐름을 유지합니다.

. 이 기사에서는 OpenAi 실시간 API를 사용하여 음성 제어 AI 조수를 구축하는 방법을 배웁니다. Node.js를 사용하여 지속적인 WebSocket 연결을 만들고 터미널 내에서 사용하여 API와 통신하는 방법을 생성합니다. 또한이 API의 기능을 사용하는 React 앱 배포를 안내합니다. WebSockets와 함께 실시간 API를 사용하는

우리는 node.js를 사용하므로 컴퓨터에 설치해야합니다. 그렇지 않은 경우 공식 웹 사이트에서 Node.js를 다운로드하여 설치할 수 있습니다. 스크립트 초기화

를 따라 가려면 위에서 만든 .env 파일로 폴더를 만드는 것이 좋습니다. 해당 폴더 내부에서 다음 명령을 실행하여 스크립트를 초기화합니다.

이 명령이 완료되면이 파일은 폴더 내부에 있어야합니다.

의존성 설치 두 개의 패키지를 설치하여 시작하십시오

WS : 이것은 API와 상호 작용하는 데 필요한 메인 패키지 인 WebSocket 패키지입니다. <: :> dotenv : .env 파일에서 API 키를로드하는 유틸리티 패키지.

명령을 실행하여 이들을 설치하십시오

실시간 api 에 연결 실시간 API와의 연결을 시작하려면 API URL을 전달하는 새 WebSocket 객체를 만듭니다.

연결이 열리면 조치를 설정합니다 위의 코드는 API에 대한 웹 소켓 연결을 생성하지만 아직 아무것도하지 않습니다. 웨이브 톱니를 사용하면 일부 이벤트가 발생할 때 실행할 작업을 설정할 수 있습니다. Open 이벤트를 사용하여 연결이 설정되면 실행하려는 일부 코드를 지정할 수 있습니다.이벤트 리스너를 추가하려는 일반 구문은 다음과 같습니다.

교체 & lt; event & gt; 이벤트의 이름을 포함하는 문자열 및 & lt; function & gt; 이벤트가 발생할 때 함수가 실행됩니다. 
npm init -y && touch index.js
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
연결이 준비되면 텍스트를 표시하는 방법은 다음과 같습니다.

이 코드를 실행하려면 다음 명령을 사용합니다

API 키가 올바르게 설정되면 터미널에 "연결이 열린"메시지가 표시됩니다. 연결이 여전히 열려 있으므로 스크립트가 계속 실행되므로 수동으로 중지해야합니다.

메시지가 수신 될 때 조치를 설정합니다 WebSockets를 사용할 때 응답 할 수있는 또 다른 이벤트는 메시지 이벤트입니다. 이것은 서버에서 메시지를 수신 할 때마다 트리거됩니다. 수신 된 각 메시지를 표시하는 함수를 추가하겠습니다

스크립트를 실행하면 세션도 표시해야합니다. 세션이 초기화 될 때 API가 전송하는 이벤트가 표시됩니다. 다른 WebSocket 이벤트
npm install ws dotenv
로그인 후 복사
로그인 후 복사
로그인 후 복사
위의 우리는 이벤트 리스너를 Open 및 메시지 이벤트에 추가하는 방법을 배웠습니다. Websockets는 예에서 사용할 수없는 두 가지 추가 이벤트를 지원합니다.

닫기 이벤트는 소켓을 닫을 때 콜백을 추가하는 데 사용될 수 있습니다.

오류 이벤트는 오류가있을 때 콜백을 추가하는 데 사용됩니다.
// Import the web socket library
const WebSocket = require("ws");
// Load the .env file into memory so the code has access to the key
const dotenv = require("dotenv");
dotenv.config();
function main() {
  // Connect to the API
  const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01";
  const ws = new WebSocket(url, {
      headers: {
          "Authorization": "Bearer " + process.env.OPENAI_API_KEY,
          "OpenAI-Beta": "realtime=v1",
      },
  });
}
main();
로그인 후 복사
로그인 후 복사
로그인 후 복사
실시간 api 와 의사 소통 WebSockets로 작업하려면 이벤트 중심 방식으로 프로그래밍해야합니다. 메시지는 통신 채널에서 앞뒤로 전송되며 이러한 메시지가 전달되거나 수신되는시기를 제어 할 수 없습니다. 

커뮤니케이션을 시작한 코드는 handleOpen () 안에 추가되어야합니다. o 그렇지 않으면 웹 소켓 통신 채널이 생성되기 전에 해당 코드가 실행될 수 있으므로 오류가 발생합니다. 코드 처리 메시지에 대해서도 마찬가지입니다. 모든 논리는 handlemessage () 함수로 들어가야합니다 다가오는 예에서는 다음 코드를 시작점으로 사용하겠습니다. 변경의 대부분은 handleOpen () 및 handlemessage ()를 업데이트하는 것과 관련이 있습니다.

이 이벤트는 API에 텍스트 대화를 시작하려고한다고 말합니다. 이것은 "input_text"유형을 사용하여 컨텐츠 필드에 지정되고 텍스트 프롬프트를 제공합니다. 우리는 ws.send () 메소드를 사용하여 메시지를 보냅니다. 웹 소켓 패키지는 인수로 문자열을 예상하므로 JSON.stringify () 함수를 사용하여 JSON 이벤트를 문자열로 변환해야합니다. 이것들을 합치면 위의 이벤트를 보낼 수있는 방법은 다음과 같습니다.

이것은 대화가 시작되지만 API가 자동으로 응답을 보내도록 트리거하지는 않습니다. 응답을 트리거하려면 응답을 보냅니다. 예는 다음과 같습니다.
npm init -y && touch index.js
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
이 이벤트는 Modalities Response 매개 변수를 사용하여 텍스트 응답을 요청합니다. 지침은 모델이 원하는대로 설명하는 가장 중요한 부분입니다.이 경우 사용자를 돕기위한 일반적인 프롬프트입니다. 우리는이 두 이벤트를 handleOpen () 함수로 보냅니다. 연결이 설정 되 자마자 대화가 시작되도록합니다. 이 예제에서 handleOpen () 함수의 전체 구현은 다음과 같습니다.

수신 메시지와 관련 하여이 예제에 주목할 가치가있는 세 가지 유형의 이벤트가 있습니다. response.text.delta, response.text.done 및 response.done 이벤트 :

response.text.delta 이벤트에는 델타 필드의 청크로 분류 된 응답이 포함되어 있습니다. 그들은 우리가 실시간 경험을 제공하기를 원할 때 중요합니다. 그들은 우리가 청크를 바로 스트리밍 할 수 있기 때문입니다. 
npm install ws dotenv
로그인 후 복사
로그인 후 복사
로그인 후 복사
response.text.done 이벤트는 텍스트 응답의 끝을 표시하고 텍스트 필드에 전체 답변을 포함합니다. 응답. 이벤트는 응답의 끝을 표시합니다

handlemessage () 함수의 스위치 문을 사용하여 스크립트가 이러한 이벤트에 응답하려는 방법을 지정할 수 있습니다.

이 예에서는 응답 .text.delta 이벤트를 사용하여 콘솔을받을 때 콘솔에 대한 응답 덩어리를 인쇄합니다. 응답이 완료되면 response.text.done 이벤트가 트리거되고 출력이 완료되었음을 보여주기 위해 새로운 줄을 인쇄합니다. 마지막으로 응답을 받으면 웹 소켓을 닫습니다. 이 예제를 실행하려면이 기능을 위의 템플릿 코드에 붙여 넣고 명령으로 실행합니다.

이것은 터미널에서 프롬프트에 대한 응답을 생성합니다. "한 문장으로 웹 소켓이 무엇인지 설명하십시오." 

// Import the web socket library
const WebSocket = require("ws");
// Load the .env file into memory so the code has access to the key
const dotenv = require("dotenv");
dotenv.config();
function main() {
  // Connect to the API
  const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01";
  const ws = new WebSocket(url, {
      headers: {
          "Authorization": "Bearer " + process.env.OPENAI_API_KEY,
          "OpenAI-Beta": "realtime=v1",
      },
  });
}
main();
로그인 후 복사
로그인 후 복사
로그인 후 복사
텍스트 예제의 전체 코드는 여기에서 확인할 수 있습니다. 실시간 API를 사용하여 오디오를 보내고 수신합니다 이전 예제는 텍스트 데이터를 처리하는 방법을 보여주었습니다. 그러나 실시간 API에 대한 실질적인 관심은 실시간으로 대답하는 음성 어시스턴트를 만드는 것입니다. 오디오 데이터 처리는 텍스트 데이터를 다루는 것보다 약간 더 복잡합니다. 우리는이 기사의 주요 주제에서 우리를 산만하게 할 때 오디오가 어떻게 작동하는지에 따른 몇 가지 세부 사항을 건너 뛸 것입니다. 먼저, 우리는 두 개의 패키지를 설치합니다 :
npm init -y && touch index.js
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
    node-record-lpcm16 음성 프롬프트를 보낼 수 있도록 마이크에서 사운드를 기록합니다. 스피커는 AI 음성 응답을 재생하는 데 사용됩니다
  • 우리는 또한 노드 라이브러리가 마이크와 인터페이스하고 오디오 레코드 오디오와 인터페이스하는 데 사용할 오디오 처리를위한 명령 줄 유틸리티 인 Sox (Sound Exchange)를 설치해야합니다. Brew Install Sox를 사용하여 MacOS 또는 Sudo Apt Install Sox에 설치하십시오. 이 패키지가 설치된 상태에서 를 가져 와서 사용자의 오디오 프롬프트를 기록하는 함수 startrecording ()을 추가합니다. 우리는 주요 주제에서 우리를 너무 많이 조종 할 수 있으므로이 기능을 자세히 설명하지 않습니다. 
  • 환경을로드 한 후 index.js 파일에 다음 코드를 추가하십시오. <li> <ec> Startrecording () 함수는 마이크에서 오디오를 기록하고 "Enter"를 눌러 기다릴 때까지 기다립니다. </ec> </li> <update update> 다음, AI의 응답을 재생하는 데 사용되는 스피커 ()를 초기화하여 Main () 함수를 업데이트합니다. </update>
그 방법을 벗어나면 handleOpen () 및 handleMessage ()를 구현하여 오디오를 처리 할 수 ​​있습니다. handleOpen () 함수에서는 사용자의 오디오 프롬프트를 기록하기 위해 startrecording () 함수 만 호출하면됩니다. 또한 이벤트를 약간 업데이트해야합니다

CreateConversationEvent의 내용을 업데이트하여 "input_text 대신"Input_audio "유형을 사용하고 텍스트 필드를 오디오로 바꾸십시오 : base64audiodata. 크리터 반응의 응답 양식에 "오디오"를 추가하십시오

다음은 업데이트 된 handleOpen () 함수입니다 :

handlemessage () 함수를 구현하려면 오디오 버퍼를 업데이트하고 새로운 사운드 델타를 재생하기 위해 "response.audio.delta"이벤트를 수정합니다.

우리는 스위치 문에서 "response.text.done"이벤트를 제거하고 스피커를 중지하기 위해 "response.done"이벤트를 업데이트합니다 :

handlemessage () 함수의 최종 구현은 다음과 같습니다.

이 예제를 실행하려면이 수정 사항을 템플릿 코드에 적용하고 명령으로 실행하십시오.
npm install ws dotenv
로그인 후 복사
로그인 후 복사
로그인 후 복사
마이크가 녹음을 시작합니다. 우리는 우리의 요청을 말하고“Enter”를 눌러 그것을 보낼 수 있습니다. 그러면 AI의 응답은 스피커에서 재생됩니다 (마이크가 음소거되지 않고 스피커에 볼륨이 있는지 확인). 오디오 예제의 전체 코드는 여기에서 확인할 수 있습니다.

함수 호출 OpenAI API의 좋은 특징 중 하나는 기능 호출을 수행하는 기능입니다. 조수에 기능을 추가 할 수 있으며 해당 기능 중 하나가 답을 제공하는 데 유용 할 수 있음을 감지하면 특정 기능을 요청하는 이벤트를 보냅니다. OpenAi 문서는 기능 호출의 수명주기를 설명하는 다음 다이어그램을 제공합니다.

Openai Realtime API : 예제가있는 안내서 출처 : Openai 다이어그램에서 클라이언트가 LLM이 호출 할 수있는 함수의 정의를 제공해야합니다. 또한 기능 실행은 클라이언트 측에서 발생합니다. AI는 기능을 호출하도록 요청하는 이벤트와 그 주장을 보냅니다. 그런 다음 결과를 다시 보내는 책임이 있습니다 보조원에게 두 개의 숫자를 추가하는 함수를 강화합시다. 위의 오디오 예제를 확장 하여이 예제를 작성합니다.

사용 가능한 함수를 지정하려면 LLM에 도구 목록을 제공해야합니다. 각 도구는 기능에 대한 정보를 지정하는 JSON 객체입니다. 합 함수에 대한 도구를 정의하는 방법은 다음과 같습니다.

객체 구조를 설명해 봅시다 :

유형은 함수를 정의하고 있음을 지정합니다 이름은 함수를 식별하는 데 사용됩니다. 이것이 LLM이 호출하려는 기능을 알려주기 위해 사용하는 것입니다. 설명은 LLM 이이 기능을 사용하는시기를 식별하는 데 사용됩니다.

매개 변수는 함수의 인수를 지정하는 데 사용됩니다. 이 경우 a와 b

다음 단계는 코드의 함수를 정의하는 것입니다. 기능 통화 이벤트에 응답 할 때 key calculate_sum과 함께 사전을 사용하여 적절한 기능을 쉽게 호출 할 수 있도록합니다.

API는 위의 매개 변수에 정의 된 동일한 구조를 가진 사전으로 함수 인수를 제공합니다. 이 경우, 3과 5를 추가하기 위해 사전은 { "a": 3, "b": 5}입니다. SumTool 및 Functions 상수는 INDEX.js의 상단에 추가 할 수 있습니다. 다음으로, 우리는 응답을 업데이트합니다. 이것은 응답에 도구와 도구를 추가하여 수행됩니다.

LLM이 함수를 호출하기로 결정하면 응답을 방출합니다 .function_call_arguments.done 이벤트. 우리는 다음과 같이 응답해야합니다

함수 정보를 얻고 함수 호출.

함수 호출의 결과 보내기 응답 요청
npm init -y && touch index.js
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
우리는 hanldemessage () 함수 내부의 스위치 명령문에 다음 사례를 추가하여이를 처리합니다.

이제 스크립트를 실행하고 두 숫자를 추가 한 결과를 요청하면 모델은 함수를 호출하고 결과를 제공해야합니다. 이 함수는 비교적 간단하지만 함수는 클라이언트에 의해 실행되기 때문에 무엇이든 될 수 있습니다. 다음 섹션에서는 더 복잡한 기능의 두 가지 예가 표시됩니다.

이 예제의 전체 코드는 여기에서 제공됩니다.

위 내용은 Openai Realtime API : 예제가있는 안내서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

창의적인 프로젝트를위한 최고의 AI 아트 발전기 (무료 & amp; 유료) 창의적인 프로젝트를위한 최고의 AI 아트 발전기 (무료 & amp; 유료) Apr 02, 2025 pm 06:10 PM

이 기사는 최고의 AI 아트 생성기를 검토하여 자신의 기능, 창의적인 프로젝트에 대한 적합성 및 가치에 대해 논의합니다. Midjourney를 전문가에게 최고의 가치로 강조하고 고품질의 사용자 정의 가능한 예술에 Dall-E 2를 추천합니다.

Meta Llama 3.2- 분석 Vidhya를 시작합니다 Meta Llama 3.2- 분석 Vidhya를 시작합니다 Apr 11, 2025 pm 12:04 PM

메타의 라마 3.2 : 멀티 모달 및 모바일 AI의 도약 Meta는 최근 AI에서 강력한 비전 기능과 모바일 장치에 최적화 된 가벼운 텍스트 모델을 특징으로하는 AI의 상당한 발전 인 Llama 3.2를 공개했습니다. 성공을 바탕으로 o

최고의 AI 챗봇 비교 (Chatgpt, Gemini, Claude & amp; more) 최고의 AI 챗봇 비교 (Chatgpt, Gemini, Claude & amp; more) Apr 02, 2025 pm 06:09 PM

이 기사는 Chatgpt, Gemini 및 Claude와 같은 최고의 AI 챗봇을 비교하여 고유 한 기능, 사용자 정의 옵션 및 자연어 처리 및 신뢰성의 성능에 중점을 둡니다.

컨텐츠 생성을 향상시키기 위해 AI를 쓰는 최고 AI 작문 컨텐츠 생성을 향상시키기 위해 AI를 쓰는 최고 AI 작문 Apr 02, 2025 pm 06:11 PM

이 기사는 Grammarly, Jasper, Copy.ai, Writesonic 및 Rytr와 같은 최고의 AI 작문 조수에 대해 논의하여 콘텐츠 제작을위한 독특한 기능에 중점을 둡니다. Jasper는 SEO 최적화가 뛰어나고 AI 도구는 톤 구성을 유지하는 데 도움이된다고 주장합니다.

10 생성 AI 코드의 생성 AI 코딩 확장 대 코드를 탐색해야합니다. 10 생성 AI 코드의 생성 AI 코딩 확장 대 코드를 탐색해야합니다. Apr 13, 2025 am 01:14 AM

이봐, 코딩 닌자! 하루 동안 어떤 코딩 관련 작업을 계획 했습니까? 이 블로그에 더 자세히 살펴보기 전에, 나는 당신이 당신의 모든 코딩 관련 문제에 대해 생각하기를 원합니다. 완료? - &#8217

직원에게 AI 전략 판매 : Shopify CEO의 선언문 직원에게 AI 전략 판매 : Shopify CEO의 선언문 Apr 10, 2025 am 11:19 AM

Shopify CEO Tobi Lütke의 최근 메모는 AI 숙련도가 모든 직원에 대한 근본적인 기대를 대담하게 선언하여 회사 내에서 중요한 문화적 변화를 표시합니다. 이것은 도망가는 트렌드가 아닙니다. 그것은 p에 통합 된 새로운 운영 패러다임입니다

AV 바이트 : Meta ' S Llama 3.2, Google의 Gemini 1.5 등 AV 바이트 : Meta ' S Llama 3.2, Google의 Gemini 1.5 등 Apr 11, 2025 pm 12:01 PM

이번 주 AI 환경 : 발전의 회오리 바람, 윤리적 고려 사항 및 규제 토론. OpenAi, Google, Meta 및 Microsoft와 같은 주요 플레이어

최고의 AI 음성 생성기 선택 : 최고 옵션 검토 최고의 AI 음성 생성기 선택 : 최고 옵션 검토 Apr 02, 2025 pm 06:12 PM

이 기사는 Google Cloud, Amazon Polly, Microsoft Azure, IBM Watson 및 Destript와 같은 최고의 AI 음성 생성기를 검토하여 기능, 음성 품질 및 다양한 요구에 대한 적합성에 중점을 둡니다.

See all articles