Lewati ke konten utama

Memulai dengan Gemini Live API

Pelajari cara membangun asisten suara real-time menggunakan Gemini Live API dan Google ADK. Kuasai WebSocket, pemanggilan alat, dan streaming audio native.
· 11 mnt Baca

Jelajahi bersama AI

Jika Anda pernah mencoba membangun asisten suara, Anda akan tahu betapa kaku alur tradisionalnya. Anda merekam suara pengguna, menyalinnya dengan model STT, mengirimkan teks itu ke LLM, menunggu respons, lalu menjalankannya melalui mesin TTS. 

Saat pengguna Anda mendengar jawaban, beberapa detik keheningan canggung sudah berlalu. Ini bukan percakapan, melainkan siklus permintaan-dan-respons yang lambat. 

Gemini Live API mengubah alur ini dengan memungkinkan Anda melakukan streaming audio dan video secara terus-menerus melalui koneksi WebSocket stateful. Karena model memproses dan menghasilkan audio secara native, model dapat bereaksi seketika, beradaptasi dengan nuansa vokal alami, dan bahkan menangani interupsi (barge-in) di tengah kalimat. 

Dalam tutorial ini, saya akan menunjukkan cara membangun Real-Time AI Travel Concierge menggunakan Google Agent Development Kit (ADK) yang berorientasi kode. Kita akan mempersenjatai agen kita dengan Google Search untuk pencarian cuaca tujuan secara langsung, menghubungkannya ke basis data penerbangan tiruan, dan menyiapkan antarmuka pengembang lokal untuk menguji bagaimana ia menangani dialog real-time dan pemanggilan alat.

Jika Anda baru di ekosistem ini, saya sarankan mulai dengan kursus Building AI Agents with Google ADK untuk membangun pengetahuan dasar Anda.

Apa yang akan Anda capai: 

  • Memahami cara kerja internal, kapabilitas, dan harga Gemini Live API.
  • Mengonfigurasi lingkungan Python dengan Google Agent Development Kit. 
  • Mengekspos alat bawaan (Google Search) dan logika bisnis kustom (pencarian status penerbangan di basis data) kepada asisten suara. 
  • Menjalankan UI web lokal untuk berbicara langsung dengan agen perjalanan Anda.

Prasyarat: 

  • Pemahaman dasar tentang Python. 
  • Proyek Google Cloud (untuk akses Vertex AI) atau kunci API Google AI Studio.

Apa itu Gemini Live API? 

Intinya, Gemini Live API adalah alat pengembang dari Google yang memungkinkan Anda membangun interaksi suara dan visi real-time dengan model Gemini. Alih-alih menunggu respons teks berbasis giliran, ini memungkinkan percakapan yang terus-menerus dan natural antara pengguna dan agen AI. 

Secara teknis, Gemini Live API dirancang untuk streaming dua arah secara real-time. Berbeda dengan HTTP REST API standar yang menggunakan siklus permintaan-respons tanpa status, Live API mengandalkan koneksi WebSocket (WSS) yang stateful dan persisten. Melalui saluran terbuka ini, klien melakukan streaming audio mentah, video (ditransmisikan sebagai bingkai gambar ~1 FPS), dan teks, sementara model mengalirkan kembali audio dan teks native secara instan.

Kapabilitas kunci Gemini Live

  • Barge-in (Dapat diinterupsi): Dalam percakapan manusia yang natural, kita tidak menunggu orang lain menyelesaikan satu paragraf penuh sebelum berbicara jika perlu klarifikasi. Gemini Live mendukung barge-in secara bawaan; pengguna dapat menyela ucapan model di tengah kalimat, dan server segera menghentikan streaming audio serta beradaptasi dengan masukan baru.
  • Dialog afektif dan audio native: Alih-alih menghasilkan teks dan mengoperkannya ke mesin Text-to-Speech (TTS), model seperti gemini-live-2.5-flash-native-audio dan gemini-3.1-flash-live-preview memproses dan menghasilkan audio secara native. Ini menjaga nuansa emosional, tawa, penyesuaian nada, dan ritme bicara, sehingga interaksi terasa seperti manusia. 
  • Masukan multimodal dan penggunaan alat: Live API tidak terbatas pada audio. Ia dapat "melihat" lingkungan Anda melalui bingkai video dan memicu fungsi atau alat eksternal (seperti Google Search atau API kustom) secara real-time, lalu memasukkan hasilnya kembali ke aliran suara.

