Gemini Live API를 사용한 양방향 스트리밍



Gemini Live API를 사용하면 Gemini와의 양방향 텍스트 및 음성 상호작용으로 지연 시간이 짧습니다. Live API를 사용하면 텍스트 또는 음성 명령을 사용하여 모델의 응답을 중단하는 기능과 함께 자연스럽고 인간과 같은 음성 대화 환경을 최종 사용자에게 제공할 수 있습니다. 이 모델은 텍스트 및 오디오 입력을 처리할 수 있으며 (동영상은 곧 제공 예정) 텍스트 및 오디오 출력을 제공할 수 있습니다.

Vertex AI Studio에서 프롬프트와 Live API를 사용하여 프로토타입을 만들 수 있습니다.

Live API는 WebSocket 연결을 만들어 클라이언트와 Gemini 서버 간에 세션을 설정하는 스테이트풀 API입니다. 자세한 내용은 Live API 참조 문서를 참고하세요.

시작하기 전에

아직 완료하지 않았다면 Firebase 프로젝트를 설정하고, 앱을 Firebase에 연결하고, SDK를 추가하고, Vertex AI 서비스를 초기화하고, LiveModel 인스턴스를 만드는 방법을 설명하는 시작 가이드를 완료하세요.

Live API를 사용하려면 다음 사항에 유의하세요.

  • 최소한 다음 Firebase 라이브러리 버전을 사용하고 있는지 확인하세요.
    iOS+: 아직 지원되지 않음 | Android: v16.3.0 이상 (BoM: v33.12.0 이상) | : 아직 지원되지 않음 | Flutter: v1.5.0 이상 (BoM: v3.9.0 이상)

  • LiveModel 인스턴스 (GenerativeModel 인스턴스 아님)를 만듭니다.

이 기능을 지원하는 모델

Live APIgemini-2.0-flash이 아닌 gemini-2.0-flash-live-preview-04-09에서만 지원됩니다.

Live API의 표준 기능 사용하기

이 섹션에서는 Live API의 표준 기능을 사용하는 방법, 특히 다양한 유형의 입력과 출력을 스트리밍하는 방법을 설명합니다.

문자 메시지 보내기 및 받기

스트리밍된 텍스트 입력을 전송하고 스트리밍된 텍스트 출력을 수신할 수 있습니다. liveModel 인스턴스를 만들고 응답 모달을 Text로 설정해야 합니다.

사용 사례 및 앱에 적합한 모델과 원하는 경우 위치를 선택하는 방법을 알아보세요.

오디오 전송 및 수신

스트리밍된 오디오 입력을 전송하고 스트리밍된 오디오 출력을 수신할 수 있습니다. LiveModel 인스턴스를 만들고 응답 모달리티를 Audio로 설정해야 합니다.

응답 음성을 구성하고 맞춤설정하는 방법을 알아보세요 (이 페이지의 뒷부분 참고).

사용 사례 및 앱에 적합한 모델과 원하는 경우 위치를 선택하는 방법을 알아보세요.



더욱 몰입도 높고 양방향적인 환경 만들기

이 섹션에서는 Live API의 더 매력적이거나 양방향적인 기능을 만들고 관리하는 방법을 설명합니다.

응답 음성 변경

Live API는 Chirp 3를 사용하여 합성된 음성 응답을 지원합니다. Vertex AI in Firebase를 사용하면 5가지 HD 음성 및 31개 언어로 오디오를 전송할 수 있습니다.

음성을 지정하지 않으면 기본값은 Puck입니다. 또는 다음 음성 중 하나로 응답하도록 모델을 구성할 수 있습니다.

Aoede (여성)
Charon (남성)
Fenrir (남성)
Kore (여성)
Puck (남성)

이러한 음성의 소리를 들을 수 있는 데모와 사용 가능한 언어의 전체 목록은 Chirp 3: HD 음성을 참고하세요.

음성을 지정하려면 speechConfig 객체 내에서 음성 이름을 모델 구성의 일부로 설정합니다.

모델에 영어가 아닌 언어로 프롬프트하고 응답하도록 요구할 때 최상의 결과를 얻으려면 시스템 안내에 다음을 포함하세요.

RESPOND IN LANGUAGE. YOU MUST RESPOND UNMISTAKABLY IN LANGUAGE.

세션과 요청 전반에서 컨텍스트 유지

채팅 구조를 사용하여 세션과 요청 간에 컨텍스트를 유지할 수 있습니다. 이 방법은 텍스트 입력 및 텍스트 출력에만 작동합니다.

이 접근 방식은 짧은 컨텍스트에 가장 적합합니다. 세부 경로 상호작용을 전송하여 정확한 이벤트 시퀀스를 나타낼 수 있습니다. 컨텍스트가 긴 경우 후속 상호작용을 위해 컨텍스트 창을 확보할 수 있도록 단일 메시지 요약을 제공하는 것이 좋습니다.

방해 요소 처리

Vertex AI in Firebase는 아직 중단 처리를 지원하지 않습니다. 나중에 다시 확인해 주세요.

함수 호출 사용 (도구)

표준 콘텐츠 생성 메서드에서와 마찬가지로 사용 가능한 함수와 같은 도구를 Live API와 함께 사용할 수 있습니다. 이 섹션에서는 함수 호출과 함께 Live API를 사용할 때의 몇 가지 차이점을 설명합니다. 함수 호출에 관한 전체 설명과 예시는 함수 호출 가이드를 참고하세요.

모델은 단일 프롬프트에서 여러 함수 호출과 출력을 연결하는 데 필요한 코드를 생성할 수 있습니다. 이 코드는 샌드박스 환경에서 실행되어 후속 BidiGenerateContentToolCall 메시지를 생성합니다. 각 함수 호출의 결과를 사용할 수 있을 때까지 실행이 일시중지되므로 순차 처리가 보장됩니다.

또한 함수 호출과 함께 Live API를 사용하면 모델이 사용자에게 후속 조치 또는 명확한 정보를 요청할 수 있으므로 특히 강력합니다. 예를 들어 모델에 호출하려는 함수에 매개변수 값을 제공하기에 충분한 정보가 없는 경우 모델은 사용자에게 추가 정보 또는 명확한 정보를 제공해 달라고 요청할 수 있습니다.

클라이언트는 BidiGenerateContentToolResponse로 응답해야 합니다.



제한사항 및 요구사항

Live API의 다음과 같은 제한사항 및 요구사항에 유의하세요.

스크립트 작성

Vertex AI in Firebase는 아직 스크립트 작성을 지원하지 않습니다. 나중에 다시 확인해 주세요.

언어

오디오 형식

Live API는 다음 오디오 형식을 지원합니다.

  • 입력 오디오 형식: 16kHz little-endian의 원시 16비트 PCM 오디오
  • 출력 오디오 형식: 24kHz little-endian의 원시 16비트 PCM 오디오

비율 제한

다음 비율 한도가 적용됩니다.

  • Firebase 프로젝트당 동시 세션 10개
  • 분당 4백만 토큰

세션 길이

세션의 기본 길이는 30분입니다. 세션 시간이 한도를 초과하면 연결이 종료됩니다.

또한 모델은 컨텍스트 크기에 따라 제한됩니다. 대량의 입력 데이터를 전송하면 세션이 더 일찍 종료될 수 있습니다.

음성 활동 감지(VAD)

이 모델은 연속 오디오 입력 스트림에서 음성 활동 감지 (VAD)를 자동으로 실행합니다. VAD는 기본적으로 사용 설정되어 있습니다.

토큰 수 계산

CountTokens API는 Live API와 함께 사용할 수 없습니다.