Geliştiriciler için Gemini Code Assist (eski adıyla Duet AI) Turu

1. Giriş

Bu laboratuvarda, Google Cloud'da yapay zeka destekli bir ortak çalışan olan Gemini Code Assist'i (eski adıyla Geliştiriciler için Duet AI) kullanacaksınız. Kod oluşturmak, kodu anlamak ve daha fazlası için Gemini Chat ve satır içi kod yardımını nasıl kullanabileceğinizi öğreneceksiniz.

Yapacağınız işlemler

  • Bir web uygulamasının mevcut kod şablonunu indirmek için Cloud Shell IDE'yi kullanacaksınız.
  • Google Cloud hakkında genel sorular sormak için Cloud Shell IDE'de Gemini Chat'i kullanacaksınız.
  • Kod oluşturmak, özetlemek ve tamamlamak için Cloud Shell IDE'de Gemini Code Assist Satır İçi kod yardımını kullanacaksınız.

Öğrenecekleriniz...

  • Gemini Code Assist; kod oluşturma, kod tamamlama ve kod özetleme gibi çeşitli geliştirici görevleri için nasıl kullanılır?
  • Google Cloud hakkında bilgi edinmek amacıyla Cloud için Gemini'ı kullanma.

Gerekenler

  • Chrome web tarayıcısı
  • Gmail hesabı
  • Faturalandırmanın etkin olduğu bir Cloud projesi
  • Cloud projeniz için Gemini Code Assist etkinleştirildi

Bu laboratuvar, yeni başlayanlar da dahil olmak üzere her seviyeden geliştiriciye yöneliktir. Örnek uygulama Python dilinde olsa da, neler olduğunu anlamak için Python programlamasına aşina olmanız gerekmez. Gemini Code Assist'in geliştiricilere yönelik özelliklerini öğrenmeye odaklanacağız.

2. Kurulum

Bu bölümde, bu laboratuvara başlamak için yapmanız gereken tüm işlemler ele alınmaktadır.

Google Cloud projesinde Cloud için Gemini'ı etkinleştirme

Artık Google Cloud projemizde Cloud için Gemini'ı etkinleştireceğiz. Aşağıda verilen adımları uygulayın:

  1. https://console.cloud.google.com adresini ziyaret edip bu laboratuvarda çalışmayı planladığınız Google Cloud projesini seçtiğinizden emin olun. Sağ üstte gördüğünüz Gemini'ı aç simgesini tıklayın.

28f084ec1e159938.png

  1. Cloud için Gemini sohbet penceresi, konsolun sağ tarafında açılır. Aşağıda gösterildiği gibi Etkinleştir düğmesini tıklayın. Etkinleştir düğmesini görmüyorsanız bunun yerine bir Chat arayüzü gösteriliyorsa büyük olasılıkla söz konusu projede Cloud için Gemini'ı etkinleştirmişsinizdir. Doğrudan sonraki adıma geçebilirsiniz.

e8df9adc4ea43a37.png

  1. Etkinleştirildikten sonra Cloud için Gemini'ı birkaç sorgu sorarak test edebilirsiniz. Birkaç örnek sorgu gösteriliyor ancak What is Cloud Run? gibi bir sorgu deneyebilirsiniz

9859ea86a8310cb.png

Cloud için Gemini, sorunuzun yanıtını verecek. Cloud için Gemini sohbet penceresini kapatmak için sağ üst köşedeki f68286b2b2ea5c0a.png simgesini tıklayabilirsiniz.

Cloud Shell IDE'de Gemini Code Assist'i etkinleştirme

Codelab'in geri kalanında, tümüyle yönetilen Code OSS tabanlı bir geliştirme ortamı olan Cloud Shell IDE'yi kullanacağız. Cloud Shell IDE'de Code Assist'i etkinleştirip yapılandırmamız gerekir. Gerekli adımlar aşağıda verilmiştir:

  1. ide.cloud.google.com adresini ziyaret edin. IDE'nin görünmesi biraz zaman alabilir, bu yüzden lütfen sabırlı olun.
  2. Gösterilen durum çubuğunda Cloud Code - Oturum aç düğmesini tıklayın. Talimatlara göre eklentiyi yetkilendirin. Durum çubuğunda "Cloud Code - proje yok" ifadesini görüyorsanız bunu seçin ve ardından, üzerinde çalışmayı planladığınız projeler listesinden ilgili Google Cloud projesini seçin.