Harga Gemini Live API

Karena streaming real-time melibatkan koneksi full-duplex yang berkelanjutan, model penagihan berbeda dari API teks statis standar. Google menawarkan tier gratis yang murah hati untuk prototyping di Google AI Studio dan tier berbayar siap produksi di Vertex AI. 

Model gemini-3.1-flash-live-preview ditagih per satu juta token atau dikonversi 

langsung ke metrik berbasis durasi untuk media audio dan video:

Metrik

Tier Gratis (Google AI Studio)

Tier Berbayar (Vertex AI)

Harga Input (Teks)

Gratis

$0,75 per 1M token

Harga Input (Audio)

Gratis

$3,00 per 1M token (atau $0,005 / menit)

Harga Input (Gambar/Video)

Gratis

$1,00 per 1M token (atau $0,002 / menit)

Harga Output (Teks)

Gratis

$4,50 per 1M token

Harga Output (Audio)

Gratis

$12,00 per 1M token (atau $0,018 / menit)

Grounding dengan Google Search

Gratis (dibatasi laju)

5.000 prompt/bulan pertama gratis, lalu $14 per 1.000 kueri

Jika Anda sedang membuat prototipe, saya sangat menyarankan untuk menguji secara gratis di Google AI Studio, yang menyediakan akses luas dengan batas laju tertentu. 

Saat Anda siap melakukan skala, Anda dapat memindahkan proyek ke Vertex AI untuk penyediaan produksi Pay-as-you-go, yang memberikan throughput terjamin dan SLA kelas perusahaan.

Cara Mengakses Gemini Live API

Sebagai pengembang, Anda memiliki beberapa pilihan arsitektur saat mengimplementasikan Live API. Karena mengandalkan WebSocket, cara Anda merutekan koneksi berpengaruh pada latensi dan keamanan.

Client-to-server vs server-to-server

  • Client-to-server: Frontend Anda (misalnya aplikasi web atau seluler) terhubung langsung ke endpoint WebSocket Google. Ini adalah pendekatan terbaik untuk meminimalkan latensi karena aliran audio tidak melalui lompatan ekstra. 
    • Namun, Anda tidak boleh mengekspos kunci API Google Cloud mentah di klien frontend; Anda harus menerapkan alur autentikasi yang menghasilkan token sementara dan sementara untuk akses klien yang aman.
  • Server-to-server: Frontend Anda melakukan streaming audio ke server backend Anda sendiri, yang kemudian membuka WebSocket ke Gemini Live API. Ini sangat aman dan memungkinkan Anda menyisipkan logika backend (seperti autentikasi pengguna atau pencarian basis data), namun menambahkan sedikit penundaan jaringan pada aliran audio.

SDK dan integrasi mitra

Meskipun Anda bisa menulis kode WebSocket mentah, cara termudah untuk memulai adalah dengan menggunakan GenAI SDK dari Google atau Agent Development Kit (ADK). 

Untuk produksi tingkat perusahaan, ekosistem ini telah berkembang pesat guna mendukung integrasi WebRTC. Platform seperti LiveKit, Pipecat by Daily, Twilio, dan Voximplant menawarkan infrastruktur andal untuk menangani jitter jaringan, pembatalan gema, dan perutean audio real-time langsung ke Gemini Live API.

Membangun Asisten Suara Real-Time dengan Gemini Live API

Mari kita praktikkan. Kita akan membangun AI Travel Concierge. 

Agen ini akan menggunakan Gemini Live API untuk bercakap dengan pengguna melalui suara, namun yang lebih penting, ia akan memiliki akses ke fungsi Python kustom untuk mencari status penerbangan real-time di tengah percakapan.

Kita akan menggunakan Google Agent Development Kit (ADK) dan model gemini-3.1-flash-live-preview yang tangguh, yang dioptimalkan untuk giliran teks standar dan streaming WebSocket real-time.

1. Menyiapkan lingkungan

Pertama, Anda perlu menyiapkan lingkungan virtual Python dan memasang paket ADK yang diperlukan. Jalankan perintah ini di terminal Anda:

# Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install the Agent Development Kit
pip install google-adk

Selanjutnya, konfigurasikan variabel lingkungan Anda agar ADK dapat melakukan autentikasi secara aman dengan proyek Google Cloud Anda:

