Strumieniowanie dwukierunkowe za pomocą interfejsu Gemini Live API



Gemini Live API umożliwia dwukierunkowe interakcje z użyciem tekstu i głosu z urządzeniem Gemini z niewielkim opóźnieniem. Dzięki Live API możesz zapewnić użytkownikom naturalne, ludzkie rozmowy z możliwością przerywania odpowiedzi modelu za pomocą poleceń tekstowych lub głosowych. Model może przetwarzać tekst i dźwięk (wkrótce udostępnimy też opcję wideo) oraz generować tekst i dźwięk.

Możesz tworzyć prototypy z promptami i funkcją Live APIVertex AI Studio.

Interfejs Live API to interfejs API ze stanem, który tworzy połączenie WebSocket, aby nawiązać sesję między klientem a serwerem Gemini. Szczegółowe informacje znajdziesz w dokumentacji referencyjnej Live API.

Zanim zaczniesz

Jeśli jeszcze tego nie zrobisz, przeczytaj przewodnik dla początkujących, w którym znajdziesz instrukcje konfigurowania projektu Firebase, łączenia aplikacji z Firebase, dodawania pakietu SDK, inicjowania usługi Vertex AI i tworzenia wystąpienia LiveModel.

Aby korzystać z Live API:

  • Upewnij się, że używasz co najmniej tych wersji bibliotek Firebase:
    iOS+: nieobsługiwane | Android: wersja 16.3.0 lub nowsza (BoM: wersja 33.12.0 lub nowsza) | Sieć: nieobsługiwane | Flutter: wersja 1.5.0 lub nowsza (BoM: wersja 3.9.0 lub nowsza)

  • Utwórz instancję LiveModel (nie instancję GenerativeModel).

Modele, które obsługują tę funkcję

Funkcja Live API jest obsługiwana tylko przez gemini-2.0-flash-live-preview-04-09 (nie przez gemini-2.0-flash).

Korzystanie ze standardowych funkcji Live API

Z tej sekcji dowiesz się, jak korzystać ze standardowych funkcji urządzenia Live API, w szczególności do przesyłania strumieniowego różnych typów danych wejściowych i wyjściowych:

Wysyłanie i odbieranie SMS-ów

Możesz wysyłać strumieniowy tekst wejściowy i otrzymywać strumieniowy tekst wyjściowy. Utwórz instancję liveModel i ustaw tryb odpowiedzi na Text.

Dowiedz się, jak wybrać model i opcjonalnie lokalizację odpowiednią do przypadku użycia i aplikacji.

Wysyłanie i odbieranie dźwięku

Możesz wysyłać strumieniowe dane wejściowe audio i odbierać strumieniowe dane wyjściowe audio. Utwórz instancję LiveModel i ustaw tryb odpowiedzi na Audio.

Dowiedz się, jak skonfigurować i dostosowywać głos odpowiedzi (poniżej).

Dowiedz się, jak wybrać model i opcjonalnie lokalizację odpowiednią do przypadku użycia i aplikacji.



Tworzenie bardziej angażujących i interakcyjnych doświadczeń

Z tej sekcji dowiesz się, jak tworzyć i zarządzać bardziej angażującymi lub interaktywnymi funkcjami Live API.

Zmiana głosu w odpowiedzi

Live API korzysta z Chirp 3 do obsługi odpowiedzi głosowych. Korzystając z Vertex AI in Firebase, możesz wysyłać dźwięk w 5 głosach HD i 31 językach.

Jeśli nie określisz głosu, zostanie użyty domyślny głos Puck. Możesz też skonfigurować model tak, aby odpowiadał jednym z tych głosów:

Aoede (kobieta)
Charon (mężczyzna)
Fenrir (mężczyzna)
Kore (kobieta)
Puck (mężczyzna)

Demo tych głosów i pełną listę dostępnych języków znajdziesz w artykule Chirp 3: Głosy HD.

