Building Applications in the AI Era

1. Genel Bakış

Bu laboratuvarda, Google Cloud'da Gemini Cloud Assist yardımıyla altyapı oluşturmak için Google'ın üretken yapay zeka ürünlerini kullanacak, Data Canvas'ın doğal dil ile SQL özelliklerini kullanarak BigQuery verilerini sorgulayacak, Gemini Code Assist yardımıyla Colab Enterprise Jupyter not defterlerinde ve Eclipse Theia'da (Visual Studio Code) kod yazacak ve Vertex AI Agent Builder'da Cloud Storage ve BigQuery temellendirme kaynakları üzerine kurulu yapay zeka arama ve sohbet özelliklerini entegre edeceksiniz.

Amacımız, AI Recipe Haven adlı bir yemek tarifleri ve yemek pişirme web sitesi oluşturmak. Site, Python ve Streamlit'te oluşturulacak ve iki ana sayfa içerecek. Yemek Pişirme Tavsiyesi, Gemini ve bir grup yemek kitabına bağlı Vertex AI Agent Builder'ı kullanarak oluşturacağımız bir chatbot'a ev sahipliği yapacak. Bu chatbot, yemek pişirme tavsiyeleri sunacak ve yemek pişirmeyle ilgili soruları yanıtlayacak. Yemek Tarifi Arama, Gemini tarafından desteklenen bir arama motoru olacak. Bu kez BigQuery yemek tarifi veritabanına dayalı olacak.

Bu alıştırmadaki kodlardan herhangi birinde takılırsanız tüm kod dosyalarının çözümlerini solution dalındaki alıştırma GitHub deposunda bulabilirsiniz.

Hedefler

Bu laboratuvarda, aşağıdaki görevleri nasıl gerçekleştireceğinizi öğreneceksiniz:

  • Gemini Cloud Assist'i etkinleştirme ve kullanma
  • Yemek pişirme tavsiyesi veren chatbot için Vertex AI Agent Builder'da arama uygulaması oluşturma
  • Gemini Code Assist'in yardımıyla Colab Enterprise not defterine veri yükleme ve verileri temizleme
  • Vertex AI Agent Builder'da yemek tarifi oluşturucu için arama uygulaması oluşturma
  • Gemini'ın yardımıyla temel Python ve Streamlit web uygulamasını oluşturma
  • Web uygulamasını Cloud Run'a dağıtma
  • Yemek pişirme tavsiyesi sayfasını, yemek kitabı arama amaçlı Agent Builder uygulamamıza bağlayın
  • (İsteğe bağlı) Yemek tarifi arama sayfasını, yemek tarifi arama temsilci oluşturucu uygulamasına bağlayın.
  • (İsteğe bağlı) Son uygulamayı keşfedin

2. Ön koşullar

  1. Google Hesabınız yoksa Google Hesabı oluşturmanız gerekir.
    • İş veya okul hesabı yerine kişisel hesap kullanıyorsanız. İş ve okul hesaplarında, bu laboratuvar için gereken API'leri etkinleştirmenizi engelleyen kısıtlamalar olabilir.

3. Proje ayarlama

  1. Google Cloud Console'da oturum açın.
  2. Cloud Console'da faturalandırmayı etkinleştirin.
  3. Yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanmayı seçin.
  4. Cloud Billing'deki Projelerim bölümünde faturalandırmanın etkinleştirildiğini onaylayın.
    • Yeni projenizin Billing account sütununda Billing is disabled yazıyorsa:
      1. Actions sütunundaki üç noktayı tıklayın.
      2. Faturalandırmayı değiştir'i tıklayın.
      3. Kullanmak istediğiniz faturalandırma hesabını seçin.
    • Canlı bir etkinliğe katılıyorsanız hesabın adı büyük olasılıkla Google Cloud Platform Deneme Sürümü Faturalandırma Hesabı olur.

4. Gemini Cloud Assist'i etkinleştirme ve kullanma

Bu görevde Gemini Cloud Assist'i etkinleştirip kullanacağız. Google Cloud Console'da çalışırken Gemini Cloud Assist; tavsiye verebilir, Google Cloud altyapınızı oluşturma, yapılandırma ve izleme konusunda size yardımcı olabilir, hatta gcloud komutları önerebilir ve Terraform komut dosyaları yazabilir.

  1. Cloud Assist'i kullanmak üzere etkinleştirmek için Cloud Console kullanıcı arayüzünün üst kısmındaki arama kutusunu tıklayın ve Gemini'a sorun veya Cloud Console için Gemini'a sorun'u seçin.
  2. Sayfanın Gerekli API bölümüne gidin ve Google Cloud için Gemini API'yi Etkinleştirin.
  3. Hemen bir sohbet arayüzü görmüyorsanız Sohbet etmeye başla'yı tıklayın. Öncelikle Gemini'dan Cloud Shell Düzenleyici'yi kullanmanın bazı avantajlarını açıklamasını isteyin. Oluşturulan yanıtı incelemek için birkaç dakikanızı ayırın.
  4. Ardından, Agent Builder'ın avantajları ve üretken yanıtları temellendirmeye nasıl yardımcı olabileceği hakkında bilgi edinin.
  5. Son olarak, bir karşılaştırmaya bakalım. Google Cloud Console'un Gemini ile etkileşim penceresinde şu soruyu sorun:
    What are the major steps to creating a search app grounded in a GCS data source using Vertex AI Agent builder?
    

5. Yemek pişirme tavsiyesi veren chatbot için Vertex AI Agent Builder'da arama uygulaması oluşturma