export GOOGLE_CLOUD_PROJECT="your-project-id" 
export GOOGLE_CLOUD_LOCATION="us-central1"

Jika Anda menggunakan Kunci API Gemini dari Google AI Studio, buat file .env di folder root Anda:

GEMINI_API_KEY=your_google_ai_studio_api_key

2. Menginisialisasi agen Gemini Live 

Buat file bernama agent.py di direktori proyek Anda. ADK dirancang untuk secara otomatis mendeteksi dan menjalankan variabel root_agent. Dalam kode ini, kita akan mendefinisikan fungsi Python kustom untuk memeriksa status penerbangan, lalu meneruskannya langsung ke toolbelt agen. Inisialisasi direktori agen: 

mkdir voice_assistant 
touch voice_assistant/__init__.py 
touch voice_assistant/agent.py

Ekspos paket agen di dalam voice_assistant/__init__.py:

from . import agent

3. Mendefinisikan agen dan mengekspos alat kustom 

Buka voice_assistant/agent.py dan tulis konfigurasi agen perjalanan. Dalam kode di bawah, kita mendefinisikan fungsi Python standar check_flight_status. 

Dalam Google ADK, fungsi Python apa pun dengan type hint dan docstring yang benar akan otomatis diubah menjadi alat agen. LLM menggunakan deskripsi docstring dan parameter untuk menentukan kapan dan bagaimana memanggil fungsi tersebut. 

Konfigurasi model 

Memanfaatkan Gemini 3.1 Flash Live Preview Untuk mendukung kedua mode interaksi di server pengembangan ADK—obrolan teks standar (yang menggunakan endpoint REST generateContent standar) dan antarmuka mikrofon WebSocket dua arah real-time—kita secara eksplisit menetapkan model ke gemini-3.1-flash-live-preview.

Berbeda dengan model lama yang hanya streaming, yang mengembalikan 404 Not Found saat dipicu melalui permintaan HTTP REST standar, gemini-3.1-flash-live-preview secara native mendukung pembuatan konten REST standar dan streaming WebSocket stateful.

from google.adk.agents.llm_agent import Agent
from google.adk.tools import google_search
def check_flight_status(flight_no: str) -> str:
   """Check the real-time flight status (e.g. delays, gate info, cancellations).
   Args:
       flight_no: The flight number to look up (e.g., AA120, DL450, UA990).
   """
   flight_no = flight_no.upper().strip()
   if "AA120" in flight_no:
       return "Flight AA120 to Paris is currently delayed by 45 minutes due to air traffic control. New departure time: 3:15 PM. Gate status: B22."
   elif "DL450" in flight_no:
       return "Flight DL450 to London is on time. Gate status: Boarding now at Gate C10."
   elif "UA990" in flight_no:
       return "Flight UA990 to Tokyo is cancelled due to adverse weather conditions at the destination. Passengers are advised to rebook at the counter."
   else:
       return f"Flight {flight_no} is currently scheduled on time. No delay reports found in the flight database."
# Define the root agent with search grounding and custom database flight checks
root_agent = Agent(
   model='gemini-3.1-flash-live-preview',
   name='root_agent',
   description='A real-time AI Travel Concierge with flight tracking and search grounding.',
   instruction=(
       'You are an expert AI Travel Concierge. You assist users with real-time flight status checkups, '
       'destination recommendations, and general travel planning. '
       'Always answer professionally and conversationally. '
       'Use the check_flight_status tool when a user asks about a specific flight status. '
       'Use Google Search to look up weather, transit conditions, or travel advisories at destinations.'
   ),
   tools=[google_search, check_flight_status],
)

4. Menjalankan dan menguji UI dev interaktif

ADK menyertakan server pengembangan dan Web UI bawaan. Ini memungkinkan Anda menguji agen secara lokal tanpa menulis kode frontend apa pun. Mulai server web dari ruang kerja Anda:

.venv/bin/adk web .

Anda akan melihat output yang menunjukkan server telah berjalan:

perintah adk web di terminal

  1. Buka http://127.0.0.1:8000 di browser web Anda.
  2. Pilih agen Anda dari daftar aplikasi.
  3. Klik tombol Mikrofon untuk memulai sesi langsung.

antarmuka web adk

Pilih root_agent dari daftar aplikasi untuk membuka antarmuka chat.

