1. Sebelum memulai
Codelab ini menunjukkan cara menyiapkan Gemini Code Assist untuk memberikan saran penyesuaian kode yang disesuaikan dengan repositori pribadi Anda. Hal ini dapat membuat hasil dari Code Assist jauh lebih berguna, terutama bagi tim yang memiliki konvensi khusus untuk pekerjaan serupa yang sering diulang. Jangan khawatir, mengizinkan Gemini mengindeks codebase pribadi Anda untuk fitur ini tidak memungkinkan Gemini dilatih secara luas menggunakan kode pribadi Anda.
Kita juga akan membahas cara mengecualikan file sensitif atau tidak relevan dari pertimbangan untuk penyesuaian kode dengan file .aiexclude
.
Prasyarat
- Pemahaman dasar tentang Gemini Code Assist, dan akses ke project tempat fitur ini diaktifkan
- Memahami bahasa coding yang didukung untuk penyesuaian kode
- Kemampuan untuk membuat resource di
us-central1
ataueurope-west1
, karena penyesuaian kode memerlukan koneksi Developer Connect di lokasi tersebut. - Google Cloud CLI terbaru yang diautentikasi
Yang Anda pelajari
- Cara memanfaatkan penyesuaian kode di Gemini Code Assist Enterprise
- Salah satu dari banyak kasus penggunaan saat penyesuaian kode dapat menghemat waktu tim Anda
Yang Anda perlukan
- Gemini Code Assist project Google Cloud diaktifkan
- Repositori pribadi yang akan diindeks untuk permintaan penyesuaian
- Saatnya mengindeks kode untuk permintaan penyesuaian. Proses ini dapat memerlukan waktu hingga 24 jam
- IDE dengan Gemini Code Assist terinstal
2. Konteks
Untuk mencoba penyesuaian kode, Anda memerlukan dua hal:
- Akses ke project Google Cloud dengan Gemini yang diaktifkan
- dan Repositori pribadi untuk memberitahukan respons Gemini.
Repositori kandidat terbaik untuk diindeks Gemini akan berisi kode yang sering digunakan kembali di seluruh organisasi Anda. Repositori contoh yang disediakan untuk codelab ini berisi layanan web Spring Boot standar, dengan folder Data Transfer Object yang memenuhi kriteria ini, karena class serupa akan dibuat untuk mendeskripsikan setiap entitas dalam database saat ditranspor ke lapisan presentasi.
3. (Opsional) Penyiapan repositori
Jika Anda lebih suka menggunakan contoh repositori daripada repositori pribadi Anda sendiri, langkah-langkah berikut dapat diikuti di editor terminal pilihan Anda atau Cloud Shell. Mulai dengan membuat repositori pribadi untuk membantu kita melihat cara kerja penyesuaian kode:
mkdir customization-starter
cd customization-starter
curl https://start.spring.io/starter.zip -d dependencies=web,lombok \
-d javaVersion=21 \
-d type=maven-project \
-d bootVersion=3.3.4 -o cc-starter.zip
unzip cc-starter.zip
rm cc-starter.zip
pushd src/main/java/com/example/demo
mkdir dtos
touch dtos/LedgerDTO.java
Tambahkan kode berikut ke file LedgerDTO:
package com.example.demo.dtos;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
public class LedgerEntryDto {
private Long id;
private String accountName;
private double amount;
private String transactionType;
private String description;
private java.util.Date transactionDate;
}
Hal ini akan cukup untuk menunjukkan bahwa pengakses yang diharapkan akan digunakan oleh kontributor lain pada codebase ini akan dibuat secara akurat dengan penyesuaian kode yang diaktifkan.
Buat repositori baru, dan pastikan Anda tetap menjaga kerahasiaannya. Ikuti langkah-langkah di bawah untuk mengirim pemicu ke repositori baru Anda:
popd
gh auth login
git init
git add .
git commit -m "code customization starter"
git remote add origin git@github.com:<YOUR_GITHUB_ID>/customization-starter.git
git branch -M main
git push -u origin main
4. Mengecualikan file
Sebelum memberikan akses Gemini ke repositori pribadi Anda, penting untuk memahami cara mengecualikan file yang tidak relevan atau sensitif yang tidak ingin diindeks oleh tim Anda. File .aiexclude
digunakan untuk mencapai hal ini, yang mirip dengan .gitignore
dengan beberapa perbedaan utama:
- File
.aiexclude
kosong memblokir semua file di direktori dan semua subdirektorinya.- Ini sama dengan file yang berisi
**/*
.
- Ini sama dengan file yang berisi
- File
.aiexclude
tidak mendukung negasi (pola awalan dengan!
).
Dengan mempertimbangkan hal ini, coba pertimbangkan jenis file atau direktori yang ingin dikecualikan oleh tim Anda, dan cantumkan setiap jenis file atau direktori tersebut di baris terpisah:
#Block all files with .key extensions
*.key
#Block all files under sensitive/dir
my/sensitive/dir/
#Block all .key files under sensitive/dir
my/sensitive/dir/ /.key
5. Mengonfigurasi Developer Connect
Developer Connect adalah layanan yang memfasilitasi Koneksi dan Penautan ke repositori kode pribadi Anda di GitHub atau GitLab. Ini adalah mekanisme yang memungkinkan Gemini Code Assist terhubung dengan aman ke repositori pribadi Anda, untuk membuat indeks yang akan digunakan untuk meningkatkan respons.
Kedua konsep ini membantu Anda memahami cara Developer Connect memberikan akses ke kode Anda dengan aman:
Koneksi
- Merepresentasikan jembatan antara Google dan platform pengelolaan kode sumber pihak ketiga.
Link
- Merepresentasikan pengaitan dengan setiap repositori kode sumber yang Anda pilih dalam platform pengelolaan kode sumber yang terhubung.
Dengan mempertimbangkan konsep tersebut, mulailah dengan membuka halaman Developer Connect untuk mengaktifkan API untuk project Anda.
Selanjutnya, ikuti langkah-langkah yang sesuai untuk membuat Koneksi dan Link untuk GitHub, atau GitLab. Kedua resource tersebut akan dibuat selama proses wizard.
Ulangi langkah-langkah ini untuk membuat Link untuk setiap repositori yang ingin Anda pertimbangkan dalam responsnya oleh fitur penyesuaian kode Gemini. Anda dapat menggunakan kembali koneksi yang ada jika beberapa repositori berasal dari platform yang sama.
6. Buat dan hubungkan ke indeks
Untuk mengurai dan menganalisis repositori dengan cepat, penyesuaian kode bergantung pada Indeks. Catat INDEX_NAME yang Anda gunakan, karena Anda akan membutuhkannya di langkah berikutnya.
Untuk membuat indeks, jalankan perintah berikut:
gcloud gemini code-repository-indexes create <INDEX_NAME> \
--project=<YOUR_PROJECT_ID> \
--location=<REGION>
Jika Anda mengalami error Invalid choice: ...
, pastikan Google Cloud CLI Anda sudah yang terbaru dengan menjalankan perintah berikut:
gcloud components update
Selanjutnya, izinkan akses ke indeks Anda dengan membuat grup repositori:
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories='[{"resource": "projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY", "branch_pattern": "BRANCH_NAMES"}]'
Mengganti nilai berikut:
- REPOSITORY_GROUP: nama grup repositori yang akan Anda buat
- PROJECT_ID: ID project Google Cloud Anda.
- INDEX_NAME: nama indeks yang Anda tentukan di langkah sebelumnya untuk membuat indeks.
- REGION: region yang didukung dari daftar dalam dokumentasi, yang telah Anda konfigurasikan di Developer Connect di project Google Cloud Anda.
- INDEX_CONNECTION: koneksi indeks yang Anda buat di langkah sebelumnya untuk membuat indeks.
- REPOSITORY: repositori yang ingin Anda indeks. Anda harus menentukan minimal satu repositori, dan Anda dapat menentukan beberapa repositori sesuai kebutuhan.
- BRANCH_NAMES: nama cabang yang ingin diindeks, seperti main atau dev.
Bergantung pada jumlah repositori yang ingin diindeks dan ukurannya, pengindeksan konten dapat memerlukan waktu hingga 24 jam. Pengindeksan terjadi sekali setiap 24 jam, yang mengambil setiap perubahan yang dibuat di repositori. Anda dapat melihat langkah-langkah ini untuk memeriksa status pembuatan indeks Anda:
Terakhir, berikan akses utama yang diinginkan ke grup tersebut:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='PRINCIPAL' \
--role='roles/cloudaicompanion.repositoryGroupsUser'
7. Membuat kode yang disesuaikan
Setelah Gemini memiliki akses ke kode di repositori pribadi Anda, kami akan melihat cuplikan yang relevan muncul di permintaan penyelesaian kode kami. Di repositori contoh, kita dapat membuka folder DTO, dan saat membuat class baru untuk mewakili objek baru, Anda dapat melihat anotasi yang diharapkan muncul saat kita mengetik:
8. Kesimpulan
Selamat, Anda telah menyelesaikan Codelab ini. Anda telah mempelajari cara menggunakan fitur Penyesuaian Kode di Gemini Code Assist. Setelah respons Anda dapat disesuaikan dengan codebase pribadi khusus tim, setiap perintah dan penyelesaian kode akan lebih bernilai bagi developer di tim Anda.
Jangan ragu untuk meninjau dokumen dan materi lain ini untuk bacaan lebih lanjut, dan dukungan untuk hal-hal seperti menyiapkan peran IAM: