Live API 세션 관리하기

Live API 세션 관리하기 (Session management with Live API)

Live API에서 세션(session)은 동일한 연결을 통해 입력과 출력이 지속적으로 스트리밍되는 영구적인 연결을 말해요 (작동 방식에서 자세히 알아보기). 이 독특한 세션 설계 덕분에 낮은 지연 시간과 고유한 기능을 지원할 수 있지만, 세션 시간 제한이나 조기 종료 같은 문제도 발생할 수 있어요. 이 가이드에서는 Live API를 사용할 때 발생할 수 있는 세션 관리 문제를 해결하는 전략을 다룰게요.

출처: 원문

본문

세션 수명 (Session lifetime)

압축을 사용하지 않는 경우, 오디오 전용 세션은 15분, 오디오·비디오 세션은 2분으로 제한돼요. 이 한도를 초과하면 세션(그리고 연결)이 종료되지만, 컨텍스트 윈도우 압축을 사용하면 세션을 무제한 시간으로 연장할 수 있어요.

연결의 수명도 약 10분으로 제한돼요. 연결이 종료되면 세션도 함께 종료돼요. 이 경우 세션 재개를 사용해 단일 세션이 여러 연결에 걸쳐 활성 상태를 유지하도록 구성할 수 있어요. 또한 연결이 끝나기 전에 GoAway 메시지를 받아 추가 작업을 수행할 수 있어요.

컨텍스트 윈도우 압축 (Context window compression)

더 긴 세션을 활성화하고 갑작스러운 연결 종료를 피하려면, 세션 구성의 일부로 contextWindowCompression 필드를 설정해 컨텍스트 윈도우 압축을 활성화할 수 있어요.

ContextWindowCompressionConfig에서 슬라이딩 윈도우 메커니즘과 압축을 트리거하는 토큰 수를 구성할 수 있어요.

세션 재개 (Session resumption)

서버가 주기적으로 WebSocket 연결을 재설정할 때 세션이 종료되지 않도록, 설정 구성 내의 sessionResumption 필드를 구성해 주세요.

이 구성을 전달하면 서버가 SessionResumptionUpdate 메시지를 보내요. 이 메시지를 사용해 마지막 재개 토큰을 이후 연결의 SessionResumptionConfig.handle로 전달하면 세션을 재개할 수 있어요.

재개 토큰은 마지막 세션 종료 후 2시간 동안 유효해요.

세션이 연결 해제되기 전에 메시지 받기

서버는 현재 연결이 곧 종료될 것임을 알리는 GoAway 메시지를 보내요. 이 메시지에는 남은 시간을 나타내는 timeLeft가 포함되어 있어, 연결이 ABORTED로 종료되기 전에 추가 작업을 수행할 수 있어요.

생성이 완료되었을 때 메시지 받기

서버는 모델이 응답 생성을 마쳤음을 알리는 generationComplete 메시지를 보내요.

다음 단계 (What's next)

Live API로 더 다양한 작업을 하려면 전체 Capabilities 가이드, 도구 사용 페이지, 또는 Live API 쿡북을 살펴보세요.

더 알아보기 (Learn more)