6f5ce865fc7a3ef5.png

  1. Gösterildiği gibi sağ alt köşedeki Gemini düğmesini tıklayın ve doğru Google Cloud projesi için son bir kez daha seçim yapın. Cloud AI Companion API'yi etkinleştirmeniz istenirse lütfen bunu yapın ve devam edin.
  2. Google Cloud projenizi seçtikten sonra, durum çubuğundaki Cloud Code durum mesajında bunu gördüğünüzden ve sağdaki durum çubuğunda Code Assist'in etkin olduğundan emin olun:

709e6c8248ac7d88.png

Gemini Code Assist kullanıma hazır.

İsteğe bağlı: Sağ alttaki durum çubuğunda Gemini'ı görmüyorsanız Cloud Code'da Gemini'ı etkinleştirmeniz gerekir. Bu işlemi gerçekleştirmeden önce, Cloud Code Uzantısı → Ayarlar'a gidip Gemini'ın IDE'de etkinleştirildiğinden emin olun. Ardından, aşağıda gösterildiği gibi Gemini metnini girin. Onay kutusunun işaretli olduğundan emin olun. IDE'nizi yeniden yüklemeniz gerekir.Bu işlem, Cloud Code'da Gemini'ı etkinleştirir ve durum çubuğundaki Gemini simgesi IDE'nizde görünür.

228c9c9c6b956c8e.png

3. Örnek uygulamayı oluşturma

Gemini Code Assist'in özelliklerini keşfetmek için kullanacağımız örnek bir uygulama (Python Flask uygulaması) oluşturacağız.

Şu adımları uygulayın:

  1. Aşağıdaki durum çubuğunda Google Cloud projesinin adını tıklayın.

f151759c156c124e.png

  1. Bir seçenek listesi görünür. Aşağıdaki listeden New Application'ı (Yeni Uygulama) tıklayın.

91ea9836f38b7f74.png

  1. Cloud Run uygulamasını seçin.
  2. Python (Flask): Cloud Run uygulama şablonunu seçin.
  3. Yeni uygulamayı tercih ettiğiniz konuma kaydedin.
  4. Uygulamanızın oluşturulduğunu onaylayan bir bildirim alırsınız ve uygulamanız, aşağıda gösterildiği gibi yüklenmiş olarak yeni bir pencere açılır. Bir README.md dosyası açılır. Bu görünümü şimdilik kapatabilirsiniz.

aaa3725b17ce27cf.png

4. Gemini ile sohbet et

İlk olarak Gemini ile nasıl sohbet edeceğinizi öğreneceğiz. Gemini, VS Code'daki Cloud Code uzantısının bir parçası olarak Cloud Shell IDE'de sohbet asistanı olarak kullanılabilir. Sol gezinme çubuğundaki Gemini düğmesini tıklayarak bu sayfayı görüntüleyebilirsiniz. Sol gezinme araç çubuğunda Gemini simgesini a489f98a34898727.png bulup tıklayın.

Bunu yaptığınızda Cloud Shell IDE'de Chat: GeminiI bölmesi açılır ve Google Cloud'da yardım almak için Gemini ile sohbet edebilirsiniz.

14ad103efaa0ddaa.png

İstem girmek ve Gemini'daki yanıtı görüntülemek için Gemini sohbet panelini kullanmamıza izin verin. Aşağıdaki istemi girin:

What is Cloud Run? 

Gemini, yanıt vererek Cloud Run ile ilgili ayrıntıları paylaşmalıdır. İstemler, ihtiyacınız olan yardımı açıklayan sorular veya ifadelerdir. İstemler, Google Cloud'un daha faydalı veya eksiksiz yanıtlar sağlamak için analiz ettiği mevcut koddaki bağlamı içerebilir. İyi yanıtlar oluşturmak için istem yazma hakkında daha fazla bilgi edinmek istiyorsanız Google Cloud'da Gemini için daha iyi istem yazma başlıklı makaleyi inceleyin.

Google Cloud hakkında soru sormak için aşağıdaki örnek istemleri veya kendi istemlerinizi deneyin:

  • What is the difference between Cloud Run and Cloud Functions?
  • What services are available on Google Cloud to run containerized workloads?
  • What are the best practices to optimize costs while working with Google Cloud Storage?

Üstteki çöp kutusu simgesine dikkat edin. Bu şekilde, Code Assist sohbet geçmişinin bağlamını sıfırlayabilirsiniz. Ayrıca, bu sohbet etkileşiminin IDE'de üzerinde çalıştığınız dosyaların bağlamına bağlı olduğunu unutmayın.

5. Kod Açıklaması

Gemini Code Assist, bağlam değiştirmeyi en aza indirirken daha üretken olmanıza yardımcı olmak için doğrudan kod düzenleyicinizde yapay zeka destekli akıllı işlemler sağlar. Kodunuzu kod düzenleyicinizde seçtiğinizde bağlamınızla ilgili işlemler listesini görüntüleyip seçebilirsiniz.

