Membangun aplikasi AI tercanggih dengan Large Language Model (LLM), terutama yang menangani input multimodal dan membutuhkan respons real-time, terkadang terasa seperti menyusun teka-teki yang rumit: Anda menggabungkan berbagai langkah pemrosesan data, panggilan API asinkron, dan logika khusus. Seiring dengan bertambahnya kompleksitas, ini bisa menyebabkan kode yang rapuh dan sulit dipelihara.
Hari ini, kami memperkenalkan GenAI Processors, library Python open source baru dari Google DeepMind yang dirancang untuk memberikan struktur dan kesederhanaan pada berbagai tantangan ini. GenAI Processors menyediakan lapisan abstraksi, mendefinisikan antarmuka Processor
yang konsisten untuk segala hal mulai dari penanganan input dan pra-pemrosesan hingga panggilan model dan pemrosesan output.
Pada intinya, GenAI Processors memperlakukan semua input dan output sebagai aliran data asinkron ProcessorParts
(yaitu streaming dua arah alias bidirectional). Ibaratkan ini sebagai bagian data terstandardisasi (mis., potongan audio, transkripsi teks, bingkai gambar) yang mengalir melalui pipeline Anda bersama dengan metadata terkait. API berbasis aliran data ini memungkinkan rantai dan komposisi berbagai operasi secara lancar, mulai dari manipulasi data level rendah hingga panggilan model level tinggi.
Sebagai contoh, Anda bisa dengan mudah membangun “Agen Langsung” yang mampu memproses streaming audio dan video secara real-time menggunakan Gemini Live API hanya dengan beberapa baris kode. Pada contoh berikut, perhatikan bagaimana sumber input dan langkah pemrosesan digabungkan menggunakan operator +
, menciptakan aliran data yang jelas (kode lengkap di GitHub):
from genai_processors.core import audio_io, live_model, video
# Input processor: combines camera streams and audio streams
input_processor = video.VideoIn() + audio_io.PyAudioIn(...)
# Output processor: plays the audio parts. Handles interruptions and pauses
# audio output when the user is speaking.
play_output = audio_io.PyAudioOut(...)
# Gemini Live API processor
live_processor = live_model.LiveProcessor(...)
# Compose the agent: mic+camera -> Gemini Live API -> play audio
live_processor = live_model.LiveProcessor(...)
live_agent = input_processor + live_processor + play_output
async for part in live_agent(streams.endless_stream()):
# Process the output parts (e.g., print transcription, model output, metadata)
print(part)
Anda juga bisa membangun Agen Langsung Anda sendiri, dengan memanfaatkan LLM berbasis teks standar, menggunakan kemampuan streaming dua arah library GenAI Processor dan Google Speech API (kode lengkap di GitHub):
from genai_processors.core import genai_model, realtime, speech_to_text, text_to_speech
# Input processor: gets input from audio in (mic) and transcribes into text
input_processor = audio_io.PyAudioIn(...) + speech_to_text.SpeechToText(... )
play_output = audio_io.PyAudioOut(...)
# Main model that will be used to generate the response.
genai_processor = genai_model.GenaiModel(...),
# TTS processor that will be used to convert the text response to audio. Note
# the rate limit audio processor that will be used to stream back small audio
# chunks to the client at the same rate as how they are played back.
tts = text_to_speech.TextToSpeech(...) + rate_limit_audio.RateLimitAudio(...)
# Creates an agent as:
# mic -> speech to text -> text conversation -> text to speech -> play audio
live_agent = (
input_processor
+ realtime.LiveModelProcessor(turn_processor=genai_processor + tts)
+ play_output
)
async for part in live_agent(streams.endless_stream()):
…
Kami mengantisipasi kebutuhan yang terus meningkat akan aplikasi LLM proaktif dengan responsivitas sebagai hal yang sangat penting. Bahkan untuk kasus penggunaan non-streaming, memproses data segera setelah tersedia bisa secara signifikan mengurangi latensi dan time to first token (TTFT), yang sangat penting untuk membangun pengalaman pengguna yang baik. Meskipun banyak API LLM memprioritaskan antarmuka yang sinkron dan sederhana, GenAI Processors – dengan memanfaatkan fitur Python native – menawarkan cara untuk menulis aplikasi responsif tanpa membuat kode semakin kompleks. Contoh perencana perjalanan dan Agen Riset menunjukkan cara agen berbasis giliran dapat menggunakan fitur serentak GenAI Processors untuk meningkatkan responsivitas.
Inti dari GenAI Processors adalah konsep Processor
: komponen penyusun fundamental yang mengelompokkan unit kerja tertentu. Ia menerima aliran data input, menjalankan operasi, dan menghasilkan aliran data output. API yang sederhana serta konsisten ini merupakan landasan kekuatan dan fleksibilitas library.
Berikut adalah keputusan desain utama dan manfaatnya bagi developer:
Processor
mandiri. Ini memastikan penggunaan ulang kode, kemampuan pengujian, dan secara signifikan menyederhanakan pemeliharaan pipeline yang rumit.asyncio
Python untuk menangani tugas yang terikat I/O dan terikat komputasi secara efisien. Ini memungkinkan aplikasi responsif tanpa threading manual atau manajemen serentak yang kompleks.GenaiModel
(untuk interaksi berbasis giliran) dan LiveProcessor
(untuk streaming real-time) menyederhanakan interaksi dengan Gemini API, termasuk kompleksitas Live API. Hal ini mengurangi boilerplate dan mempercepat integrasi.ProcessorPart
menyediakan antarmuka yang konsisten untuk menangani beragam tipe data (teks, gambar, audio, JSON, dll.) di dalam pipeline.Memulai GenAI Processors sangatlah mudah. Anda bisa menginstalnya dengan pip:
pip install genai-processors
Agar Anda semakin familier dengan library ini, kami menyediakan rangkaian notebook Colab yang akan memandu Anda memahami konsep utama dan mendemonstrasikan cara membangun berbagai jenis prosesor dan aplikasi. Kami menyarankan untuk memulai dengan Content API Colab dan Processor Intro Colab.
Anda juga bisa menjelajahi direktori examples/ dalam repositori untuk melihat demonstrasi praktis tentang cara membangun aplikasi yang lebih kompleks, seperti agen riset dan agen komentar langsung.
GenAI Processors saat ini masih dalam tahap awal, dan kami percaya bahwa ia memberikan fondasi yang tangguh untuk menangani tantangan alur kerja dan orkestrasi yang kompleks dalam aplikasi AI. Meskipun Google GenAI SDK tersedia dalam berbagai bahasa, GenAI Processors saat ini hanya mendukung Python.
Direktori core/ berisi prosesor fundamental, dan kami secara aktif mendorong kontribusi komunitas untuk fungsi yang lebih khusus dalam direktori contrib/. Kami sangat senang dapat berkolaborasi dengan komunitas developer untuk memperluas library dan membangun sistem AI yang lebih canggih lagi.
Siap membangun aplikasi Gemini yang lebih tangguh dan responsif?
Lihat repositori GenAI Processors di GitHub: https://github.com/google-gemini/genai-processors
Kami tak sabar ingin segera melihat kreasi yang Anda buat!
GenAI Processors adalah hasil dari dedikasi dan kerja keras tim yang luar biasa. Kami ingin mengucapkan terima kasih kepada orang-orang ini yang memainkan peran penting dalam mewujudkan library ini: Juliette Love, KP Sawhney, Antoine He, Will Thompson, Arno Eigenwillig, Ke Wang, Parth Kothari, Tim Blyth, Philipp Schmid, Patrick Löber, Omar Sanseviero, Alexey Kolganov, Adam Langley, Evan Senter, Seth Odoom, Thierry Coppey, dan Murat Ozturk.