4. Berbicaralah ke mikrofon Anda: Bisakah Anda memeriksa status penerbangan AA120? Agen akan mem-parsing permintaan Anda, mengenali bahwa ia memerlukan informasi basis data, memicu fungsi Python kustom check_flight_status, dan menampilkan hasil panggilan alat JSON sebelum mengucapkan respons kembali kepada Anda.

mengobrol dengan voice_assistant

5. Menguji Google Search Grounding:  Selanjutnya, tanyakan pertanyaan cuaca tujuan kepada concierge: Bagaimana cuaca di London saat ini? Agen akan mengaktifkan alat bawaan google_search, merayapi web, dan menyintesis kondisi terkini ke dalam output audionya.

respons agen

6. Menguji Fitur Barge-in: Ajukan pertanyaan umum seperti: Teritakan kepada saya situs sejarah terbaik untuk dikunjungi di Roma. Saat agen mulai membuat daftar lokasi, potong pembicaraan dengan suara keras: Sebenarnya, tunggu! Cek penerbangan UA990 sebagai gantinya!. Agen akan segera menghentikan aliran suaranya, menyela detail Roma, menjalankan alat pelacak penerbangan kustom, dan mengumumkan bahwa penerbangan UA990 dibatalkan. Ini menunjukkan sifat full-duplex berlatensi rendah dari koneksi Live API.

pertanyaan lanjutan untuk agen

Praktik Terbaik untuk Produksi Gemini Live API

Membangun aplikasi suara real-time menghadirkan kebutuhan unik seputar arsitektur prompt, manajemen status jaringan, pemasukan audio, dan penskalaan sumber daya. Berikut praktik terbaik utama yang diambil dari panduan pengembang resmi.

1. Merancang instruksi sistem yang jelas

Untuk mendapatkan performa terbaik dari Gemini Live, susun instruksi sistem (SI) Anda dalam hierarki ketat: Persona, Aturan Percakapan, dan Guardrail.

  • Pisahkan persona: Batasi peran setiap agen pada satu instruksi sistem yang khas alih-alih membebani satu agen dengan banyak persona.
  • Garisbawahi alur percakapan: Pisahkan secara eksplisit elemen satu kali (mis., "tanyakan nama dan nomor tiket pengguna satu kali") dari loop percakapan terbuka (mis., "jawab pertanyaan rekomendasi perjalanan selama yang mereka mau").
  • Tulis pemanggilan alat dalam kalimat: Jelaskan penggunaan alat secara berurutan. Contoh: 'Pertama, minta pengguna memberikan nomor tiket. Lalu panggil look_up_ticket dengan nomor tersebut.'
  • Terapkan konsistensi bahasa: Model audio native dapat bergeser bahasa jika konteks berubah. Jika agen Anda hanya berbahasa Inggris, tegakkan dalam instruksi Anda: RESPOND IN English. YOU MUST RESPOND UNMISTAKABLY IN English.

2. Definisi alat dan kondisi pemanggilan yang presisi

Saat mengekspos alat ke Live API:

  • Selalu sertakan anotasi tipe dan deskripsi parameter yang terperinci.
  • Dokumentasikan Kondisi Pemanggilan secara eksplisit di dalam deskripsi metadata alat (mis., "Panggil alat ini hanya setelah pengguna mengonfirmasi tanggal keberangkatan dan tujuan"). Ini mencegah LLM memicu fungsi terlalu dini.

3. Mengelola konteks audio native (Kompresi)

Token audio native terakumulasi cepat, kira-kira 25 token per detik percakapan. Untuk sesi suara yang berjalan lama, ini dapat dengan cepat memenuhi jendela konteks dan meningkatkan latensi.

  • Aktifkan ContextWindowCompressionConfig dalam pengaturan koneksi Anda untuk membuang riwayat yang lebih lama setelah ambang batas tercapai:
from google.genai import types
live_config = types.LiveConnectConfig(
   context_window_compression=types.ContextWindowCompressionConfig(
       trigger_tokens=100_000,
       sliding_window=types.SlidingWindow(target_tokens=4_000),
   ),
)

Catatan: Kompresi konteks akan menyebabkan riwayat percakapan lama hilang.

4. Pemulihan sesi yang transparan

