Tutorial

AI Architect #6: Streaming Response (Efek Ngetik Otomatis)

· 2 min read
AI
AI Architect #6: Streaming Response (Efek Ngetik Otomatis)

Secara teknis, daripada nunggu server AI selesai ngeproses semua token, kita minta server buat ngirimin token satu per satu begitu mereka selesai dibuat.

🧩 1. Konsep Dasar Streaming

Tanpa streaming, alurnya adalah: Kirim Prompt -> Server Mikir -> Kirim Jawaban Utuh -> Selesai. Dengan streaming, alurnya: Kirim Prompt -> Server Kirim Kata 1 -> Server Kirim Kata 2 -> ... -> Selesai.


🚀 2. Praktek di Python (Gemini API)

Di library Python, kita cuma perlu nambahin satu parameter: stream=True. Tapi cara nampilinnya beda, kita harus pakai perulangan for.

import google.generativeai as genai
import sys # Buat paksa print muncul di baris yang sama

model = genai.GenerativeModel('gemini-1.5-flash')

# 1. Kirim dengan mode stream=True
response = model.generate_content(
    "Tuliskan sebuah cerita pendek tentang petualangan Kay di dunia AI.",
    stream=True 
)

print("AI sedang mengetik: ", end="")

# 2. Ambil potongannya satu per satu
for chunk in response:
    # chunk.text berisi potongan kata yang baru jadi
    print(chunk.text, end="")
    
    # Biar tampilannya beneran real-time di terminal
    sys.stdout.flush() 

print("\n\n--- Selesai ---")

🚀 3. Kenapa Harus Pakai sys.stdout.flush()?

Kadang terminal itu "pelit", dia mau ngumpulin teks agak banyak dulu baru ditampilin. Dengan flush(), kita maksa komputer buat: "Woi, apa pun yang ada di memori sekarang, langsung tampilin ke layar!". Inilah yang bikin efek ngetiknya jadi mulus banget.


💡 Strategi AI Architect: Kapan Pakai Streaming?

Situasi Pakai Streaming? Kenapa?
Chatbot / Asisten WAJIB Biar user ngerasa lagi ngobrol sama makhluk hidup.
Data Extraction (JSON) TIDAK Kita butuh datanya lengkap dulu baru bisa diolah JavaScript.
Bikin Artikel Panjang SANGAT DISARANKAN Menunggu 1000 kata muncul sekaligus itu sangat membosankan.

❗ Tips untuk Pemula

  • Error Handling: Di tengah-tengah streaming, internet bisa putus. Pastikan kamu siapin try...except buat nangkep kalau tiba-tiba koneksi hilang di tengah jalan.
  • Integrasi Frontend: Nanti kalau kamu hubungin ini ke JavaScript (Season 2), kamu bakal pakai teknologi namanya Server-Sent Events (SSE) buat nerusin "ketikan" ini ke browser user.

🎯 Kesimpulan

Streaming adalah rahasia di balik aplikasi AI yang terasa "hidup". Kamu sudah belajar cara narik data secara bertahap. Sekarang aplikasi kamu gak bakal bikin user kabur karena nungguin loading yang kelamaan!

Share this article