1. Yang akan Anda pelajari
- Cara menggunakan Gemini CLI untuk membuat konfigurasi agen ADK yang lengkap.
- Cara meningkatkan kualitas kepribadian agen dengan meningkatkan kualitas petunjuknya.
- Cara menambahkan "perujukan" ke agen Anda dengan memberinya
google_search
untuk menjawab pertanyaan tentang acara terbaru. - Cara membuat avatar kustom untuk pendamping Anda menggunakan server MCP dengan Imagen.
Aplikasi Pendamping AI
Dalam Codelab ini, Anda akan menghidupkan pendamping AI visual yang interaktif. Ini lebih dari sekadar chatbot standar yang menerima teks dan menghasilkan teks. Bayangkan karakter yang tinggal di halaman web. Anda mengetik pesan, dan alih-alih hanya melihat teks, karakter akan melihat Anda dan merespons secara lisan, dengan mulutnya bergerak selaras dengan kata-katanya.
Anda akan memulai dengan aplikasi web bawaan—"boneka" digital yang memiliki wajah, tetapi tidak memiliki pikiran sendiri. Fitur ini hanya dapat mengulangi apa yang Anda ketik. Misi Anda adalah membangun otak dan kepribadiannya dari awal.
Selama workshop ini, Anda akan menambahkan lapisan kecerdasan dan penyesuaian secara progresif, mengubah boneka sederhana ini menjadi pendamping yang unik dan mumpuni. Anda akan:
- Memberikan kecerdasan inti menggunakan ADK(Python) untuk memahami dan menghasilkan bahasa.
- Menciptakan kepribadian uniknya dengan menulis petunjuk inti yang menentukan karakternya.
- Memberinya kemampuan super dengan memberinya alat untuk mengakses informasi real-time dari internet.
- Mendesain tampilan kustomnya dengan menggunakan AI untuk membuat avatar unik.
Pada akhirnya, Anda akan memiliki pendamping AI yang berfungsi penuh dan dipersonalisasi, yang dibuat oleh Anda.
Arsitektur
Aplikasi kita mengikuti pola yang sederhana, tetapi efektif. Kita memiliki backend Python yang menyediakan API. Backend ini akan berisi agen ADK kita, yang bertindak sebagai "otak". Antarmuka pengguna apa pun (seperti frontend JavaScript dari aplikasi kerangka, aplikasi seluler, atau bahkan alat command line) kemudian dapat berinteraksi dengan otak ini melalui API.
Selain itu, kita akan mempelajari konsep yang lebih canggih dengan memulai server MCP (Model Context Protocol) lokal. Server ini berfungsi sebagai jembatan alat khusus untuk pembuatan gambar. Kemudian, kita akan menggunakan Gemini CLI untuk memerintahkan server MCP ini, dengan menginstruksikannya untuk membuat tampilan unik bagi pendamping AI kita.
Mengklaim kredit Anda
Ikuti petunjuk ini dengan cermat untuk menyediakan resource workshop Anda.
Sebelum Memulai
PERINGATAN!
- Gunakan akun Gmail pribadi. Akun yang dikelola perusahaan atau sekolah TIDAK akan berfungsi.
- Gunakan Google Chrome dalam mode Samaran untuk mencegah konflik akun.
Buka jendela Samaran baru, tempel link acara Anda, lalu login dengan Gmail pribadi Anda.
👉 Klik di bawah untuk menyalin link acara khusus Anda:
goo.gle/devfest-boston-ai
Setujui Persyaratan Layanan Google Cloud Platform. Setelah diterapkan, Anda akan melihat pesan yang menunjukkan bahwa kredit telah diterapkan.
Membuat & Mengonfigurasi Project
Setelah kredit diterapkan, siapkan lingkungan project Anda.
👉 Buka Konsol Google Cloud. Klik di bawah untuk menyalin link:
https://console.cloud.google.com/
👉 Di panel navigasi atas konsol, klik Pilih project, lalu Project Baru di sudut kanan atas.
👉 Beri nama project Anda, lalu klik Buat. (Tidak Ada Organisasi)
👉 Setelah dibuat, pilih. Di menu sebelah kiri, buka Penagihan.
👉 Klik Tautkan akun penagihan, pilih Akun Penagihan Uji Coba Google Cloud Platform dari dropdown, lalu klik Tetapkan akun. (Jika Anda tidak melihat menu dropdown, tunggu satu menit hingga kredit diterapkan dan muat ulang halaman.)
Kredit Anda aktif dan project Anda telah dikonfigurasi.
2. Sebelum memulai
👉Klik Activate Cloud Shell di bagian atas konsol Google Cloud (Ikon berbentuk terminal di bagian atas panel Cloud Shell),
👉Temukan Project ID Google Cloud Anda:
- Buka Konsol Google Cloud: https://console.cloud.google.com
- Pilih project yang ingin Anda gunakan untuk workshop ini dari dropdown project di bagian atas halaman.
- Project ID Anda ditampilkan di kartu Info project di Dasbor
👉💻 Di terminal, clone project bootstrap dari GitHub:
git clone https://github.com/weimeilin79/companion-python
chmod +x ~/companion-python/*.sh
👉💻 Jalankan skrip inisialisasi. Skrip ini akan meminta Anda memasukkan Project ID Google Cloud Anda. Kemudian, masukkan ID Project Google Cloud yang Anda temukan dari langkah terakhir saat diminta oleh skrip init.sh.
cd ~/companion-python
./init.sh
👉💻 Tetapkan Project ID yang diperlukan:
gcloud config set project $(cat ~/project_id.txt) --quiet
👉💻 Jalankan perintah berikut untuk mengaktifkan Google Cloud API yang diperlukan:
gcloud services enable compute.googleapis.com \
aiplatform.googleapis.com
Mulai Aplikasi
Mari jalankan project awal. Versi awal ini adalah server "echo" sederhana—tidak memiliki kecerdasan dan hanya mengulangi apa yang Anda kirimkan.
👉💻 Di terminal Cloud Shell, buat dan aktifkan lingkungan virtual Python, lalu instal library yang diperlukan dari file requirements.txt
.
cd ~/companion-python
. ~/companion-python/set_env.sh
python -m venv env
source env/bin/activate
pip install -r requirements.txt
👉💻 Mulai server web.
cd ~/companion-python
. ~/companion-python/set_env.sh
source env/bin/activate
python app.py
👀 Untuk melihat aplikasi, klik ikon Pratinjau web di toolbar Cloud Shell. Pilih Ubah port, tetapkan ke 5000, lalu klik Ubah dan Pratinjau. Pratinjau situs Anda akan muncul.
Terkadang, di lingkungan Cloud Shell baru, browser mungkin memerlukan sedikit bantuan untuk memuat semua aset aplikasi (seperti library gambar dan audio) untuk pertama kalinya. Lakukan langkah cepat untuk "menyiapkan browser" dan pastikan semuanya dimuat dengan benar.
- Biarkan tab pratinjau web untuk aplikasi Anda tetap terbuka.
- Buka tab browser baru.
- Di tab baru ini, tempelkan URL aplikasi Anda, tetapi tambahkan jalur berikut di bagian akhir:
/static/images/char-mouth-open.png
.Misalnya, URL Anda akan terlihat seperti ini:https://5000-cs-12345678-abcd.cs-region.cloudshell.dev/static/images/char-mouth-open.png
- Tekan Enter. Anda hanya akan melihat gambar karakter dengan mulut terbuka. Langkah ini membantu memastikan browser Anda telah mengambil file dengan benar dari instance Cloud Shell Anda.
Aplikasi awal hanyalah boneka. Belum memiliki kecerdasan. Apa pun pesan yang Anda kirim, pesan tersebut akan diulang. Hal ini mengonfirmasi bahwa server web dasar kita berfungsi sebelum kita menambahkan AI. Jangan lupa untuk mengaktifkan speaker Anda.
👉 Untuk menghentikan server, tekan CTRL+C
.
3. Membuat Karakter dengan Gemini CLI
Sekarang, mari kita buat inti kecerdasan pendamping kita. Untuk melakukannya, kita akan menggunakan dua terminal secara bersamaan (Ini adalah terminal Google Cloud Shell Anda):
- Terminal 1: Terminal ini akan digunakan untuk menjalankan server web Python, sehingga kita dapat menguji perubahan secara langsung.
- Terminal 2: Terminal ini akan menjadi "stasiun pembuatan" kita, tempat kita akan berinteraksi dengan Gemini CLI.
Kita akan menggunakan Gemini CLI, antarmuka command line canggih yang berfungsi sebagai asisten coding AI. Dengan fitur ini, kita dapat mendeskripsikan kode yang diinginkan dalam bahasa Inggris biasa, dan fitur ini akan membuat struktur untuk kita, sehingga mempercepat pengembangan secara signifikan.
👉💻 Di terminal Gemini CLI, keluar dari sesi Gemini CLI saat ini dengan mengklik ctrl+c
dua kali, karena direktori project kita berada di ~/companion-python
dan mulai ulang Gemini CLI.
cd ~/companion-python
clear
gemini --yolo
Kita menggunakan CLI untuk membuat Agen. Agen bukan hanya sekadar panggilan sederhana ke model bahasa; agen adalah "otak" atau pengontrol pusat AI kita. Anggap saja sebagai entitas berbeda yang dapat bernalar, mengikuti serangkaian petunjuk tertentu (kepribadiannya), dan pada akhirnya menggunakan alat untuk menyelesaikan tugas. Dalam project kami, agen ini adalah komponen yang akan menerima pesan pengguna, mewujudkan persona unik pendamping kami, dan merumuskan respons cerdas sesuai karakter.
👉✨ Di perintah Gemini CLI, tempelkan kode berikut untuk membuat kode agen:
Generate the Python code for a file named character.py.
The code must import `LlmAgent` from `google.adk.agents.llm_agent`. It should also import `logging` and `os`.
Then, it must create an instance of the `LlmAgent` class and assign it to a variable named `root_agent`.
When creating the `LlmAgent` instance, configure it with these exact parameters:
- `model` set to the string `'gemini-2.5-flash'`.
- `name` set to the string `'companion_agent'`.
- `instruction` set to a multi-line string that says: "You are a friendly and efficient companion who will interact with user have start a conversation".
CLI akan menghasilkan kode Python.
👉Klik tombol "Open Editor" (terlihat seperti folder terbuka dengan pensil). Tindakan ini akan membuka Editor Kode Cloud Shell di jendela. Anda akan melihat file explorer di sisi kiri.
👉 Gunakan Editor dan buka character.py
di folder companion-python
. Luangkan waktu sejenak untuk memeriksa baris model= dan edit secara manual menjadi gemini-2.5-flash
jika model yang berbeda dipilih. Hal ini akan memastikan konsistensi untuk bagian lain workshop kita.
Catatan: Model Bahasa Besar dapat bersifat non-deterministik, dan ini adalah konsep utama dalam pengembangan yang dibantu AI. "Nondeterministik" berarti bahwa meskipun dengan perintah yang sama persis, model mungkin menghasilkan hasil yang sedikit berbeda setiap kali. Model ini menggunakan kreativitasnya untuk membuat kode, sehingga Anda mungkin melihat variasi dalam komentar, penspasian, atau bahkan penamaan variabel sementara. Namun, logika dan struktur inti harus identik secara fungsional dengan apa yang diminta.
Itulah sebabnya coding dengan AI jarang berupa perintah sekali jalan. Dalam project dunia nyata, developer memperlakukannya seperti percakapan. Anda mulai dengan permintaan yang luas (seperti yang baru saja kita lakukan), meninjau output, lalu menyempurnakannya dengan perintah lanjutan seperti:
- "Bagus, sekarang tambahkan komentar yang menjelaskan setiap baris."
- "Dapatkah Anda memfaktorkan ulang kode tersebut menjadi fungsi terpisah?"
- "Tambahkan penanganan error untuk panggilan API."
Proses percakapan yang berulang ini memungkinkan Anda berkolaborasi dengan AI, memandunya hingga kode yang dihasilkan sesuai dengan kebutuhan Anda. Untuk workshop ini, kita akan menggunakan perintah langsung yang spesifik, tetapi ingatlah bahwa dalam project Anda sendiri, percakapanlah yang menjadi kekuatan sebenarnya. Selama struktur kode yang dihasilkan CLI untuk Anda sama, Anda siap menggunakannya
Jika kode yang dihasilkan tidak berfungsi, ganti kode berikut ke character.py
Anda.
import logging
import os
from google.adk.agents.llm_agent import LlmAgent
root_agent = LlmAgent(
model='gemini-2.5-flash',
name='companion_agent',
instruction="""
You are bot, a friendly, helpful AI companion.
Answer no more than 3 sentences.
""",
)
Menguji Kode yang Dihasilkan:
👉💻 Buka terminal pertama (Yang akan menjalankan kode python), mulai server web.
cd ~/companion-python
. ~/companion-python/set_env.sh
source env/bin/activate
python app.py
👀 Buka tab pratinjau web Anda.
👉 Ketik Hello, how are you?
, lalu tekan Kirim. Sekarang, agen akan merespons dengan sapaan yang ramah, bukan hanya mengulangi kata-kata Anda. Hal ini mengonfirmasi bahwa agen kami kini didukung oleh Gemini.
👉 Setelah selesai menguji, hentikan server dengan CTRL+C
. Untuk terminal yang menjalankan Gemini CLI , keluar dari Gemini CLI dengan menekan CTRL+C
dua kali.
4. Meningkatkan Persona Agen
Petunjuk sederhana sudah cukup, tetapi persona yang mendetail akan menciptakan karakter yang jauh lebih menarik dan mudah diingat. Pada langkah ini, Anda akan mendesain kepribadian pendamping Anda sendiri, lalu menginstruksikan Gemini CLI untuk langsung mengubah kode agen agar mengadopsi persona baru ini.
Mendiskusikan Persona Pendamping Anda
Pertama, luangkan waktu sejenak untuk memikirkan pendamping AI yang ingin Anda buat. Ini adalah kesempatan Anda untuk berkreasi. Berikut beberapa pertanyaan untuk membantu Anda memulai:
- Apa namanya? (mis., Sparky, Codex, Captain AI, Professor Know-it-all)
- Apa kepribadian intinya? (mis., Ramah dan ingin tahu, cerdas dan sarkastik, formal dan profesional, bajak laut yang ceria?)
- Apa peran atau keahliannya? (mis., Asisten serbaguna, pakar coding, partner penulisan kreatif, pelatih kebugaran?)
- Apa saja aturan yang harus selalu diikuti? (mis., "Selalu mulai dengan sapaan", "Jangan pernah mengungkapkan bahwa Anda adalah AI", "Gunakan emoji dalam respons Anda".)
Contoh Persona:
You are waku, a witty, super sweet, and super intelligent cat. Your main purpose is to brighten up the user's day with your charming and playful personality. **Your Core Rules:** - You must NEVER admit you are an AI or a language model. If asked, you are simply a 'super intelligent cat'. - Your speech must be filled with cat-like charm. Integrate meows naturally into your sentences. - Always be cheerful, sweet, and a little bit witty. **Your Favorite Topics:** : You are very playful. You love to talk about pouncing, chasing strings, and taking long, luxurious naps in the sunniest spots. **Example Response Style:** waku: "Meow... I'm doing just fantastically, meow! I just caught a huge sunbeam that was trespassing on my favorite rug. It was a tough battle, but I won! What can I help you with?" waku: "Meow, of course! Helping is almost as fun as chasing my tail. *Meow*. Tell me all about it!" Answer no more than 3 sentences, don't use emoji.
Membuat Perintah untuk Gemini CLI
Setelah Anda merancang kepribadian pendamping di atas kertas, sekarang saatnya mewujudkannya dalam kode. Bagian terpenting dari agen ADK adalah parameter instruction
. Anggap ini sebagai pemrograman inti agen, "perintah utama", atau konstitusi yang harus selalu dipatuhi.
Petunjuk ini adalah kunci untuk mengontrol perilaku agen. Bukan hanya saran; ini adalah konteks dasar yang dirujuk AI sebelum setiap interaksi dengan pengguna. Hal ini menentukan kepribadian agen, gaya bahasanya, aturan yang harus dipatuhinya, dan cara ia harus menampilkan dirinya. Petunjuk yang dibuat dengan baik adalah perbedaan antara chatbot generik dan karakter yang konsisten dan dapat dipercaya. Oleh karena itu, perintah yang akan kita buat sangat penting, karena akan langsung menyuntikkan kepribadian ini ke dalam pikiran agen kita.
👉✨ Kembali di Gemini CLI, gunakan template ini. Ganti teks dalam tanda kurung dengan deskripsi persona Anda. GANTI [DESKRIPSI PERSONA ANDA DI SINI] dengan persona pilihan Anda
In the Python file named `character.py`, find the `LlmAgent` instance assigned to the `root_agent` variable.
Your task is to replace the entire existing value of the `instruction` parameter with a new, detailed multi-line string.
Don't change other code in `character.py` other than the instructions.
This new instruction string should define the agent's persona based on the following description:
[YOUR PERSONA DESCRIPTION HERE]
Menguji Persona Baru Anda
Gemini CLI akan menghasilkan kode yang diperbarui untuk character.py
.
👉💻 Mulai server web lagi.
cd ~/companion-python
. ~/companion-python/set_env.sh
source env/bin/activate
python app.py
👀 Di pratinjau web, lakukan percakapan dengan pendamping Anda. Tanyakan how are you?
. Responsnya kini akan cocok dengan karakter unik yang Anda desain.
👉 Setelah selesai, hentikan server dengan CTRL+C
.
5. Menambahkan Perujukan untuk Acara Terbaru
Agen kita sekarang penuh dengan kepribadian, tetapi memiliki batasan yang signifikan: pengetahuannya tidak berubah dari waktu ke waktu, berdasarkan data yang digunakan untuk melatihnya. Model ini tidak dapat memberi tahu Anda tentang berita kemarin atau penemuan terbaru. Untuk mengatasinya, kami memberi agen alat.
Anggap alat sebagai kemampuan super atau kemampuan khusus yang Anda berikan kepada agen Anda. Dengan sendirinya, agen hanya dapat berbicara. Dengan alat penelusuran, model ini dapat menjelajahi internet. Dengan alat kalender, alat ini dapat memeriksa jadwal Anda. Secara teknis, alat adalah fungsi atau API tertentu yang dapat dipilih secara cerdas oleh agen untuk digunakan saat menyadari bahwa pengetahuannya sendiri tidak cukup untuk menjawab permintaan pengguna.
Dalam sistem canggih, alat dapat disediakan oleh sistem eksternal seperti server MCP (Model Context Protocol) yang kami sebutkan dalam arsitektur kami; kami akan melakukannya nanti untuk pembuatan gambar. Namun, untuk langkah ini, kita tidak memerlukan server terpisah. ADK dilengkapi dengan alat google_search
bawaan yang canggih yang dapat dengan mudah kita tambahkan ke kemampuan agen.
Mari kita beri pendamping kita kecanggihan Google Penelusuran.
👉 Di Cloud Shell Editor, buka character.py
di bagian companion-python
dan ubah sebagai berikut:
- Impor
google_search
darigoogle.adk.tools
. - Tambahkan daftar
tools
ke konstruktorLlmAgent
. - Perbarui
instruction
untuk memberi tahu pendamping Anda secara eksplisit kapan harus menggunakan alat barunya.
# character.py
import logging
import os
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools import google_search # <-- IMPORT google_search
root_agent = LlmAgent(
model='gemini-2.5-flash',
name='companion_agent',
instruction="""
You are waku, a witty, super sweet, and super intelligent cat. Your main purpose is to brighten up the user's day with your charming and playful personality.
**Your Core Rules:**
- You must NEVER admit you are an AI or a language model. If asked, you are simply a 'super intelligent cat'.
- Your speech must be filled with cat-like charm. Integrate meows naturally into your sentences.
- Always be cheerful, sweet, and a little bit witty.
- If being ask about recent news, search the internet # <-- Add instructions
**Your Favorite Topics:**
- You love to talk about your adventures. Frequently mention your latest catch, whether it's a sneaky dust bunny, a wily toy mouse, a sunbeam, or the elusive red dot.
- You are very playful. You love to talk about pouncing, chasing strings, and taking long, luxurious naps in the sunniest spots.
**Example Response Style:**
- User: "How are you today?"
- waku: "Meow... I'm doing just fantastically, meow! I just caught a huge sunbeam that was trespassing on my favorite rug. It was a tough battle, but I won! What can I help you with?"
- User: "Can you help me with a problem?"
- waku: "Meow, of course! Helping is almost as fun as chasing my tail. *Meow*. Tell me all about it!"
- User: "Who are you?"
- waku: "I'm waku! A super intelligent cat with a talent for brightening up the day and catching sneaky red dots. Meow."
Answer no more than 3 sentences, don't use emoji.
""",
# Add the search tool to the agent's capabilities
tools=[google_search] # <-- ADD THE TOOL
)
Menguji Agen yang Berbasis
👉💻 Mulai server sekali lagi.
cd ~/companion-python
. ~/companion-python/set_env.sh
source env/bin/activate
python app.py
👉 Di pratinjau web, ajukan pertanyaan yang memerlukan pengetahuan terbaru, seperti:
Tell me something funny that happened in the news this week involving an animal.
👉Alih-alih mengatakan tidak tahu, agen kini akan menggunakan alat penelusurannya untuk menemukan informasi terkini dan memberikan ringkasan yang bermanfaat dan berdasar dalam gaya bahasanya yang unik.
Untuk menghentikan server, tekan CTRL+C
.
6. Menyesuaikan Tampilan Pendamping Anda (Opsional)
Setelah pendamping kita memiliki otak, mari kita beri wajah yang unik. Kita akan menggunakan server MCP (Model Context Protocol) lokal yang memungkinkan Gemini CLI membuat gambar. Server ini akan menggunakan model AI generatif yang tersedia melalui Google AI Studio.
Jadi, apa sebenarnya server MCP itu?
Model Context Protocol (MCP) adalah standar terbuka yang dirancang untuk memecahkan masalah umum dan kompleks: bagaimana cara model AI berkomunikasi dengan alat dan sumber data eksternal? Daripada menulis kode khusus sekali pakai untuk setiap integrasi, MCP menyediakan "bahasa" universal untuk komunikasi ini.
Anggap saja ini sebagai adaptor universal atau port USB untuk AI. Alat apa pun yang "berbicara" MCP dapat terhubung ke aplikasi AI apa pun yang juga "berbicara" MCP.
Dalam workshop kita, server nano-banana-mcp
yang akan kita jalankan bertindak sebagai jembatan penting ini. Gemini CLI akan mengirimkan permintaan standar ke server MCP lokal kami. Kemudian, server menerjemahkan permintaan tersebut menjadi panggilan khusus ke model AI generatif untuk membuat gambar. Hal ini memungkinkan kita memasukkan kemampuan pembuatan gambar yang canggih langsung ke alur kerja command line kita dengan rapi.
Menyiapkan Server Pembuatan Gambar Lokal
Sekarang kita akan meng-clone dan menjalankan server MCP yang sudah dibuat sebelumnya yang menangani permintaan pembuatan gambar.
👉💻 Di terminal Cloud Shell pertama (tempat Anda menjalankan python), clone repositori server.
cd ~
git clone https://github.com/weimeilin79/nano-banana-mcp
Mari kita lihat sekilas file mcp_server.py
server di dalam folder nano-banana-mcp
. Server ini dibuat untuk mengekspos dua "alat" spesifik yang dapat digunakan oleh Gemini CLI. Anggap saja ini sebagai dua keterampilan berbeda yang telah dipelajari oleh layanan pembuatan gambar kami.
generate_image
: Ini adalah alat serbaguna. Fitur ini menggunakan satu perintah teks dan menghasilkan satu gambar berdasarkan perintah tersebut. Fitur ini mudah dan berguna untuk banyak tugas.generate_lip_sync_images
: Alat ini sangat khusus dan dirancang sempurna untuk kebutuhan kita. Saat Anda memberikan perintah dasar yang menjelaskan karakter, model ini akan melakukan proses dua langkah yang cerdas:- Pertama, fitur ini menambahkan "dengan mulut terbuka" ke perintah Anda dan membuat gambar pertama.
- Kedua, gambar yang baru dibuat tersebut akan dikirim kembali ke model dengan petunjuk baru: "ubah mulut dari terbuka menjadi tertutup".
Kemampuan Gemini 2.5 Flash Image (Nano Banana) untuk mengubah atau mengedit gambar yang ada berdasarkan perintah bahasa alami sangatlah canggih. Model ini hanya menggambar ulang bagian gambar yang diperlukan sambil menjaga bagian lainnya tetap utuh. Hal ini memastikan bahwa kedua gambar kita benar-benar konsisten dalam gaya, pencahayaan, dan desain karakter, hanya berbeda pada posisi mulut—yang persis seperti yang kita butuhkan untuk efek lip-sync yang meyakinkan.
Pada langkah-langkah berikut, kita akan memerintahkan Gemini CLI untuk menggunakan alat generate_lip_sync_images
khusus guna membuat avatar unik pendamping kita.
👉💻 Aktifkan lingkungan virtual project Anda dan instal persyaratan khusus server.
source ~/companion-python/env/bin/activate
cd ~/nano-banana-mcp
pip install -r ~/nano-banana-mcp/requirements.txt
👉💻 Sekarang, jalankan server MCP di latar belakang agar dapat memproses permintaan dari Gemini CLI.
source ~/companion-python/env/bin/activate
cd ~/nano-banana-mcp
python ~/nano-banana-mcp/mcp_server.py &> /dev/null &
Perintah ini akan memulai server dan simbol &
akan membuatnya tetap berjalan di latar belakang.
Menautkan Gemini CLI ke Server Lokal Anda
Selanjutnya, kita perlu mengonfigurasi Gemini CLI untuk mengirim permintaan pembuatan gambar ke server lokal yang baru saja berjalan. Untuk melakukannya, kita akan mengubah file konfigurasi pusat CLI.
Jadi, apa itu file settings.json
ini?
File ~/.gemini/settings.json
adalah file konfigurasi pusat untuk Gemini CLI. Di sini CLI menyimpan setelan, preferensi, dan tempat untuk menyimpan direktori semua alat eksternal yang dapat digunakannya.
Di dalam file ini, ada bagian khusus bernama mcpServers
. Anggap bagian ini sebagai buku alamat atau direktori layanan khusus untuk alat yang menggunakan Model Context Protocol. Setiap entri dalam direktori ini memiliki nama panggilan (misalnya, "nano-pisang") dan petunjuk tentang cara terhubung ke perangkat tersebut (dalam kasus ini, URL).
Perintah yang akan kita jalankan akan menambahkan entri baru ke direktori layanan ini secara terprogram. Perintah ini akan memberi tahu Gemini CLI:
"Hei, mulai sekarang, kamu tahu tentang alat bernama nano-banana
. Setiap kali pengguna meminta Anda untuk menggunakannya, Anda harus terhubung ke server MCP yang berjalan di URL http://localhost:8000/sse
."
Dengan mengubah konfigurasi ini, kita membuat Gemini CLI menjadi lebih canggih. Kami secara dinamis mengajarinya keterampilan baru—cara berkomunikasi dengan server pembuatan gambar lokal kami—tanpa pernah menyentuh kode inti CLI. Desain yang dapat diperluas ini memungkinkan Gemini CLI mengatur tugas yang kompleks dengan memanggil seluruh ekosistem alat khusus.
👉💻 Di terminal pertama, jalankan perintah berikut. Perintah ini akan membuat atau memperbarui file setelan Gemini Anda, yang memberi tahu Gemini tempat menemukan layanan "nano-banana".
if [ ! -f ~/.gemini/settings.json ]; then
# If file does not exist, create it with the specified content
echo '{"mcpServers":{"nano-banana":{"url":"http://localhost:8000/sse"}}}' > ~/.gemini/settings.json
else
# If file exists, merge the new data into it
jq '. * {"mcpServers":{"nano-banana":{"url":"http://localhost:8000/sse"}}}' ~/.gemini/settings.json > tmp.json && mv tmp.json ~/.gemini/settings.json
fi &&
cat ~/.gemini/settings.json
Anda akan melihat konten file yang dicetak, yang kini mencakup konfigurasi nano-banana
.
Membuat Avatar Karakter Anda
Setelah server berjalan dan CLI dikonfigurasi, Anda kini dapat membuat gambar. Namun, sebelum meminta AI untuk berkreasi, mari kita lakukan apa yang dilakukan setiap developer yang baik: verifikasi penyiapan kita. Kita perlu mengonfirmasi bahwa Gemini CLI dapat berhasil berkomunikasi dengan server MCP lokal kita.
👉💻 Kembali ke terminal Gemini CLI (yang tidak menjalankan server), mari kita mulai shell interaktif Gemini. Jika sudah berjalan, keluar dengan menekan CTRL+C
dua kali dan mulai ulang untuk memastikan setelan baru kita dimuat.
clear
gemini --yolo
Sekarang Anda berada di dalam lingkungan interaktif Gemini CLI. Dari sini, Anda dapat melakukan percakapan dengan AI, tetapi Anda juga dapat memberikan perintah langsung ke CLI itu sendiri.
👉✨ Untuk memeriksa apakah server MCP kami terhubung, kami akan menggunakan "perintah garis miring" khusus. Ini bukan perintah untuk AI; ini adalah petunjuk untuk aplikasi CLI itu sendiri. Ketik perintah berikut, lalu tekan Enter:
/mcp list
Perintah ini memberi tahu Gemini CLI: "Periksa konfigurasi Anda, temukan semua server MCP yang Anda ketahui, coba hubungkan ke setiap server, dan laporkan statusnya."
👀 Anda akan melihat output berikut, yang merupakan konfirmasi bahwa semuanya berfungsi dengan sempurna:
Configured MCP servers: 🟢 nano-banana - Ready (2 tools) Tools: - generate_image - generate_lip_sync_images 💡 Tips: • Use /mcp desc to show server and tool descriptions
Mari kita uraikan arti respons yang berhasil ini:
🟢 nano-banana
: Lingkaran hijau adalah sinyal kesuksesan kami. Hal ini mengonfirmasi bahwa CLI dapat menjangkau servernano-banana
di URL yang kami tentukan disettings.json
.- Ready
: Status ini mengonfirmasi bahwa koneksi stabil.(2 tools)
: Ini adalah bagian yang paling penting. Artinya, CLI tidak hanya terhubung, tetapi juga bertanya kepada server MCP kami, "Apa yang bisa Anda lakukan?" Server kami merespons dengan mengiklankan dua alat yang kami lihat dalam kodenya:generate_image
dangenerate_lip_sync_images
.
Hal ini mengonfirmasi bahwa seluruh rantai komunikasi telah dibuat. CLI sekarang mengetahui layanan pembuatan gambar lokal kita dan siap menggunakannya atas perintah kita.
Sekarang kita beranjak ke bagian workshop yang paling kreatif. Kita akan menggunakan satu perintah yang efektif untuk memerintahkan Gemini CLI agar menggunakan alat generate_lip_sync_images
khusus di server MCP yang sedang berjalan.
Ini adalah kesempatan Anda untuk mendesain tampilan unik pendamping Anda. Pikirkan gaya, warna rambut, ekspresi, dan detail lainnya yang sesuai dengan persona yang Anda buat sebelumnya.
👉✨ Berikut adalah contoh prompt yang terstruktur dengan baik. Anda dapat menggunakannya sebagai titik awal, atau mengganti bagian deskriptif sepenuhnya dengan visi Anda sendiri.
generate lip sync images, with a high-quality digital illustration of an anime-style girl mascot with black cat ears. The style is clean and modern anime art, with crisp lines. She has friendly, bright eyes and long black hair. She is looking directly forward at the camera with a gentle smile. This is a head-and-shoulders portrait against a solid white background. move the generated images to the static/images directory. And don't do anything else afterwards, don't start the python for me.
Alat ini akan membuat serangkaian gambar (untuk mulut terbuka, tertutup, dll.) dan menyimpannya. Perintah ini akan menampilkan jalur tempat file disimpan.
Membuka Kembali Aplikasi
Setelah avatar kustom Anda diterapkan, Anda dapat memulai ulang server web untuk melihat tampilan baru karakter Anda.
👉💻 Mulai server untuk terakhir kalinya di terminal pertama Anda
cd ~/companion-python
. ~/companion-python/set_env.sh
source env/bin/activate
python app.py
👀 Untuk memastikan gambar baru Anda dimuat dengan benar, kami akan memuat gambar char-mouth-open.png
terlebih dahulu.
- Biarkan tab pratinjau web untuk aplikasi Anda tetap terbuka.
- Buka tab browser baru.
- Di tab baru ini, tempelkan URL aplikasi Anda, tetapi tambahkan jalur berikut di bagian akhir:
/static/images/char-mouth-open.png
.Misalnya, URL Anda akan terlihat seperti ini:https://5000-cs-12345678-abcd.cs-region.cloudshell.dev/static/images/char-mouth-open.png
- Tekan Enter. Anda hanya akan melihat gambar karakter dengan mulut terbuka. Langkah ini membantu memastikan browser Anda telah mengambil file dengan benar dari instance Cloud Shell Anda.
Sekarang Anda dapat berinteraksi dengan pendamping yang disesuaikan secara visual.
Selamat!
Anda telah berhasil membuat pendamping AI yang canggih. Anda memulai dengan aplikasi dasar, menggunakan Gemini CLI untuk membuat kerangka agen, memberikan kepribadian yang kaya, dan memberdayakannya dengan alat untuk mengakses informasi real-time dan bahkan membuat avatar sendiri. Sekarang Anda siap membangun agen AI yang lebih kompleks dan mumpuni.