Aby określić głos, ustaw nazwę głosu w obiekcie speechConfig w ramach konfiguracji modelu:

Aby uzyskać najlepsze wyniki, gdy chcesz, aby model odpowiadał w języku innym niż angielski, w ramach instrukcji systemowych podaj te informacje:

RESPOND IN LANGUAGE. YOU MUST RESPOND UNMISTAKABLY IN LANGUAGE.

Zachowanie kontekstu w przypadku różnych sesji i żądań

Strukturę czatu możesz wykorzystać do zachowania kontekstu w różnych sesjach i żądaniach. Pamiętaj, że działa to tylko w przypadku danych wejściowych i wyjściowych tekstowych.

To podejście najlepiej sprawdza się w przypadku krótkich kontekstów. Możesz wysyłać interakcje krok po kroku, aby odzwierciedlić dokładną sekwencję zdarzeń. W przypadku dłuższych kontekstów zalecamy podanie jednego podsumowania wiadomości, aby zwolnić miejsce w oknie kontekstu na kolejne interakcje.

Zarządzanie powiadomieniami

Vertex AI in Firebase nie obsługuje jeszcze obsługiwania przerw. Sprawdź jeszcze raz za jakiś czas.

Korzystanie z funkcji dzwonienia (narzędzia)

Podobnie jak w przypadku standardowych metod generowania treści, możesz definiować narzędzia, takie jak dostępne funkcje, do korzystania z interfejsu Live API. W tej sekcji opisano pewne niuanse korzystania z interfejsu Live API do wywoływania funkcji. Pełny opis i przykłady wywoływania funkcji znajdziesz w przewodniku po wywoływaniu funkcji.

Na podstawie jednego prompta model może wygenerować wiele wywołań funkcji i kodu niezbędnego do połączenia ich danych wyjściowych. Ten kod jest wykonywany w środowisku piaskownicy i generuje kolejne wiadomości BidiGenerateContentToolCall. Wykonanie zostaje wstrzymane do czasu, aż będą dostępne wyniki każdego wywołania funkcji, co zapewnia przetwarzanie sekwencyjne.

Korzystanie z interfejsu Live API z wywołaniem funkcji jest też szczególnie przydatne, ponieważ model może poprosić użytkownika o dodatkowe informacje lub o ich wyjaśnienie. Jeśli na przykład model nie ma wystarczającej ilości informacji, aby podać wartość parametru funkcji, którą chce wywołać, może poprosić użytkownika o dodatkowe informacje lub o doprecyzowanie.

Klient powinien odpowiedzieć: BidiGenerateContentToolResponse.



Ograniczenia i wymagania

Pamiętaj o tych ograniczeniach i wymaganiach dotyczących Live API.

Transkrypcja

Vertex AI in Firebase nie obsługuje jeszcze transkrypcji. Sprawdź jeszcze raz za jakiś czas.

Języki

Formaty audio

Live API obsługuje te formaty audio:

  • Format audio wejściowego: surowy 16-bitowy PCM z częstotliwością 16 kHz w formacie little-endian.
  • Format wyjściowy dźwięku: surowy 16-bitowy dźwięk PCM z częstotliwością 24 kHz w formacie little-endian

Ograniczenia liczby żądań

Obowiązują te limity szybkości:

  • 10 jednoczesnych sesji na projekt Firebase
  • 4 mln tokenów na minutę

Długość sesji

Domyślny czas trwania sesji to 30 minut. Gdy czas trwania sesji przekroczy limit, połączenie zostanie zakończone.

Model jest też ograniczony rozmiarem kontekstu. Wysyłanie dużych fragmentów danych może spowodować wcześniejsze zakończenie sesji.

wykrywanie aktywności głosowej (VAD);

Model automatycznie wykrywa aktywność głosową (VAD) w ciągłym strumieniu danych wejściowych audio. Funkcja VAD jest domyślnie włączona.

Liczenie tokenów

Nie możesz używać interfejsu API CountTokens z interfejsem Live API.