Uygulama kodunun bazı kısımlarını anlamanıza yardımcı olması için Gemini Code Assist'i kullanabilirsiniz. Önceki adımda oluşturduğumuz uygulamaya dönün. IDE'nizde bulunan dosyaları ve kodu açıklamak için Gemini Code Assist'i kullanabilirsiniz.

  1. Dosyalar görünmüyorsa IDE etkinlik çubuğunda Explorer'i ( Code OSS Gezgini menüsü) tıklayın.
  2. Gezgin bölmesinde Dockerfile'ı seçin.
  3. Dosya içeriğinin herhangi bir bölümünü seçip ampu ( Code OSS Duet AI ampulü) ve ardından Gemini: Bunu açıkla'yı tıklayabilirsiniz. Örneğin, ENTRYPOINT ile başlayan satırı seçin, ampulü ( Code OSS Duet AI ampulü) ve ardından Gemini: Bunu açıkla'yı tıklayın. Gemini, Dockerfile'ın daha fazla bilgi edinmek istediğiniz bölümü hakkında doğal dilde bir açıklama oluşturur. Gemini, ENTRYPOINT talimatıyla ilgili ayrıntılarla yanıt verir. Bu talimat doğrultusunda Docker'ın, container başlatıldığında app.py dosyasını çalıştıracağını öğrendiniz.
  4. app.py dosyasının içeriğini görüntülemek için etkinlik çubuğunda Gezgin'i ( Code OSS Gezgini menüsü) tıklayın ve app.py öğesini seçin.
  5. hello() işlevinin tanımında, hakkında daha fazla bilgi edinmek istediğiniz satırları seçebilirsiniz. Ardından ampulü ( Code OSS Duet AI ampulü) ve Gemini : Bunu açıkla'yı tıklayın. Örneğimizde, aşağıdaki iki kod satırını seçtik ve ardından Gemini: Bunu açıkla işlemini tetikledik.

14d9c56af016b65d.png

  1. Gemini, bu iki Cloud Run ortam değişkenini (K_SERVICE, K_REVISION) ve bunların uygulama kodunda nasıl kullanıldıklarını ayrıntılı bir şekilde açıklayarak yanıt veriyor. Google Cloud ve Cloud Run gibi hizmetler hakkındaki bilgisiyle Gemini'ın hem Python kodunu açıklamakla kalmayıp hem de bu değişkenlerin Cloud Run'daki anlamı hakkında bilgi verdiğini unutmayın.

Kod açıklaması almak için aşağıdaki ek yöntemleri deneyin:

  1. app.py'yi IDE'de açık olan dosya olarak tutun. VS Code'da soldaki gezinme çubuğundan Gemini sohbet paneline gidip Bu dosyayı açıkla istemini girin. Bu işlem, dosyanın tamamını göz önünde bulunduracak ve size açıklayacaktır.
  2. Ayrıca, dosyanın herhangi bir bölümünü seçip soldaki Gemini sohbet panelini kullanıp Bunu açıkla istemini de girebilirsiniz. Bu açıklama, dosyanın yalnızca seçilen bölümünü açıklar. Bu işlem, ampulü( Code OSS Duet AI ampulü) ve ardından Gemini: Bunu açıkla'yı tıklamanıza benzer.
  3. Ayrıca, metnin bir bölümünü seçip IDE'nin sağ üst köşesinden Gemini: Smart Actions'ı tıklayarak aşağıda gösterildiği gibi, seçili metin üzerinde gerçekleştirilebilecek işlemlerin listesini görebilirsiniz. Aşağıdaki seçeneklerden biri de Bunu açıkla işlemidir:

adeb72acd708174.png

6. İstemlerle kod oluşturma

Bu bölümde, yorumlardan kod oluşturmak için Gemini Code Assist'in nasıl kullanılacağı gösterilmektedir.

