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

새로 소개 된 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으로 문의하세요.
chatgpt를 사용할 수 없습니다! 즉시 테스트 할 수있는 원인과 솔루션 설명 [최신 2025]chatgpt를 사용할 수 없습니다! 즉시 테스트 할 수있는 원인과 솔루션 설명 [최신 2025]May 14, 2025 am 05:04 AM

chatgpt에 액세스 할 수 없습니까? 이 기사는 다양한 실용적인 솔루션을 제공합니다! 많은 사용자가 매일 chatgpt를 사용할 때 액세스 할 수 없거나 느린 응답과 같은 문제가 발생할 수 있습니다. 이 기사는 다양한 상황에 따라 이러한 문제를 단계별로 해결하도록 안내합니다. Chatgpt의 접근성 및 예비 문제 해결의 원인 먼저 문제가 OpenAI 서버 측 또는 사용자의 네트워크 또는 장치 문제에 있는지 확인해야합니다. 문제 해결을 위해 아래 단계를 따르십시오. 1 단계 : OpenAI의 공식 상태를 확인하십시오 chatgpt 서비스가 정상적으로 실행 중인지 확인하려면 OpenAi 상태 페이지 (status.openai.com)를 방문하십시오. 빨간색 또는 노란색 알람이 표시되면 열린 것을 의미합니다.

ASI의 위험을 계산하는 것은 인간의 마음으로 시작합니다ASI의 위험을 계산하는 것은 인간의 마음으로 시작합니다May 14, 2025 am 05:02 AM

2025 년 5 월 10 일, MIT 물리학 자 Max Tegmark는 AI Labs가 인공 초 지능을 방출하기 전에 Oppenheimer의 삼위 일체 테스트 미적분학을 모방해야한다고 Guardian에게 말했다. “내 평가는 'Compton Constant', 인종이

Chatgpt에서 가사를 작성하고 작곡하는 방법에 대한 이해하기 쉬운 설명Chatgpt에서 가사를 작성하고 작곡하는 방법에 대한 이해하기 쉬운 설명May 14, 2025 am 05:01 AM

AI 음악 제작 기술은 매일 매일 변화하고 있습니다. 이 기사는 Chatgpt와 같은 AI 모델을 예로 사용하여 AI를 사용하여 음악 제작을 지원하고 실제 사례에 대해 설명하는 방법을 자세히 설명합니다. 우리는 Sunoai, Hugging Face의 AI Jukebox 및 Python 's Music21 Library를 통해 음악을 만드는 방법을 소개합니다. 이러한 기술을 통해 모든 사람은 독창적 인 음악을 쉽게 만들 수 있습니다. 그러나 AI 생성 컨텐츠의 저작권 문제는 무시할 수 없으며 사용할 때는 신중해야합니다. 음악 분야에서 AI의 무한한 가능성을 모색 해 봅시다! OpenAi의 최신 AI 에이전트 "OpenAi Deep Research"가 소개됩니다. [chatgpt] ope

chatgpt-4는 무엇입니까? 당신이 할 수있는 일, 가격 및 GPT-3.5의 차이에 대한 철저한 설명!chatgpt-4는 무엇입니까? 당신이 할 수있는 일, 가격 및 GPT-3.5의 차이에 대한 철저한 설명!May 14, 2025 am 05:00 AM

ChatGpt-4의 출현은 AI 응용 프로그램의 가능성을 크게 확장했습니다. GPT-3.5와 비교하여 ChatGpt-4는 상당히 개선되었습니다. 강력한 맥락 이해력이 있으며 이미지를 인식하고 생성 할 수도 있습니다. 그것은 보편적 인 AI 조수입니다. 비즈니스 효율성 향상 및 창출 지원과 같은 많은 분야에서 큰 잠재력을 보여주었습니다. 그러나 동시에, 우리는 또한 사용의 예방 조치에주의를 기울여야합니다. 이 기사에서는 ChatGpt-4의 특성을 자세히 설명하고 다양한 시나리오에 대한 효과적인 사용 방법을 소개합니다. 이 기사에는 최신 AI 기술을 최대한 활용하는 기술이 포함되어 있습니다. OpenAi의 최신 AI 에이전트, "OpenAi Deep Research"에 대한 자세한 내용은 아래 링크를 클릭하십시오.

