이전에 시스템 프롬프트를 매번 전송하지 않고, 대화 시작 부분에만 보내는 방식(고정화)을 통해 대화의 고속화가 가능한지라는 주제로 글을 작성한 적이 있습니다.
결과적으로 큰 성과는 얻지 못했지만, 계속 조사하던 중 OpenAI Realtime API에서 텍스트 입출력도 지원할 수 있다는 것을 알게 되었고, 이 API를 사용하면 목표(대화 응답 속도 향상)를 달성할 가능성이 있는지 알아보기로 했습니다.
이전에 GPT-Live-1이 발표되었을 때 OpenAI Realtime API에 대해서도 잠깐 보았는데, 선입견 때문에 음성 입출력을 위한 API라고 단정하고 있었습니다.
지난번 글을 작성하면서 조사하다 보니 공식 모델 사양에 TextInput도 포함되어 있더군요. (이미지 입력도 지원되네요)
지금까지의 OpenAI API에서는 Chat Completions 계열 API를 통해 대화 기록을 전달함으로써 대화의 연속성을 유지했고, Responses 계열 API에서는 previous_response_id를 이용해 API 서버 측에서 대화 상태(대화 기록) 관리를 구현하고 있었습니다.
Realtime API에서는 세션 내에 지시 사항이나 대화 기록을 보존하며, WebSocket이나 WebRTC를 통해 지속적으로 데이터를 주고받을 수 있습니다. 이번 구현에서는 시작 시점에 지시 사항을 설정하고, 각 턴마다 새로운 사용자 메시지를 추가합니다.
OpenAI의 Realtime API는 2024년 10월에 GPT-4o를 이용한 공개 베타로 등장했습니다. 이후 2025년 8월 공식 제공과 함께 'gpt-realtime'이 등장했으며, mini를 통한 저비용화나 추론 기능을 갖춘 Realtime 2계열로 진화하고 있습니다.
음성 대화를 주된 용도로 발전해 온 API이지만, 이번에 사용할 GPT-Realtime-2.1은 텍스트 입출력에도 대응합니다. 본 기사에서는 WebSocket 연결을 통해 같은 세션 내에서 텍스트 대화를 지속했을 때, 지시 사항이나 대화 기록이 어떻게 유지되는지, 그리고 응답 속도나 사용 토큰량이 어떻게 되는지를 검증할 것입니다.
| 시기 | 주요 사건 | 의미 |
|---|
| 2024년 10월 1일 | Realtime API를 공개 베타로 제공 시작. gpt-4o-realtime-preview 등장 | WebSocket을 이용한 저지연 음성 대화가 가능해짐 |
| 2024년 12월 17일 | GPT-4o의 Realtime 모델을 업데이트하고, mini를 추가. WebRTC 연결에도 대응 | 음성 품질 개선, 저비용화, 브라우저 등에서의 연결 강화 |
| 2025년 8월 28일 | Realtime API가 공식 제공(GA). gpt-realtime 등장 | 베타 버전에서 상용 이용을 위한 정식 버전으로 전환 |
| 2025년 10월 6일 | gpt-realtime-mini를 제공 시작 | 더욱 저렴한 음성 대화 선택지 추가 |
| 2026년 2월 23일 | gpt-realtime-1.5를 제공 시작 | Realtime 모델 업데이트 |
| 2026년 5월 7일 | gpt-realtime-2를 제공 시작 | 추론의 강도를 설정할 수 있는 실시간 음성 모델로 발전 |
| 2026년 7월 6일 | gpt-realtime-2.1과 gpt-realtime-2.1-mini를 제공 시작 | 영문 숫자 인식, 무음/잡음에 대한 대응, 끼어들기 동작을 개선. mini에서는 저비용화도 달성 |
GPT-Live-1이 등장했을 때, GPT-Live-1은 Realtime 계열의 후속이라는 이미지를 제가 임의로 가졌었지만, 사용 용도를 고려할 때 별개의 시스템으로 생각하는 것이 적절한 것 같습니다.
이번에는 WebSocket 연결을 통해 같은 세션 내에서 텍스트 대화를 지속했을 때, 지시 사항이나 대화 기록이 어떻게 유지되는지, 그리고 응답 속도나 사용 토큰량이 어떻게 되는지를 검증합니다.
import asyncio
import csv
import hashlib
...
환경 변수에 OpenAI API Key와 사용할 모델 설정을 합니다.
export OPENAI_API_KEY="sk-proj-..."
export OPENAI_REALTIME_MODEL="gpt-realtime-2.1"
AI에게 내리는 지시는 아래와 같이 냉장고 문의 창구를 가정한 내용이며, 분량은 약 3,000자 정도입니다. 내용은 이전 기사(LLM에 시스템 프롬프트를 고정화하여 반응 속도를 높이고 사용 토큰량을 줄일 수 있을까?)와 동일합니다.
시스템 프롬프트
당신은 가상의 냉장고 제조사 '북성가전'의 지원 창구 AI입니다.
아래에 기재된 정보만을 사용하여 제품 관련 질문에 일본어로 답변해 주세요.
# 답변 규칙
...
당신 > 냉장고가 뭔가 이상해요.
AI > 어떤 증상인가요?
예를 들어, 냉각이 약하다거나, 소리가 신경 쓰이거나, 에러 코드가 표시되거나, 연기나 탄 냄새가 나는 등의 상황을 알려주세요.
...
이전 실험에서 진행했던 Chat Completions 계열과의 비교를 수행했습니다.
동일한 4가지 질문을 한 세션 내에서 순차적으로 입력하여 5세션, 총 20개의 응답을 측정했습니다. 텍스트 입출력만을 사용했으며 외부 도구는 호출하지 않았습니다. 연결 및 세션 초기 설정 시간과 사용자 대기 시간은 각 응답의 측정에 포함하지 않았습니다.
| 지표 | Chat Completions | Realtime |
|---|
| 모델 | GPT-5.4 mini | GPT-Realtime-2.1 |
| ... | 1,212.02 ms | |
| 중앙값 답변 완료 시간 | 1,162.17 ms | 1,162.66 ms |
| 입력 토큰 합계 | 42,657 | 43,142 |
| 그 중 캐시 입력 | 37,376 | 29,696 |
| ... | | |
TTFT(Time To First Token)는 답변의 첫 부분이 돌아오기까지 걸리는 시간입니다.
이번 조건에서는 GPT-Realtime-2.1을 사용한 Realtime API 구현이 GPT-5.4 mini를 사용한 Chat Completions 구현에 비해 평균 TTFT가 약 32.6% 짧았습니다. 반면, 답변 완료까지의 시간은 거의 동일했습니다. Realtime 쪽은 답변이 길어지는 경향도 보였습니다.
이번 비교에서는 애초 모델 자체가 다르고 답변 내용도 다르기 때문에, 답변 완료까지의 시간보다는 TTFT가 짧아진 결과가 realtime성이라는 관점에서는 매우 중요하다고 생각합니다. 빨리 답변을 표시하기 시작하면 체감적인 응답 속도는 빠르게 느껴집니다.
모델, 통신 방식, 히스토리 관리 방법이 다르고 측정 시기나 캐시 상태도 일치하지 않습니다. 따라서 이번 결과는 두 구현의 실측 비교이며, 세션 관리나 WebSocket만으로 인한 속도 개선을 보여주는 것은 아닙니다.
TTFT가 상당히 빠르고 Realtime성이 높게 느껴지지만, 비용 관점에서 비교해 보면 어떨까요?
일반 요금 기준, 100만 토큰당 비교입니다.
| 종류 | GPT-5.4 mini | GPT-Realtime-2.1 | 배율 |
|---|---|---|
| 입력 | $0.75 | $4.00 | 약 5.33배 |
| ... |
솔직히 비교해 보면 비싸다는 인식이 먼저 앞설 것 같습니다. 단가는 약 5.33배이지만, 이번에는 출력량과 캐시율도 다르기 때문에 실측 토큰량에서 구한 개략 비용은 약 10.46배입니다. TTFT 단축에 이 가격 차이를 지불할 가치가 있는지가 판단점이 될 것 같습니다.
비용은 2026년 11월 3일자 정보를 바탕으로 계산했습니다.
이번에는 OpenAI Realtime API를 사용하여 동일 세션 내에서 텍스트 대화를 지속하는 구현을 시도했습니다. 시작 시 지시를 설정함으로써, 그 후에는 새로운 사용자 메시지를 추가하는 형태로 대화를 이어갈 수 있었습니다. 한편, 전송되는 데이터가 줄어들더라도 지시나 대화 히스토리를 포함한 입력 토큰의 집계가 사라지는 것은 아닙니다.
이전 Chat Completions 구현과 비교했을 때, 평균 TTFT는 약 972ms에서 약 655ms로 약 32.6% 단축되었습니다. 답변 완료까지의 시간은 거의 동일했지만, 답변을 빨리 시작할 수 있다는 점은 대화 앱에 유용하다고 느낍니다.
다만, 이번에는 모델이나 통신 방식, 캐시 상태 등이 다르기 때문에 세션 관리나 WebSocket만의 효과라고 판단하기는 어렵습니다. 또한, 이번 사용 토큰량에 일반 요금을 적용하면 Realtime 쪽의 개략 비용은 약 10.46배였습니다.
텍스트 대화에서도 Realtime API는 선택지가 될 수 있지만, 채택할 때는 답변 시작 속도 외에도 답변 품질과 비용의 균형을 평가할 필요가 있을 것 같습니다.