Bu özellikleri deneyelim. Aşağıda verilen adımları uygulayın:

  1. utils.py adlı yeni bir dosya oluşturun.
  2. Yeni kod dosyanıza yeni bir satıra # Function to print a list of blobs in a Google Cloud Storage bucket yazın, ardından Enter (Windows ve Linux için) veya Return (MacOS için) tuşlarına basın. Gemini, siz yazarken kod oluşturmaya çalışsa da kodu kabul etmez. Özellikle kod oluşturma işlemini sonraki adımda tetikleyeceğiz.
  3. Kod oluşturma işlemini tetiklemek için Control+Enter (Windows ve Linux için) veya Control+Return (MacOS için) tuşlarına basın. Python dosyasındaki istem metninizin yanında, Gemini Code Assist kodu hayalet metin biçiminde oluşturur. Araç çubuğuyla bir veya daha fazla kod önerisi sunar. Bu öneriler sayesinde bir kod önerisinden diğerine gidebilirsiniz (birden fazla öneri olması durumunda). Hatta araç çubuğunu kullanarak kod önerilerinden herhangi birini kabul edebilirsiniz. Araç çubuğunu göremiyorsanız veya araç kayboluyorsa yeniden görünmesi için fareyle oluşturulan kodun üzerine gelin.
  4. İsteğe bağlı: Oluşturulan kodu kabul etmek için Tab tuşuna basın. Birden fazla öneri varsa önerilen bir kod snippet'inden diğerine gitmek için Tab tuşuna birden fazla kez basabilirsiniz.

Bu işlem, kabul ettiğiniz kodu utils.py dosyasına ekler. Aşağıda örnek bir ekran görüntüsü görebilirsiniz. Size sağlanan kod, aşağıda gösterilen koddan farklı olabilir. Başka yöntemler oluşturulursa kodu kabul ettikten sonra bu yöntemleri silebilirsiniz.

d6d7915885c5e74b.png

Kodun etrafındaki kıvrımlı çizgiye dikkat edin. Bu Kod alıntısı örneğidir. İmleci herhangi bir satırın üzerine getirdiğinizde kod atfı ve lisanslamayla ilgili diğer bilgiler gösterilir. Aşağıda bununla ilgili bir örnek gösterilmektedir:

c7473cadcf15d887.png

Daha sonra Hızlı Düzelt ... seçeneğini tıklayarak alıntı uyarısını yoksayabilirsiniz. Bu işlem, önerilen Hızlı Düzeltme öğesini görüntüler. Aşağıda bir örneği verilmiştir:

10f4672830954c90.png

Kod lisansını kabul ediyorsanız Alıntılama Uyarısını Yoksay'ı seçebilirsiniz.

(İsteğe bağlı) Kod oluşturma için deneyebileceğiniz birkaç öneriyi daha aşağıda bulabilirsiniz:

  1. Aynı istemi sormak ve sohbet penceresinde yanıtı almak için Gemini sohbet özelliğini de kullanabilirsiniz. Ardından Chat arayüzünde, kodu kopyalama veya geçerli dosyaya ekleme seçenekleri görüntülenir.
  2. İstediğiniz örnek kod için kendi istemlerinizi deneyin. Aşağıda birkaç öneri verilmiştir (python dosyalarından birinde olduğunuz varsayıldığında): veya aşağıda verilen istemlerden bazılarını seçebilirsiniz:
  • Google Cloud Pub/Sub'a mesaj yayınlamak için Python kodu yazma
  • BigQuery istemcisini başlatmak için Python kodu yazma
  • Uygulamamı Cloud SQL'e bağlamak için Python kodu yazma

7. Kod yazarken satır içi kod önerileri alın

Gemini Code Assist, siz kod yazarken kabul edebileceğiniz veya yoksayabileceğiniz satır içi kod önerileri sunar. Bu özelliği denemek için bir önceki bölümde oluşturduğumuz utils.py dosyasını değiştireceğiz :

  1. Cloud Shell IDE'de geçerli dosya olarak utils.py dosyasını açın.
  2. Yapabileceğimiz işlemlerden biri, oluşturulan kodda yoksa doğru import ifadelerini sağlamaktır.
  3. import kelimesini yazmaya başladığınızda Gemini Code Assist'in hayalet metin biçiminde kod önerdiğini göreceksiniz. Gemini Code Assist'in kod önerisini kabul etmek için Tab simgesine basın. Öneriyi yoksaymak için Esc düğmesine basın veya kodunuzu yazmaya devam edin. Aşağıdaki örnek ekranda, kodda kullanıldığı için storage sınıfının içe aktarılması öneriliyor. Kod önerisini kabul etmek için Tab simgesine basın. Bu ifade import os ifadesi önerilir ancak gerekli olmadığı için kaldırılabilir.

cb3dfff74172959d.png

  1. utils.py dosyasının sonuna gidin ve sağlanmamışsa işlevi çağırmak için kullanılacak satırı ekleyin. Buradaki örnekte bu, print_blobs işlevidir. Fonksiyon adını yazmaya başlayabilirsiniz. Tamamlandı kodu, ifadeyi bitirmenize yardımcı olacaktır.
  2. paket_adı değerini sağlamanız gerekir. Bunun için herkese açık paket adını kullanabilirsiniz : gemini-codeassist-bucket. İşlev için örnek çağrı aşağıda gösterilmiştir. İşlev adları vb. konularda küçük farklılıklar görebileceğinizi lütfen unutmayın.