chatgpt 앱을 사용하는 방법을 설명하십시오! 일본 지원 및 음성 대화 기능chatgpt 앱을 사용하는 방법을 설명하십시오! 일본 지원 및 음성 대화 기능May 14, 2025 am 04:59 AM

chatgpt 앱 : AI 조수와 함께 창의력을 발휘하십시오! 초보자 가이드 Chatgpt 앱은 쓰기, 번역 및 질문 답변을 포함하여 광범위한 작업을 처리하는 혁신적인 AI 어시스턴트입니다. 창의적인 활동과 정보 수집에 유용한 끝없는 가능성이있는 도구입니다. 이 기사에서는 초보자를위한 이해하기 쉬운 방법, ChatGpt 스마트 폰 앱을 설치하는 방법, 음성 입력 기능 및 플러그인과 같은 앱의 고유 한 기능 및 앱을 사용할 때 염두에 두는 포인트에 이르기까지 설명합니다. 또한 플러그인 제한 및 장치 간 구성 동기화를 자세히 살펴 보겠습니다.

중국어 버전의 Chatgpt를 어떻게 사용합니까? 등록 절차 및 수수료에 대한 설명중국어 버전의 Chatgpt를 어떻게 사용합니까? 등록 절차 및 수수료에 대한 설명May 14, 2025 am 04:56 AM

Chatgpt Chinese 버전 : 중국 AI 대화의 새로운 경험 잠금 해제 Chatgpt는 전 세계적으로 인기가 있습니다. 중국어 버전도 제공한다는 것을 알고 있습니까? 이 강력한 AI 도구는 일상적인 대화를 지원할뿐만 아니라 전문적인 콘텐츠를 처리하며 단순화되고 전통적인 중국어와 호환됩니다. 중국의 사용자이든 중국어를 배우는 친구이든 상관없이 혜택을 누릴 수 있습니다. 이 기사는 계정 설정, 중국 신속한 단어 입력, 필터 사용 및 다양한 패키지 선택을 포함하여 ChatGpt 중국어 버전을 사용하는 방법을 자세히 소개하고 잠재적 위험 및 응답 전략을 분석합니다. 또한 ChatGpt 중국어 버전을 다른 중국 AI 도구와 비교하여 장점과 응용 프로그램 시나리오를 더 잘 이해할 수 있도록 도와줍니다. Openai의 최신 AI 인텔리전스

5 AI 요원 신화 당신은 지금 믿음을 중단해야합니다.5 AI 요원 신화 당신은 지금 믿음을 중단해야합니다.May 14, 2025 am 04:54 AM

이것들은 생성 AI 분야의 다음 도약으로 생각 될 수 있으며, 이는 우리에게 Chatgpt 및 기타 대규모 모델 챗봇을 제공했습니다. 단순히 질문에 대답하거나 정보를 생성하는 대신, 우리를 대신하여 조치를 취할 수 있습니다.

Chatgpt를 사용하여 여러 계정을 만들고 관리하는 불법성에 대한 이해하기 쉬운 설명Chatgpt를 사용하여 여러 계정을 만들고 관리하는 불법성에 대한 이해하기 쉬운 설명May 14, 2025 am 04:50 AM

ChatGpt를 사용한 효율적인 다중 계정 관리 기술 | 비즈니스와 사생활 사용 방법에 대한 철저한 설명! Chatgpt는 다양한 상황에서 사용되지만 일부 사람들은 여러 계정 관리에 대해 걱정할 수 있습니다. 이 기사는 ChatGpt에 대한 여러 계정을 만드는 방법, 사용할 때 수행 할 작업 및 안전하고 효율적으로 작동하는 방법을 자세히 설명합니다. 또한 비즈니스와 개인 사용의 차이, OpenAI의 이용 약관을 준수하는 것과 같은 중요한 점을 다루며 여러 계정을 안전하게 활용하는 데 도움이되는 안내서를 제공합니다. Openai

See all articles

핫 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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구