Koneksi seluler real-time rentan terhadap kehilangan paket dan pemutusan sementara. Alih-alih memulai status percakapan baru dari nol, terapkan pemulihan sesi yang transparan:

  • Konfigurasikan stream Anda dengan SessionResumptionConfig(transparent=True).
  • Dengarkan event session_resumption_update dari server dan simpan new_handle.
  • Pertahankan buffer lokal untuk pesan keluar. Saat koneksi terputus, tangkap APIError atau sinyal GoAway, sambungkan ulang menggunakan handle yang disimpan, dan putar ulang hanya pesan klien yang belum diakui (gunakan server-reported last_consumed_client_message_index untuk memangkas buffer).

5. Optimalisasi streaming audio

  • Buffering klien: Jangan membuffer bingkai audio panjang di klien sebelum mengirim. Stream potongan audio kecil (antara 20 ms dan 40 ms) secara terus-menerus untuk meminimalkan latensi ujung-ke-ujung.
  • Resampling mikrofon: Pastikan penangkapan audio sisi klien melakukan resampling masukan (biasanya 44,1 kHz atau 48 kHz) turun ke 16 kHz PCM sebelum dikirim melalui WebSocket.
  • Sinyal VAD eksplisit: Biarkan model menangani Voice Activity Detection (VAD). Jika frontend Anda perlu menampilkan indikator UI segera (mis., "AI sedang mendengarkan" vs "AI sedang berpikir"), aktifkan explicit_vad_signal=True dalam konfigurasi Anda untuk menerima event VAD mulai/berhenti langsung dalam alur pesan server.

6. Keamanan (manajemen token)

  • Jangan pernah hardcode master key: Hindari mengekspos kunci API AI Studio atau kredensial Google Cloud Service Account dalam kode sisi klien (peramban atau aplikasi seluler).
  • Terapkan pertukaran token sementara: Bangun endpoint autentikasi di backend aman Anda. Saat klien ingin memulai sesi suara, backend menghasilkan token akses OAuth atau API yang berdurasi singkat dan terbatas (mis., melalui Vertex AI IAM) dan memberikannya ke klien. Klien menggunakan kredensial sementara ini untuk membuka koneksi WebSocket langsung.

Kesimpulan: Horison AI Percakapan

Transisi dari LLM berbasis teks bergiliran ke streaming multimodal berlatensi rendah mewakili pergeseran paradigma dalam cara kita membangun antarmuka manusia-komputer. Dengan memproses audio dan video secara native melalui koneksi WebSocket stateful, Gemini Live API memungkinkan kita membangun pengalaman agen yang terasa kurang seperti program perangkat lunak statis dan lebih seperti interaksi manusia yang cair.

Sepanjang panduan ini, kita mengeksplorasi arsitektur internal Gemini Live, meninjau model harga, dan membangun AI Travel Concierge yang sepenuhnya fungsional dengan memanfaatkan Google Agent Development Kit (ADK). Kita melihat bagaimana ADK memetakan fungsi Python standar menjadi alat agen aktif, memberi asisten suara kita akses ke grounding pencarian web yang luas dan pencarian basis data internal privat.

Apa yang Dibangun Selanjutnya? 

Sekarang Anda sudah menguasai dasar-dasar agen suara real-time, pertimbangkan untuk memperluas AI Travel Concierge Anda: 

  1. Ekspos Streaming Video Langsung: Tambahkan dukungan untuk transmisi gambar kamera agar concierge dapat "melihat" peta, boarding pass, atau voucher perjalanan fisik secara real-time. 
  2. Integrasikan Alat Transaksional Kustom: Implementasikan alat book_flight atau reserve_hotel yang memutakhirkan status aktual, mengintegrasikan cakupan autentikasi untuk konfirmasi pengguna yang aman. 
  3. Perutean Middleware Produksi: Beralih dari pengujian ADK lokal ke kerangka berbasis WebRTC menggunakan LiveKit atau Pipecat untuk melakukan streaming panggilan suara produksi langsung dari aplikasi web dan seluler.

Siap membangun alur kerja percakapan yang lebih canggih? Lihat jalur keterampilan AI Agent Fundamentals dari DataCamp untuk memperdalam pengetahuan Anda tentang arsitektur agen, penggunaan alat, dan deployment AI generatif.

Aryan Irani

Penulis

Aryan Irani

Saya menulis dan berkarya di internet. Google Developer Expert untuk Google Workspace, lulusan Ilmu Komputer dari NMIMS, serta pembangun yang antusias di bidang otomasi dan Kecerdasan Buatan Generatif.

Topik

Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Spaghetti Plot dan Jalur Badai