Tutorial ini menunjukkan cara terhubung ke Gemini Live API menggunakan Google Gen AI SDK untuk Python. Dalam tutorial ini, Anda akan membuat aplikasi multimodal real-time dengan backend Python yang tangguh untuk menangani koneksi API.
Sebelum memulai
Selesaikan langkah-langkah berikut untuk menyiapkan lingkungan Anda.
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init - Instal Git.
- Instal Python 3.
Meng-clone aplikasi demo
Buat clone repositori aplikasi demo dan buka direktori tersebut:
git clone https://github.com/GoogleCloudPlatform/generative-ai.git &&
cd generative-ai/gemini/multimodal-live-api/native-audio-websocket-demo-apps/plain-js-python-sdk-demo-app
Struktur project
Aplikasi ini mencakup file berikut:
/
├── main.py # FastAPI server and WebSocket endpoint
├── gemini_live.py # Gemini Live API wrapper using Gen AI SDK
├── requirements.txt # Python dependencies
└── frontend/
├── index.html # User Interface
├── main.js # Application logic
├── gemini-client.js # WebSocket client for backend communication
├── media-handler.js # Audio/Video capture and playback
└── pcm-processor.js # AudioWorklet for PCM processing
Mengonfigurasi variabel lingkungan
Untuk tujuan demo ini, satu-satunya variabel lingkungan yang perlu kita
konfigurasi adalah variabel yang menentukan ID project Google Cloud Anda. Perintah
berikut membuat file .env yang menetapkan variabel lingkungan PROJECT_ID.
Ganti PROJECT_ID dengan project ID project Google Cloud Anda.
echo "PROJECT_ID=PROJECT_ID" > .env
Menjalankan server backend
Backend (main.py) menangani koneksi antara klien dan
Gemini Live API. Titik entri adalah server FastAPI yang mengekspos endpoint WebSocket. Aplikasi ini menerima potongan audio dan video dari frontend dan meneruskannya
ke sesi GeminiLive. Class GeminiLive di gemini_live.py membungkus
genai.Client untuk mengelola sesi.
# Connects using the SDK
async with self.client.aio.live.connect(model=self.model, config=config) as session:
# Manages input/output queues
await asyncio.gather(
send_audio(),
send_video(),
receive_responses()
)
Untuk menjalankan server backend, jalankan perintah berikut:
Instal dependensi:
pip3 install -r requirements.txtMengautentikasi dengan Google Cloud:
gcloud auth application-default loginMulai server:
python3 main.py
Buka UI frontend dan hubungkan dengan Gemini
Frontend mengelola perekaman dan pemutaran audio dan video. File
gemini-client.js menangani koneksi WebSocket ke backend. Aplikasi ini
mengirimkan potongan media berenkode base64 ke backend dan menerima respons audio
dari Gemini Live API, yang kemudian diputar kembali kepada pengguna.
Untuk membuka UI frontend dan terhubung dengan Gemini, lakukan hal berikut:
- Buka browser Anda dan buka http://localhost:8000.
- Klik Hubungkan.
Berinteraksi dengan Gemini
Coba lakukan hal berikut:
- Input teks: Anda dapat menulis pesan teks ke Gemini dengan memasukkan pesan Anda di kolom pesan, lalu mengklik Kirim. Gemini merespons pesan menggunakan audio.
- Input suara: Untuk berbicara dengan Gemini, klik Mulai mikrofon. Gemini merespons perintah menggunakan audio.
- Input video: Agar Gemini dapat melihat melalui kamera Anda, klik Mulai kamera. Anda dapat berbicara dengan Gemini tentang apa yang dilihatnya melalui kamera Anda.
Langkah berikutnya
- Pelajari cara mengonfigurasi bahasa dan suara.
- Pelajari cara mengonfigurasi kemampuan Gemini.
- Pelajari praktik terbaik Gemini Live API.