Oluşturduğumuz web sitesinde, kullanıcıların yemek pişirmeyle ilgili sorularına yanıt bulmalarına yardımcı olmak için tasarlanmış bir chatbot içeren yemek pişirme tavsiyesi sayfası olacak. 70 kamu malı yemek kitabını içeren bir kaynağa dayalı Gemini tarafından desteklenir. Yemek kitapları, Gemini'ın soruları yanıtlarken kullandığı bilgi kaynağı olarak işlev görür.

  1. Vertex AI'a gitmek için Cloud Console arama kutusunu kullanın. Kontrol panelinde Enable All Recommended APIs'i (Önerilen Tüm API'leri Etkinleştir) tıklayın. Bu işlem birkaç dakika sürebilir. Vertex AI API'nin etkinleştirilmesi gerektiğiyle ilgili bir pop-up kutusu görürseniz lütfen bu API'yi de etkinleştirin. API'ler etkinleştirildikten sonra sonraki adıma geçebilirsiniz.
  2. Arama özelliğini kullanarak Agent Builder'a gidin, ardından Continue and Activate the API'yi (API'yi Etkinleştir ve Devam Et) tıklayın.
  3. Gemini'ın önceki tavsiye isteğimizde önerdiği gibi, Agent Builder'da bir arama uygulaması oluşturmak için öncelikle yetkili bir veri kaynağı oluşturmanız gerekir. Kullanıcı arama yaptığında Gemini, soruyu ve akıllı yanıtları nasıl oluşturacağını anlar ancak bu yanıtta kullanılan bilgiler için doğuştan gelen bilgisini kullanmak yerine temellendirilmiş kaynağa bakar.Sol taraftaki menüden Veri Depoları'na ve Veri Deposu Oluştur'a gidin.
  4. Yemek pişirme tavsiyesi sayfamızı temellendirmek için kullandığımız kamu malı yemek kitapları şu anda harici bir projedeki Cloud Storage paketinde bulunuyor. Cloud Storage kaynak türünü seçin.
  5. İçe aktardığımız bilgi türüyle ilgili varsayılan seçenekleri inceleyin ancak değiştirmeyin. İçe aktarma türünü Klasör olarak bırakın ve paket yolu için labs.roitraining.com/labs/old-cookbooks, ardından Devam'ı kullanın.
  6. Veri deposunu adlandırın: old-cookbooks. DÜZENLE'yi tıklayın ve kimliği old-cookbooks-id olarak değiştirip veri deposunu Oluşturun.

Vertex AI Agent Builder, çeşitli uygulama türlerini destekler ve her biri için veri deposu, doğruluk kaynağı olarak işlev görür. Arama uygulamaları genel kullanım ve arama için uygundur. Chat uygulamaları, Dataflow destekli chatbot/sesli bot uygulamalarındaki üretken akışlar için kullanılır. Öneri uygulamaları, daha iyi öneri motorları oluşturmaya yardımcı olur. Ayrıca, Agent uygulamaları üretken yapay zeka destekli temsilciler oluşturmak için kullanılır. Sonuç olarak, yapmak istediğimiz şey için en iyi seçenek Agent olacaktır ancak ürün şu anda önizleme aşamasında olduğundan Arama uygulaması türünü kullanmaya devam edeceğiz.

  1. Sol taraftaki menüyü kullanarak Uygulamalar'a gidin, ardından Yeni Uygulama Oluştur'u tıklayın.
  2. Web sitenizi arayın kartında Oluştur'u tıklayın. Uygulamayı adlandırın cookbook-search. Düzenle'yi tıklayın ve uygulama kimliğini cookbook-search-id olarak ayarlayın. Şirketi Google olarak ayarlayın ve Devam'ı tıklayın.
  3. Birkaç adım önce oluşturduğunuz old-cookbooks veri deposunu kontrol edin ve arama uygulamasını oluşturun.

Etkinlik sekmesini incelerseniz yemek kitaplarının hâlâ içe aktarılıp dizine eklendiğini görürsünüz. Agent Builder'ın, kendisine verdiğimiz 70 çözüm kitabında yer alan binlerce sayfayı dizine eklemesi 5 dakikadan uzun sürer. Bu işlem devam ederken tarif oluşturucumuz için bazı tarif veritabanı verilerini yükleyip temizleyelim.

6. Gemini Code Assist'in yardımıyla Colab Enterprise not defterine veri yükleme ve verileri temizleme

Google Cloud, Jupyter not defterleriyle çalışabileceğiniz birkaç önemli yöntem sunar. Google'ın en yeni ürünü olan Colab Enterprise'ı kullanacağız. Bazılarınız, Jupyter not defterleriyle ücretsiz bir ortamda denemeler yapmak isteyen kişiler ve kuruluşlar tarafından yaygın olarak kullanılan Google'ın Colab ürününü biliyor olabilirsiniz. Colab Enterprise, Google'ın diğer bulut ürünleriyle tamamen entegre olan ve GCP ortamının güvenlik ve uyumluluk özelliklerinden tam olarak yararlanan ticari bir Google Cloud teklifidir.

Colab Enterprise'ın sunduğu özelliklerden biri, Google'ın Gemini Code Assist ile entegrasyondur. Code Assist, çeşitli kod düzenleyicilerde kullanılabilir ve kod yazarken tavsiyelerde bulunmanın yanı sıra sorunsuz satır içi öneriler sunabilir. Tarif verilerimizi düzenlerken bu üretken asistanı kullanacağız.

  1. Arama özelliğini kullanarak Colab Enterprise'a gidin ve Not defteri oluştur'u tıklayın. Yeni Colab özelliklerini deneme teklifi alırsanız bu teklifi reddedin. Çalışma süresini, not defterinin arkasındaki işlem gücünü elde etmek ve çalıştırmak için yeni not defterinizin sağ üst köşesindeki Bağlan'ı tıklayın.Bağlan
  2. Not defterini Data Wrangling.Üç nokta menüsünden yeniden adlandırma olarak yeniden adlandırmak için Dosya > Yeniden adlandır'ı tıklayın.
  3. Yeni bir metin kutusu oluşturmak için + Metin'i tıklayın ve yukarı oku kullanarak metin kutusunu sayfadaki ilk hücre olacak şekilde taşıyın.+ Metin ve yukarı ok
  4. Metin kutusunu düzenleyin ve şunları girin:
    # Data Wrangling
    
    Import the Pandas library
    
  5. Yeni oluşturduğunuz metin bloğunun altındaki kod bloğunda imp yazmaya başlayın. Gemini Code Assist, içe aktarma işleminin geri kalanını gri renkte önerir. Öneriyi kabul etmek için Sekme tuşuna basın.
    import pandas as pd
    
  6. İçe aktarma kodu kutusunun altında başka bir metin kutusu oluşturun ve şunları girin:
    Create a Pandas DataFrame from: gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv. View the first few records.
    
  7. Başka bir kod bloğu oluşturun ve düzenleyin. Tekrar df = yazmaya başlayın ve Gemini Code Assistant tarafından oluşturulan kodu inceleyin. Oluşturulan önerinin üzerinde Python anahtar kelimelerinin otomatik tamamlama açılır listesini görürseniz açık gri renkteki önerilen kodu görmek için Escape tuşuna basın. Öneriyi kabul etmek için tekrar Sekme tuşuna basın. Önerinizde head() işlev çağrısı yoksa ekleyin.
    df = pd.read_csv('gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv')
    df.head()
    
  8. Pandas'ı içe aktardığınız ilk kod hücresini tıklayın ve seçili hücreyi çalıştırmak için Komutlar menüsünü veya klavyeyi kullanın. Klavyede Üst Karakter+Enter tuşlarına basıldığında hücre çalıştırılır ve odak bir sonraki hücreye kaydırılır. Gerekirse yeni bir hücre oluşturulur. İşleme devam etmeden önce hücrenin yürütülmesini bekleyin.NOT: Bir hücre yürütülmediğinde sol tarafta [ ] görürsünüz. Bir hücre yürütülürken dönen bir çalışma animasyonu görürsünüz. Hücre tamamlandığında [13] gibi bir sayı görünür.
  9. CSV'yi DataFrame'e yükleyen hücreyi yürütün. Dosyanın yüklenmesini bekleyin ve verilerin ilk beş satırını inceleyin. Bu, BigQuery'ye yükleyeceğimiz ve sonunda yemek tarifi oluşturucumuzu temel almak için kullanacağımız yemek tarifi verileridir.
  10. Yeni bir kod bloğu oluşturun ve aşağıdaki yorumu girin. Yorumu yazdıktan sonra sonraki kod satırına gidin. df.columns önerisini alırsınız. Kabul edin ve hücreyi çalıştırın.
    # List the current DataFrame column names
    
    Jupyter not defterinde Gemini Code Assist'ten yardım almak için iki seçeneğiniz olduğunu gösterdik: Kod hücrelerinin üzerindeki metin hücreleri veya kod hücresinin içindeki yorumlar. Kod hücrelerindeki yorumlar Jupyter not defterlerinde iyi çalışır ancak bu yaklaşım, Google'ın Gemini Code Assist'ini destekleyen diğer tüm IDE'lerde de işe yarar.
  11. Sütunları biraz temizleyelim. Unnamed: 0 sütununu id, link sütununu ise uri olarak yeniden adlandırın. Kodu oluşturmak için istediğiniz istem > kod tekniklerini kullanın, ardından kodu çalıştırın.
    # Rename the column 'Unnamed: 0' to 'id' and 'link' to 'uri'
    df.rename(columns={'Unnamed: 0': 'id', 'link': 'uri'}, inplace=True)
    
  12. source ve NER sütunlarını kaldırın ve ilk birkaç satırı görüntülemek için head() simgesini kullanın. Yine Gemini'dan yardım alın. Son iki satırı çalıştırın ve sonuçları inceleyin.
    # Remove the source and NER columns
    df.drop(columns=['source', 'NER'], inplace=True)
    df.head()
    
  13. Veri kümemizde kaç kayıt olduğuna bakalım. Yine, istediğiniz istem tekniğiyle başlayın ve Gemini'ın kodu oluşturmanıza yardımcı olup olamayacağını görün.
    # Count the records in the DataFrame
    df.shape # count() will also work
    
  14. 2,23 milyon kayıt, muhtemelen zamanımızın yetmeyeceği kadar çok tarif içeriyor. Agent Builder'daki indeksleme işlemi, bugünkü alıştırmamız için muhtemelen çok uzun sürecek. Uzlaşma olarak 150.000 tarifi örnekleyelim ve bu örnekle çalışalım. Örneği alıp dfs (s for small) adlı yeni bir DataFrame'de depolamak için istem > kod yaklaşımınızı kullanın.
    # Sample out 150,000 records into a DataFrame named dfs
    dfs = df.sample(n=150000)
    
  15. Yemek tarifi kaynak verilerimiz BigQuery'ye yüklenmeye hazır. Yükleme işlemine başlamadan önce BigQuery'ye gidip tablomuzu barındıracak bir veri kümesi hazırlayalım. Google Cloud Console'da arama kutusunu kullanarak BigQuery'ye gidin. BigQuery'yi sağ tıklayıp yeni bir tarayıcı sekmesinde açabilirsiniz.
  16. Henüz görünmüyorsa Cloud Console'un sağ üst kısmındaki Gemini logosunu kullanarak Gemini Yapay Zeka Sohbet panelini açın. API'yi tekrar etkinleştirmeniz istenirse etkinleştir'e basın veya sayfayı yenileyin. İstemi çalıştırın: What is a dataset used for in BigQuery? Yanıt isteğini inceledikten sonra How can I create a dataset named recipe_data using the Cloud Console? sonuçları aşağıdaki birkaç adımla karşılaştırın.Gemini Cloud Assist'i açma
  17. BigQuery Explorer bölmesinde, proje kimliğinizin yanındaki üç noktalı İşlemleri göster menüsünü tıklayın. Ardından Veri kümesi oluştur'u seçin.Keşfet görünümü işlemleri
  18. Veri kümesini ve recipe_data kimliğini girin. Konum türünü ABD olarak bırakın ve Veri Kümesi Oluştur'u tıklayın. Veri kümesinin zaten mevcut olduğuna dair bir hata alırsanız devam edin.BigQuery'de veri kümesi oluşturulduktan sonra not defterimize geri dönüp ekleme işlemini yapalım.
  19. Colab Enterprise'da Veri Temizleme not defterinize geri dönün. Yeni bir kod hücresinde project_id adlı bir değişken oluşturun ve mevcut proje kimliğinizi tutmak için bu değişkeni kullanın. Bu talimatların sol üst kısmında, Laboratuvarı Sonlandır düğmesinin altında geçerli proje kimliğini bulabilirsiniz. İsterseniz Cloud Console ana sayfasında da bulabilirsiniz. Değeri project_id değişkeninize atayın ve hücreyi çalıştırın.
    # Create a variable to hold the current project_id
    project_id='YOUR_PROJECT_ID'
    
  20. Yeni oluşturduğumuz recipe_data veri kümesinde dfs DataFrame'ini recipes adlı bir tabloya ekleyecek bir kod bloğu oluşturmak için istem > kod yaklaşımını kullanın. Hücreyi çalıştırın.
    dfs.to_gbq(destination_table='recipe_data.recipes', project_id=project_id, if_exists='replace')
    

7. Vertex AI Agent Builder'da yemek tarifi oluşturucu için arama uygulaması oluşturma

Tarif verileri tablomuz oluşturuldu. Şimdi bu tabloyu kullanarak tarif oluşturucumuz için temellendirilmiş bir veri kaynağı oluşturalım. Kullanacağımız yaklaşım, yemek pişirme sohbet botumuzda kullandığımıza benzer olacaktır. Veri deposu oluşturmak için Vertex AI Agent Builder'ı, ardından da bunu bir arama uygulaması için doğruluk kaynağı olarak kullanacağız.

İsterseniz Google Cloud Console'da Gemini'dan Agent Builder arama uygulaması oluşturma adımlarını hatırlatmasını isteyebilir veya aşağıda listelenen adımları uygulayabilirsiniz.

  1. Agent Builder'a gitmek için Arama'yı kullanın. Veri depoları'nı açın ve Veri deposu oluştur'u tıklayın. Bu kez BigQuery Veri Deposu türünü seçin.
  2. Tablo seçimi hücresinde Gözat'a basın ve recipes simgesini arayın. Tablonuzun yanındaki radyo düğmesini seçin. Diğer qwiklabs-gcp-... projelerinden tarifler görürseniz size ait olanı seçtiğinizden emin olun.NOT: Yanındaki radyo düğmesini seçmek yerine recipes simgesini tıklarsanız tarayıcınızda yeni bir sekme açılır ve BigQuery'deki tabloya genel bakış sayfasına yönlendirilirsiniz. Tarayıcı sekmesini kapatıp Agent Builder'da radyo düğmesini seçmeniz yeterlidir.
  3. Varsayılan seçeneklerin geri kalanını inceleyin ancak değiştirmeyin, ardından Devam'ı tıklayın.
  4. Şema inceleme sayfasında ilk varsayılan yapılandırmaları inceleyin ancak hiçbir şeyi değiştirmeyin. Devam
  5. Veri deposunu recipe-data olarak adlandırın. Veri deposu kimliğini düzenleyin ve recipe-data-id olarak ayarlayın. Veri deposunu oluşturun.
  6. Sol taraftaki gezinme menüsünü kullanarak Uygulamalar'a gidin ve Yeni Bir Uygulama Oluşturun'u tıklayın.
  7. Web sitenizi arayın kartında Oluştur'u tıklayın. Uygulamayı recipe-search olarak adlandırın ve kimliği recipe-search-id olarak ayarlamak için DÜZENLE'yi tıklayın. Şirket adını Google olarak ayarlayın ve Devam'ı tıklayın.
  8. Bu kez recipe-data veri kaynaklarını kontrol edin. Uygulamayı oluşturun.

Veritabanı tablomuzun dizine eklenmesi biraz zaman alır. Bu sırada BigQuery'nin yeni Data Canvas'ını deneyelim ve ilginç bir veya iki tarif bulup bulamayacağımıza bakalım.

  1. Arama kutusunu kullanarak BigQuery'ye gidin. BigQuery Studio'nun üst kısmında, en sağdaki sekmenin yanındaki aşağı oku tıklayın ve Veri tuvali'ni seçin. Bölgeyi us-central1 olarak ayarlayın.Veri tuvalini açma
  2. Veri arama'yı tıklayın. Veri tuvali arama kutusunda recipes ifadesini arayın, aramak için Enter/Return tuşuna basın ve tablo adınızın yanındaki Tuvale ekle düğmesini tıklayın.
  3. Tarifler tablonuzun görsel bir temsili, BigQuery Veri tuvaline yüklenir. Tablonun şemasını keşfedebilir, tablodaki verileri önizleyebilir ve diğer ayrıntıları inceleyebilirsiniz. Tablo gösteriminin altında Sorgu'yu tıklayın.
  4. Tuvalde, bir eklemeyle birlikte az çok tipik bir BigQuery sorgu iletişim kutusu yüklenir: Sorgu penceresinin üzerinde, Gemini'dan yardım istemek için kullanabileceğiniz bir metin kutusu bulunur. Örneğimizde pasta tarifleri bulup bulamayacağımıza bakalım. Aşağıdaki istemi çalıştırın (metni yazıp Enter/Return tuşuna basarak SQL oluşturmayı tetikleyin):
    Please select the title and ingredients for all the recipes with a title that contains the word cake.
    
  5. Oluşturulan SQL'e bakın. Memnun kaldığınızda sorguyu çalıştırın.
  6. Hiç de fena değil! Devam etmeden önce birkaç istem ve sorguyla denemeler yapabilirsiniz. Deneme yaparken neyin işe yarayıp neyin yaramadığını görmek için daha az spesifik istemler kullanmayı deneyin. Örneğin, şu istem:
    Do I have any chili recipes?
    
    (Yeni sorguyu çalıştırmayı unutmayın) Chili yemeklerinin listesini döndürdü ancak malzemeleri, sorguyu şu şekilde değiştirene kadar dahil etmedi:
    Do I have any chili recipes?  Please include their title and ingredients.
    
    (Evet, istemde bulunurken lütfen diyorum. Annem çok gurur duyardı.) Bir acı biber tarifinde mantar olduğunu fark ettim. Acı biberde mantar kim ister ki? Gemini'dan bu tarifleri hariç tutmama yardımcı olmasını istedim.
    Do I have any chili recipes?  Please include their title and ingredients, and ignore any recipes with mushrooms as an ingredient.
    

8. Cloud Shell Düzenleyici'yi açma

  1. Cloud Shell Düzenleyici'ye gidin.
  2. Terminal ekranın alt kısmında görünmüyorsa açın:
    • Hamburger menüsünü Hamburger menü simgesi tıklayın.
    • Terminal'i tıklayın.
    • Yeni Terminal'i tıklayın.Cloud Shell Düzenleyici'de yeni terminal açma
  3. Terminalde şu komutla projenizi ayarlayın:
    • Biçim:
      gcloud config set project [PROJECT_ID]
      
    • Örnek:
      gcloud config set project lab-project-id-example
      
    • Proje kimliğinizi hatırlamıyorsanız:
      • Tüm proje kimliklerinizi şu komutla listeleyebilirsiniz:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      Cloud Shell Düzenleyici terminalinde proje kimliğini ayarlama
  4. Yetkilendirmeniz istenirse devam etmek için Yetkilendir'i tıklayın. Cloud Shell'e yetki vermek için tıklayın.
  5. Şu mesajı görmeniz gerekir:
    Updated property [core/project].
    
    WARNING simgesini görüyorsanız ve Do you want to continue (Y/N)? soruluyorsa proje kimliğini yanlış girmiş olabilirsiniz. N tuşuna, Enter tuşuna basın ve gcloud config set project komutunu tekrar çalıştırmayı deneyin.

9. API'leri etkinleştir

Terminalde API'leri etkinleştirin:

gcloud services enable \
  compute.googleapis.com \
  sqladmin.googleapis.com \
  run.googleapis.com \
  artifactregistry.googleapis.com \
  cloudbuild.googleapis.com \
  networkconnectivity.googleapis.com \
  servicenetworking.googleapis.com \
  cloudaicompanion.googleapis.com

Yetkilendirmeniz istenirse devam etmek için Yetkilendir'i tıklayın. Cloud Shell'e yetki vermek için tıklayın.

Bu komutun tamamlanması birkaç dakika sürebilir ancak sonunda aşağıdakine benzer bir başarılı mesaj üretmesi gerekir:

Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.

10. Gemini'ın yardımıyla temel Python ve Streamlit web uygulamasını oluşturma

Vertex AI Agent Builder veri depolarımızın her ikisi de indekslendi ve arama uygulamalarımız kullanıma hazır hale geldi. Şimdi web uygulamamızı oluşturmaya başlayabiliriz.

Çalışırken Gemini Code Assist'ten yararlanacağız. Gemini Code Assist'i Visual Studio Code'da kullanma hakkında daha fazla bilgi için buradaki belgelere bakın.

  1. Cloud Shell Düzenleyici terminalinde, tarifi uygulaması deposunu klonlamak için bu komutu çalıştırın.
    git clone https://github.com/haggman/recipe-app
    
  2. Uygulama klasörünü Cloud Shell Düzenleyici'de açmak için bu komutu çalıştırın.
    cloudshell open-workspace recipe-app/
    
  3. Klonlanan klasörü inceleyip web uygulamamız üzerinde çalışmaya başlamadan önce düzenleyicinin Cloud Code eklentisinin Google Cloud'da oturum açmasını sağlamamız ve Gemini'ı etkinleştirmemiz gerekir. Şimdi bu işlemi yapalım. Düzenleyicinizin sol alt kısmında Cloud Code - Sign in'i (Cloud Code - Oturum aç) tıklayın. Bağlantıyı görmüyorsanız bir dakika bekleyip tekrar kontrol edin.Cloud Code - Sign in
  4. Terminal penceresinde uzun bir URL gösterilir. URL'yi tarayıcıda açın ve Cloud Code'un Google Cloud ortamınıza erişmesine izin vermek için adımları uygulayın. Son iletişim kutusunda doğrulama kodunu kopyalayın ve Cloud Shell Düzenleyici tarayıcı sekmenizde bekleyen terminal penceresine geri yapıştırın.
  5. Birkaç dakika sonra düzenleyicinizin sol alt kısmındaki Cloud Code bağlantısı Cloud Code - No Project (Cloud Code - Proje Yok) olarak değişir. Proje seçmek için yeni bağlantıyı tıklayın. Komut paleti, düzenleyicinin üst kısmında açılır. Google Cloud projesi seçin'i tıklayın ve projenizi seçin. Birkaç dakika sonra düzenleyicinizin sol alt kısmındaki bağlantı, proje kimliğinizi gösterecek şekilde güncellenir. Bu, Cloud Code'un çalışma projenize başarıyla eklendiğini gösterir.
  6. Cloud Code projenize bağlandığına göre artık Gemini Code Assist'i etkinleştirebilirsiniz. Düzenleyici arayüzünüzün sağ alt kısmında, üstü çizili Gemini logosunu tıklayın. Gemini Chat bölmesi, düzenleyicinin sol tarafında açılır. Google Cloud projesi seçin'i tıklayın. Komut paleti açıldığında projenizi seçin. Adımları doğru şekilde uyguladıysanız (ve Google herhangi bir değişiklik yapmadıysa) artık etkin bir Gemini ile etkileşim penceresi görmeniz gerekir.Gemini devre dışı bırakıldı
  7. Terminal, Gemini ile etkileşim ve Cloud Code yapılandırmalarımız ayarlandığına göre Gezgin sekmesini açın ve birkaç dakika içinde mevcut projedeki dosyaları inceleyin.Kaşif
  8. Explorer'da requirements.txt dosyanızı düzenlemek için açın. Gemini sohbet bölmesine geçip şu soruyu sorun:
    From the dependencies specified in the requirements.txt file, what type of application are we building?
    
  9. Bu nedenle, Python ve Streamlit kullanarak Vertex AI ve Discovery Engine ile etkileşim kuran etkileşimli bir web uygulaması oluşturuyoruz. Şimdilik web uygulaması bileşenlerine odaklanalım. Gemini'ın da belirttiği gibi Streamlit, Python'da veriye dayalı web uygulamaları oluşturmak için kullanılan bir çerçevedir. Şimdi şu soruyu sorun:
    Does the current project's folder structure seem appropriate for a Streamlit app?
    
    Gemini genellikle bu konuda sorun yaşar. Gemini, düzenleyicide şu anda açık olan dosyaya erişebilir ancak projenin tamamını göremez. Şunu sormayı deneyin:
    Given the below, does the current project's file and folder structure seem appropriate for a Streamlit app?
    - build.sh
    - Home.py
    - requirements.txt
    - pages
    -- Cooking_Advice.py
    -- Recipe_Search.py
    
    Daha iyi bir yanıt mı almak istiyorsunuz?
  10. Streamlit hakkında daha fazla bilgi edinelim:
    What can you tell me about Streamlit?
    
    Gemini'ın, avantajlar ve dezavantajlar da dahil olmak üzere güzel bir genel bakış sunduğunu görüyoruz.
  11. Dezavantajları öğrenmek için şu soruyu sorabilirsiniz:
    What are the major downsides or shortcomings?
    
    Gemini ile etkileşim etkileşimli (çok turlu) olduğundan "Streamlit'in" dememize gerek kalmadı. Gemini, sohbet oturumunda olduğumuz için konuştuklarımızı biliyor. Gemini ile etkileşim geçmişini istediğiniz zaman temizlemek için Gemini kod sohbet penceresinin üst kısmındaki çöp kutusu simgesini kullanın.

11. Web uygulamasını Cloud Run'a dağıtma

Mükemmel. Temel uygulama yapımız hazır ancak her şey çalışacak mı? Daha da önemlisi, Google Cloud'da nerede barındırmalıyız?

  1. Gemini ile etkileşim penceresinde şu soruyu sorun:
    If I containerize this application, what compute technologies in Google Cloud would be best for hosting it?
    
  2. IDE'nizde çalışmıyorsanız Google Cloud Assist'e de sorabileceğinizi unutmayın. Google Cloud Console'u açın, ardından Gemini Cloud Assist'i açıp şu soruyu sorun:
    If I have a containerized web application, where would be the best place to run it in Google Cloud?
    
    İki tavsiye grubu aynı mıydı? Tavsiyelerden herhangi birine katılıyor musunuz? Gemini'ın bir üretken yapay zeka asistanı olduğunu ve insan asistanlar gibi her zaman söylediklerine katılmayacağınızı unutmayın. Ancak Google Cloud'da ve kod düzenleyicinizde çalışırken bu yardımcının her zaman yanınızda olması verimliliğinizi önemli ölçüde artırabilir.
  3. Durum bilgisiz ve kısa ömürlü bir container mimarisine alınmış web uygulaması için Cloud Run mükemmel bir seçenek olacaktır. Kod düzenleyicinizin Gemini ile etkileşim penceresinde şu istemi deneyin:
    What steps would be required to run this application in Cloud Run?
    
  4. Yapmamız gereken ilk şeyin bir Dockerfile oluşturmak olduğunu görüyoruz. Düzenleyiciyi kullanarak proje klasörünüzün kök dizininde Dockerfile adlı bir dosya oluşturun. Yanlışlıkla pages (sayfalar) klasörüne yerleştirmediğinizden emin olun. Düzenlemek için dosyayı açın.
  5. Dockerfile'ımızı oluşturmak için Gemini ile etkileşim yan panelini kullanalım. Aşağıdaki gibi bir istem kullanın. Sonuçlar sohbette gösterildiğinde, önerilen Dockerfile'ın hemen üstündeki kopyalama simgesinin yanındaki + işaretini kullanarak önerilen kodu Dockerfile'a ekleyin.
    Create a Dockerfile for the application in the current folder. The dependencies are defined in requirements.txt and I want you to use the Python 3 slim bookworm base image.
    
    Gemini, aynı isteme her zaman aynı yanıtı vermez. Gemini'dan ilk kez Dockerfile istediğimde, size kullanmanızı önereceğim dosyayı aldım. Şu anda şu öneriyi aldım:
    # Base image
    FROM python:3-bookworm-slim
    
    # Set working directory
    WORKDIR /app
    
    # Install dependencies
    RUN apt-get update && apt-get install -y \
        build-essential \
        libpq-dev \
        gcc \
        python3-dev \
        && rm -rf /var/lib/apt/lists/*
    
    # Install pip and virtualenv
    RUN pip install --upgrade pip virtualenv
    
    # Create virtual environment
    RUN python3 -m venv venv
    
    # Activate virtual environment
    WORKDIR /app/venv/bin
    RUN . activate
    
    # Install Streamlit and libraries from requirements.txt
    RUN pip install -r requirements.txt
    
    # Copy application files
    COPY . /app
    
    # Expose port 8501 for Streamlit
    EXPOSE 8501
    
    # Start Streamlit app
    CMD ["streamlit", "run", "main.py"]
    
    That's a heck of a Dockerfile. Biraz basitleştirirdim. Python için gereken her şey temel resmimizde bulunduğundan apt-get bölümüne ihtiyacımız yoktur. Ayrıca, Python kapsayıcısında sanal ortam kullanmak alan israfı olduğundan bunu kaldırmanızı öneririz. expose komutu kesinlikle gerekli olmasa da kullanılabilir. Ayrıca, main.py'yi başlatmaya çalışıyor ancak bu dosya bende yok.
  6. recipe-app klasöründe Dockerfile adlı bir dosya oluşturun ve şu içerikleri yapıştırın:
    FROM python:3.11-slim-bookworm
    
    WORKDIR /app
    
    COPY requirements.txt .
    RUN pip install --no-cache-dir --upgrade pip && \
        pip install --no-cache-dir -r requirements.txt
    
    COPY . .
    
    CMD ["streamlit", "run", "Home.py"]
    
  7. Gemini, sohbet penceresi üzerinden çalışabilir ancak Veri Temizleme not defterinde kullandığımız gibi yorumları kullanarak doğrudan kod dosyanızda da çalışabilir. Ayrıca Windows'da Control+i veya Mac'te Command+i kullanılarak da çağrılabilir. Dockerfile içinde bir yeri tıklayın ve uygun Command+i / Control+i komutunu kullanarak Gemini'ı etkinleştirin.
  8. İstendiğinde aşağıdakileri girin. Değişikliği inceleyin ve Kabul et'i tıklayın.
    Please comment the current file.
    
    Mükemmel, değil mi? Başka birinin koduyla çalışmak zorunda kaldığınızda, değişiklik yapmaya başlamadan önce yorumsuz çalışmasını anlamak için kaç kez zaman kaybettiniz? İmdadınıza Gemini yetişiyor!
  9. Şimdi Gemini'a, Cloud Run'ı kullanarak geçerli klasördeki Dockerfile'dan recipe-web-app adlı yeni bir görüntüyü nasıl oluşturup dağıtabileceğinizi sorun.
    How could I use gcloud to build a new Cloud Run service named recipe-web-app from the current directory?
    
  10. Uygulamamızı oluşturup dağıtalım. Terminal penceresinde gcloud run deploy komutunu çalıştırın.
    gcloud run deploy recipe-web-app \
        --allow-unauthenticated \
        --source=. \
        --region=us-central1 \
        --port=8501
    
    Artifact Registry deposu oluşturmanızı isteyen bir istemle karşılaşırsanız enter/return tuşuna basın.
    Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository
    named cloud-run-source-deploy in region us-central1 will be created.
    
    Do you want to continue (Y/n)?
    
  11. Oluşturma sürecini izlerseniz önce Artifact Registry Docker deposu oluşturulur. Ardından, yerel klasördeki Dockerfile'dan kapsayıcı görüntüsü oluşturmak için Cloud Build kullanılır. Son olarak, Docker görüntüsü yeni bir Cloud Run hizmetine dağıtılır. Komut dosyasının sonunda, kullanabileceğiniz bir Cloud Run test URL'si alırsınız.

Döndürülen bağlantıyı tarayıcınızın yeni bir sekmesinde açın. Biraz zaman ayırarak uygulamanın yapısını ve sayfalarını inceleyin. Harika, şimdi üretken yapay zeka işlevimizi bağlamamız gerekiyor.

12. Yemek pişirme tavsiyesi sayfasını, yemek kitabı arama amaçlı Agent Builder uygulamamıza bağlayın

Web uygulaması için çerçevemiz çalışıyor ancak iki çalışma sayfasını iki Vertex AI Agent Builder arama uygulamamıza bağlamamız gerekiyor. Yemek pişirme tavsiyesiyle başlayalım.

  1. Cloud Shell Düzenleyici sekmenizi açık bırakın. Google Cloud Console'da arama özelliğini kullanarak Vertex AI'da Chat'e gidin.
  2. Sağdaki ayarlar sayfası bölmesinde modeli gemini-1.5-flash-002 olarak ayarlayın. Gerekirse modelin daha uzun yanıtlar döndürebilmesi için çıkış parçası sınırını maksimuma kaydırın. Güvenli Arama Filtresi Ayarları'nı açın. Nefret söylemi, müstehcen içerik ve taciz içeriklerini Bazılarını engelle olarak ayarlayın. Tehlikeli içerik ayarını Birkaçını engelle olarak belirleyin ve Kaydet'i tıklayın. Bıçaklar ve kesme eylemi hakkında konuşmak Gemini tarafından şiddet olarak yorumlanabileceğinden Tehlikeli İçerik'i biraz daha düşük bir seviyeye ayarlıyoruz.
  3. Açma/kapatma düğmesini kaydırarak Temellendirme'yi etkinleştirin ve Özelleştir'i tıklayın. Temellendirme kaynağını Vertex AI Search olarak ayarlayın ve veri deposu yolu için aşağıdakileri kullanın. YOUR_PROJECT_ID değerini bu talimatlarda End Lab (Laboratuvarı Bitir) düğmesinin yakınında bulunan proje kimliğiyle değiştirin ve temellendirme ayarlarını kaydedin.
    projects/YOUR_PROJECT_ID/locations/global/collections/default_collection/dataStores/old-cookbooks-id
    
    NOT: Hata alırsanız proje kimliğini gerçek proje kimliğinizle değiştirmemişsinizdir veya eski yemek kitapları Agent Builder veri deposu kimliğini değiştirdiğiniz adımı atlamış olabilirsiniz. Gerçek veri deposu kimliği için Agent Builder > Data Stores > old-cookbooks'u kontrol edin.
  4. Birkaç sohbet mesajını test edin. Belki de aşağıdakilerle başlayabilirsiniz. İsterseniz birkaç tane daha deneyebilirsiniz.
    How can I tell if a tomato is ripe?
    
  5. Model çalışıyor. Şimdi kodla denemeler yapalım. Sohbetlerimizin koda dahil olmaması için Sohbeti Temizle'yi, ardından Kodu Al'ı tıklayın.Görüşmeyi Temizle ve Kodu Al
  6. Kodu uygulamamıza entegre etmeden önce Colab Enterprise'da denemek ve mükemmelleştirmek için kod penceresinin üst kısmındaki Open Notebook'u (Not Defterini Aç) tıklayın.
  7. Kodu incelemek için birkaç dakikanızı ayırın. Şimdi bu metni istediğimiz şekilde uyarlamak için birkaç değişiklik yapalım. Başlamadan önce, hesaplamaya bağlanmak ve AI Platform SDK'yı yüklemek için ilk kod hücresini çalıştırın. Blok çalıştırıldıktan sonra oturumu yeniden başlatmanız istenir. Devam edip bu işlemi gerçekleştirin.
  8. Vertex AI Studio'dan çıkardığımız koda gidin. multiturn_generate_content yönteminin adını start_chat_session olarak değiştirin.
  9. model = GenerativeModel( yöntem çağrısına gidin. Mevcut kod, generation_config ve safety_settings öğelerini tanımlıyor ancak bunları kullanmıyor. GenerativeModel oluşturma işlemini aşağıdaki gibi olacak şekilde değiştirin:
    model = GenerativeModel(
        "gemini-1.5-flash-002",
        tools=tools,
        generation_config=generation_config,
        safety_settings=safety_settings,
    )
    
  10. Son olarak, işlevin chat nesnesini döndürmesi için yönteme chat = model.start_chat()'nın hemen altına son bir satır ekleyin. Tamamlanmış işlev aşağıdaki gibi görünmelidir.NOT: Bu kodu not defterinize KOPYALAMAYIN. Bu yalnızca sağlıklı çalışma kontrolü için buradadır.
    def start_chat_session():
        vertexai.init(project="qwiklabs-gcp-02-9a7298ceaaec", location="us-central1")
        tools = [
            Tool.from_retrieval(
                retrieval=grounding.Retrieval(
                    source=grounding.VertexAISearch(datastore="projects/qwiklabs-gcp-02-9a7298ceaaec/locations/global/collections/default_collection/dataStores/old-cookbooks-id"),
                )
            ),
        ]
        model = GenerativeModel(
            "gemini-1.5-flash-002",
            tools=tools,
            generation_config=generation_config,
            safety_settings=safety_settings,
        )
        chat = model.start_chat()
        return chat
    
  11. Kod hücresinin en altına gidin ve eski işlevi çağıran son satırı, yeni işlev adını çağıracak ve döndürülen nesneyi bir değişkende (chat) saklayacak şekilde değiştirin. Değişikliklerinizden memnun kaldığınızda hücreyi çalıştırın.
    chat = start_chat_session()
    
  12. Yeni bir kod hücresi oluşturun ve # Use chat to invoke Gemini and print out the response yorumunu ekleyin. Bir sonraki satıra geçip resp yazın. Gemini, bloğu sizin için otomatik olarak tamamlar. İstemi How can I tell if a tomato is ripe? olarak güncelleyin. Hücreyi çalıştırma
    response = chat.send_message("How can I tell if a tomato is ripe?")
    print(response)
    
  13. Yanıt doğru ancak istediğimiz kısım iç içe yerleştirilmiş text alanı. Kod bloğunu yalnızca bu bölümü yazdıracak şekilde değiştirin (ör. aşağıdaki gibi):
    response = chat.send_message("How can I tell if a tomato is ripe?")
    print(response.candidates[0].content.parts[0].text)
    
  14. Tamamdır. Şimdi çalışan bir sohbet kodumuz olduğuna göre bunu web uygulamamıza entegre edelim. start_chat_session işlevini oluşturan kod hücresinin tüm içeriğini kopyalayın (test hücresine ihtiyacımız olmayacak). Hücreyi tıkladıktan sonra sağ üst köşedeki üç nokta menüsünü tıklayıp buradan kopyalayabilirsinizHücreyi kopyalama.
  15. Cloud Shell Düzenleyici sekmenize geçin ve düzenlemek için pages\Cooking_Advice.py dosyasını açın.
  16. Yorumu bulun:
    #
    # Add the code you copied from your notebook below this message
    #
    
  17. Kopyaladığınız kodu Add the code (Kodu ekleyin) yorumunun hemen altına yapıştırın. Harika. Artık Gemini'a dayalı bir çağrı aracılığıyla sohbet motorunu çalıştıran bölüme sahibiz. Şimdi bunu Streamlit'e entegre edelim.
  18. Yorum yapılan kod bölümünü doğrudan yorumun altında bulun:
    #
    # Here's the code to setup your session variables
    # Uncomment this block when instructed
    #
    
  19. Kodun bu bölümündeki (sonraki Setup done, let's build the page UI bölümüne kadar) yorum işaretini kaldırın ve bu bölümü inceleyin. Sohbet ve geçmiş oturumu değişkenlerini oluşturur veya alır.
  20. Ardından, geçmiş ve sohbet işlevini kullanıcı arayüzüne entegre etmemiz gerekir. Aşağıdaki yorumu bulana kadar kodda kaydırın.
    #
    # Here's the code to create the chat interface
    # Uncomment the below code when instructed
    #
    
  21. Yorumun altındaki kodun geri kalanının açıklamasını iptal edin ve kodu inceleyin. İsterseniz bu işlevi vurgulayıp Gemini'dan açıklamasını isteyebilirsiniz.
  22. Harika. Şimdi uygulamayı oluşturup dağıtalım. URL döndüğünde uygulamayı başlatın ve Yemek Danışmanı sayfasını deneyin. Belki de olgun domatesler hakkında soru sorabilir veya bot, Brüksel lahanası hazırlamanın iyi bir yolunu biliyordur.
    gcloud run deploy recipe-web-app \
        --allow-unauthenticated \
        --source=. \
        --region=us-central1 \
        --port=8501
    

Mükemmel değil mi? Kendi kişisel yapay zeka yemek danışmanınız :-)

13. (İsteğe bağlı) Yemek tarifi arama sayfasını, yemek tarifi arama temsilci oluşturucu uygulamasına bağlayın.

Yemek Pişirme Tavsiyesi sayfasını temellendirilmiş kaynağına bağlarken doğrudan Gemini API'yi kullandık. Yemek Tarifi Arama için doğrudan Vertex AI Agent Builder arama uygulamasına bağlanalım.

  1. Cloud Shell Düzenleyicinizde, düzenlemek istediğiniz pages/Recipe_Search.py sayfasını açın. Sayfanın yapısını inceleyin.
  2. Dosyanın üst kısımlarında proje kimliğinizi ayarlayın.
  3. search_sample işlevini inceleyin. Bu kod, doğrudan Discovery Engine belgelerinden alınmıştır (burada). Çalışan bir kopyayı bu not defterinde bulabilirsiniz.Yaptığım tek değişiklik, yalnızca sonuçlar yerine response.results değerini döndürmek oldu. Bu olmadan, dönüş türü sonuçlar arasında gezinmek için tasarlanmış bir nesne olur ve bu, temel uygulamamız için gerekli değildir.
  4. Dosyanın en sonuna gidin ve aşağıdaki bölümün tamamındaki yorum işaretini kaldırın Here are the first 5 recipes I found.
  5. Yeni yorumdan çıkardığınız bölümün tamamını vurgulayın ve Gemini Code Chat'i açın. Explain the highlighted code'a sorun. Herhangi bir seçim yapmazsanız Gemini dosyanın tamamını açıklayabilir. Bir bölümü vurgulayıp Gemini'dan açıklamasını, yorum yapmasını veya iyileştirmesini isterseniz Gemini bunu yapar.Açıklamayı okumak için biraz zaman ayırın. Colab Enterprise not defteri kullanmak, Gemini API'leri uygulamanıza entegre etmeden önce keşfetmek için harika bir yoldur. Bu araç, özellikle iyi bir şekilde belgelenmemiş olabilecek bazı yeni API'leri keşfederken faydalıdır.
  6. Son uygulamayı dağıtmak için düzenleyici terminal pencerenizde build.sh komutunu çalıştırın. Sonraki adıma geçmeden önce yeni sürümün dağıtılmasını bekleyin.

14. (İsteğe bağlı) Son uygulamayı keşfedin

Son uygulamayı incelemek için birkaç dakikanızı ayırın.

  1. Google Cloud Console'da arama özelliğini kullanarak Cloud Run konumuna gidin, ardından recipe-web-app'inizi tıklayın.
  2. Uygulama testi URL'sini (en üstte) bulun ve yeni bir tarayıcı sekmesinde açın.
  3. Uygulama ana sayfası görünür. Streamlit'in sağladığı temel düzen ve gezinme özelliklerine dikkat edin. pages klasöründeki Python dosyaları gezinme seçenekleri olarak gösterilir ve Home.py ana sayfa olarak yüklenir. Cooking Advice (Pişirme Tavsiyesi) sayfasına gidin.
  4. Birkaç dakika sonra sohbet arayüzü görünür. Streamlit'in sağladığı güzel temel düzeni tekrar belirtmek isteriz.
  5. Yemek pişirmeyle ilgili birkaç soru sorarak botun nasıl çalıştığını görün. Örneğin:
    Do you have any advice for preparing broccoli?
    
    How about a classic chicken soup recipe?
    
    Tell me about meringue.
    
  6. Şimdi bir veya iki tarif bulalım. Yemek Tarifi Arama sayfasına gidip birkaç arama yapmayı deneyin. Örneğin:
    Chili con carne
    
    Chili, corn, rice
    
    Lemon Meringue Pie
    
    A dessert containing strawberries
    

15. Tebrikler!

Vertex AI Agent Builder uygulamalarından yararlanan bir uygulama oluşturmuş olmanız gerekir. Bu süreçte Gemini Cloud Assist, Gemini Code Assist ve BigQuery'nin Data Canvas'indeki doğal dilden SQL'e dönüştürme özelliklerini incelediniz. Tebrikler!

Temizleme

Cloud SQL'in ücretsiz katmanı yoktur ve kullanmaya devam ederseniz sizden ücret alınır. Ek ücret ödememek için Cloud projenizi silebilirsiniz.

Cloud Run, hizmet kullanılmadığında ücret almaz ancak container görüntüsünü Artifact Registry'de depoladığınız için ücretlendirilebilirsiniz. Cloud projenizi sildiğinizde, bu projede kullanılan tüm kaynaklar için faturalandırma durdurulur.

İsterseniz projeyi silebilirsiniz:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

Ayrıca, gereksiz kaynakları cloudshell diskinizden de silebilirsiniz. Şunları yapabilirsiniz:

  1. Codelab proje dizinini silin:
    rm -rf ~/task-app
    
  2. Uyarı! Bu işlem geri alınamaz. Yer açmak için Cloud Shell'inizdeki her şeyi silmek istiyorsanız tüm ana dizininizi silebilirsiniz. Saklamak istediğiniz her şeyin başka bir yere kaydedildiğinden emin olun.
    sudo rm -rf $HOME