Streaming dua arah menggunakan Gemini Live API



Gemini Live API memungkinkan interaksi teks dan suara dua arah latensi rendah dengan Gemini. Dengan Live API, Anda dapat memberikan pengalaman percakapan suara alami seperti manusia kepada pengguna akhir, dengan kemampuan untuk mengganggu respons model menggunakan perintah teks atau suara. Model ini dapat memproses input teks dan audio (video akan segera hadir), dan dapat memberikan output teks dan audio.

Anda dapat membuat prototipe dengan perintah dan Live API di Vertex AI Studio.

Live API adalah API stateful yang membuat koneksi WebSocket untuk membuat sesi antara klien dan server Gemini. Untuk mengetahui detailnya, lihat dokumentasi referensi Live API.

Sebelum memulai

Jika belum melakukannya, selesaikan panduan memulai, yang menjelaskan cara menyiapkan project Firebase, menghubungkan aplikasi ke Firebase, menambahkan SDK, melakukan inisialisasi layanan Vertex AI, dan membuat instance LiveModel.

Perhatikan bahwa untuk menggunakan Live API:

  • Pastikan Anda menggunakan setidaknya versi library Firebase berikut:
    iOS+: belum didukung | Android: v16.3.0+ (BoM: v33.12.0+) | Web: belum didukung | Flutter: v1.5.0+ (BoM: v3.9.0+)

  • Buat instance LiveModel (bukan instance GenerativeModel).

Model yang mendukung kemampuan ini

Live API hanya didukung oleh gemini-2.0-flash-live-preview-04-09 (bukan gemini-2.0-flash).

Menggunakan fitur standar Live API

Bagian ini menjelaskan cara menggunakan fitur standar Live API, khususnya untuk melakukan streaming berbagai jenis input dan output:

Mengirim teks dan menerima teks

Anda dapat mengirim input teks yang di-streaming dan menerima output teks yang di-streaming. Pastikan untuk membuat instance liveModel dan menetapkan modalitas respons ke Text.

Pelajari cara memilih model dan secara opsional lokasi yang sesuai untuk kasus penggunaan dan aplikasi Anda.

Mengirim audio dan menerima audio

Anda dapat mengirim input audio yang di-streaming dan menerima output audio yang di-streaming. Pastikan untuk membuat instance LiveModel dan menetapkan modalitas respons ke Audio.

Pelajari cara mengonfigurasi dan menyesuaikan suara respons (nanti di halaman ini).

Pelajari cara memilih model dan secara opsional lokasi yang sesuai untuk kasus penggunaan dan aplikasi Anda.



Membuat pengalaman yang lebih menarik dan interaktif

Bagian ini menjelaskan cara membuat dan mengelola fitur Live API yang lebih menarik atau interaktif.

Mengubah suara respons

Live API menggunakan Chirp 3 untuk mendukung respons ucapan yang disintesis. Saat menggunakan Vertex AI in Firebase, Anda dapat mengirim audio dalam 5 suara HD dan 31 bahasa.

Jika Anda tidak menentukan suara, defaultnya adalah Puck. Atau, Anda dapat mengonfigurasi model untuk merespons dengan salah satu suara berikut:

Aoede (perempuan)
Charon (laki-laki)
Fenrir (laki-laki)
Kore (perempuan)
Puck (laki-laki)

Untuk demo suara ini dan daftar lengkap bahasa yang tersedia, lihat Chirp 3: Suara HD.

Untuk menentukan suara, tetapkan nama suara dalam objek speechConfig sebagai bagian dari konfigurasi model:

Untuk mendapatkan hasil terbaik saat meminta dan mewajibkan model untuk merespons dalam bahasa non-Inggris, sertakan hal berikut sebagai bagian dari petunjuk sistem Anda:

RESPOND IN LANGUAGE. YOU MUST RESPOND UNMISTAKABLY IN LANGUAGE.

Mempertahankan konteks di seluruh sesi dan permintaan

Anda dapat menggunakan struktur chat untuk mempertahankan konteks di seluruh sesi dan permintaan. Perhatikan bahwa ini hanya berfungsi untuk input teks dan output teks.

Pendekatan ini paling cocok untuk konteks singkat; Anda dapat mengirim interaksi belokan demi belokan untuk mewakili urutan peristiwa yang tepat . Untuk konteks yang lebih panjang, sebaiknya berikan satu ringkasan pesan untuk mengosongkan jendela konteks untuk interaksi berikutnya.

Menangani gangguan

Vertex AI in Firebase belum mendukung penanganan gangguan. Periksa kembali nanti!

Menggunakan panggilan fungsi (alat)

Anda dapat menentukan alat, seperti fungsi yang tersedia, untuk digunakan dengan Live API seperti yang dapat Anda lakukan dengan metode pembuatan konten standar. Bagian ini menjelaskan beberapa nuansa saat menggunakan Live API dengan panggilan fungsi. Untuk deskripsi lengkap dan contoh panggilan fungsi, lihat panduan panggilan fungsi.

Dari satu perintah, model dapat menghasilkan beberapa panggilan fungsi dan kode yang diperlukan untuk merantai outputnya. Kode ini dijalankan di lingkungan sandbox, yang menghasilkan pesan BidiGenerateContentToolCall berikutnya. Eksekusi dijeda hingga hasil setiap panggilan fungsi tersedia, yang memastikan pemrosesan berurutan.

Selain itu, penggunaan Live API dengan panggilan fungsi sangat efektif karena model dapat meminta informasi tindak lanjut atau klarifikasi dari pengguna. Misalnya, jika model tidak memiliki cukup informasi untuk memberikan nilai parameter ke fungsi yang ingin dipanggil, model dapat meminta pengguna untuk memberikan informasi lebih lanjut atau yang menjelaskan.

Klien harus merespons dengan BidiGenerateContentToolResponse.



Batasan dan persyaratan

Perhatikan batasan dan persyaratan berikut untuk Live API.

Transkripsi

Vertex AI in Firebase belum mendukung transkripsi. Periksa kembali nanti!

Languages

Format audio

Live API mendukung format audio berikut:

  • Format audio input: Audio PCM mentah 16 bit pada 16 kHz little-endian
  • Format audio output: Audio PCM mentah 16 bit pada 24 kHz little-endian

Batas kapasitas

Batas kapasitas berikut berlaku:

  • 10 sesi serentak per project Firebase
  • 4 juta token per menit

Durasi sesi

Durasi default untuk sesi adalah 30 menit. Jika durasi sesi melebihi batas, koneksi akan dihentikan.

Model juga dibatasi oleh ukuran konteks. Mengirim potongan input yang besar dapat mengakibatkan penghentian sesi lebih awal.

Deteksi aktivitas suara (VAD)

Model ini secara otomatis melakukan deteksi aktivitas suara (VAD) pada streaming input audio yang berkelanjutan. VAD diaktifkan secara default.

Penghitungan token

Anda tidak dapat menggunakan CountTokens API dengan Live API.