print_blobs(bucket_name="gemini-codeassist-bucket")

(İsteğe bağlı) Örnek kodu çalıştırma

Blobları bir Google Cloud Storage paketinde listelemek için kod yazdığımızdan google-cloud-storage Python kitaplığını yüklememiz gerekiyor.

requirements.txt dosyasına gidin ve aşağıda gösterildiği gibi google-cloud-storage bağımlılığı olan yeni bir satır ekleyin. Aşağıda örnek bir requirements.txt dosyası gösterilmektedir.

Flask==2.3.3
requests==2.31.0
debugpy # Required for debugging.
google-cloud-storage

requirements.txt dosyasını kaydedin.

Kodu iş başında görmek için sol üstteki menü simgesini kullanarak Cloud Shell IDE'den yeni bir Terminal oturumu başlatmamız gerekiyor. Menü simgesini ve ardından aşağıda gösterildiği gibi Terminal → Yeni Terminal'i tıklayın:

289173c68f1addb5.png

Terminal oturumunda aşağıdaki komutu kullanarak Python bağımlılıklarını yükleyin:

pip3 install -r requirements.txt

Son olarak, utils.py dosyasını aşağıdaki komutla çalıştırabilirsiniz:

python utils.py

Bu işlem, herkese açık Google Cloud Storage paketinde bulunan blob'ları görüntülemelidir. İdeal olarak çıkışta 2 blob'un (file1.txt ve file2.txt) listelendiğini görmeniz gerekir.

Sorun giderme

"Erişim" almanız durumunda hatası oluşursa gemini-codeassist-bucket yerine kendi Google Cloud Storage paketinizi oluşturmayı tercih edebilir ve bunu kullanabilirsiniz. Bir sonraki bölümde bunu nasıl yapacağınız gösterilmektedir.

(İsteğe bağlı) Kendi Cloud Storage paketinizi oluşturma

Gemini'dan yardım alarak paket oluşturma, herkesin erişimine açık hâle getirme ve örnek nesneleri pakete yükleme komutlarını bize sağlayabiliriz.

Şu istemle başlayın: "Google Cloud Storage'da herkese açık bir paket oluşturmak için gcloud komutu nedir?"

Bu işlemin ardından paket oluşturmak için gcloud komutu kullanılır. Tam komut aşağıda gösterilmiştir:

gcloud storage buckets create gs://<BUCKET_NAME>

<BUCKET_NAME> için benzersiz bir ad seçin ve terminalde komutu yürütün.

Artık bir paket oluşturduğumuza göre paketin herkesin erişimine açık olmasını istiyoruz. Gemini'dan bunu yapmasını söyleyen komutu şu istemle yapalım: "Google Cloud Storage paketini nasıl herkese açık hale getiririm?"

Bu komut, herkesin erişebilmesi için bir gcloud komutu sağlar. Yanıt şu şekilde olmalıdır:

gcloud storage buckets add-iam-policy-binding gs://<BUCKET_NAME> --member=allUsers --role=roles/storage.objectViewer

<BUCKET_NAME> değerini daha önce kullandığınız paket adıyla değiştirin ve komutu yürütün.

Son olarak, pakete birkaç örnek dosya yüklemek istiyoruz. Terminalde aşağıdaki komutları çalıştırın (<BUCKET_NAME> değişkenini paket adınızla değiştirmeyi unutmayın.

touch f1.txt
touch f2.txt

gcloud storage cp f1.txt gs://<BUCKET_NAME>
gcloud storage cp f2.txt gs://<BUCKET_NAME>

Artık <BUCKET_NAME> paketinizi kullanarak utils.py dosyasını yürütebilirsiniz. (gemini-codeassist-bucket yerine).

Temizleme

Kendi Google Cloud Storage paketinizi oluşturduysanız herhangi bir ücretten ve olası güvenlik risklerinden kaçınmak için paketi silmenizi önemle tavsiye ederiz.

Aşağıdaki komutu kullanarak paketi silebilirsiniz:

gcloud storage buckets delete gs://<BUCKET_NAME>

8. Tebrikler!

Tebrikler. Gemini Code Assist'in kod oluşturma, kod tamamlama ve kod özetleme konularına nasıl yardımcı olabileceğini ve Google Cloud hakkındaki sorularınızın yanıtlarını öğrenmenize nasıl yardımcı olabileceğini anlamak için örnek bir projede başarıyla çalıştınız.

Referans belgeler