Cloud Run'da Gemini CLI'yi kullanarak AlloyDB için MCP Toolbox ile veriye dayalı geliştirme sürecini hızlandırma

1. Genel Bakış

AlloyDB ile yönlü filtreleme ve vektör aramayı birleştirerek dinamik bir karma perakende deneyimi oluşturma yolculuğumuzu hatırlıyor musunuz? Bu uygulama, modern perakende ihtiyaçlarının güçlü bir göstergesiydi ancak bu noktaya ulaşmak ve uygulamayı yinelemek için önemli bir geliştirme çalışması yapılması gerekti. Tam yığın geliştiriciler için kod düzenleyiciler ve veritabanı araçları arasında sürekli gidip gelmek genellikle bir darboğaz olabilir, yeniliği ve verilerinizi anlama gibi önemli bir süreci yavaşlatabilir.

Çözüm

Hızlandırılmış uygulama geliştirmenin gücü tam da bu noktada kendini gösteriyor. Bu nedenle, sezgisel Gemini CLI üzerinden erişilebilen MCP (Modern Cloud Platform) Araç Kutusu'nun, araç setimin vazgeçilmez bir parçası haline gelmesini sizinle paylaşmaktan heyecan duyuyorum. AlloyDB örneğinizle sorunsuz şekilde etkileşim kurduğunuzu, sorgu yazdığınızı ve veri kümenizi anladığınızı düşünün. Tüm bunları doğrudan entegre geliştirme ortamınızda (IDE) yapabilirsiniz. Bu sadece kolaylık sağlamakla ilgili değildir. Geliştirme yaşam döngüsündeki sürtünmeyi temelden azaltarak harici araçlarla uğraşmak yerine yenilikçi özellikler oluşturmaya odaklanmanızı sağlar.

Perakende e-ticaret uygulamamızda ürün verilerini verimli bir şekilde sorgulamamız, karmaşık filtrelemeyi yönetmemiz ve vektör aramanın nüanslarından yararlanmamız gerekiyordu. Bu nedenle, veritabanı etkileşimlerinde hızlı bir şekilde yineleme yapabilmek bizim için çok önemliydi. Gemini CLI tarafından desteklenen MCP Toolbox, bu süreci yalnızca basitleştirmekle kalmaz, aynı zamanda hızlandırarak uygulamalarımızın temelini oluşturan veritabanı mantığını keşfetme, test etme ve iyileştirme şeklimizi de dönüştürür. Bu çığır açan kombinasyonun tam yığın geliştirme sürecini nasıl daha hızlı, daha akıllı ve daha keyifli hale getirdiğine yakından bakalım.

Öğrenecekleriniz ve oluşturacaklarınız

Gemini CLI tarafından desteklenen, IDE'deki MCP araç kutusunu kullanan bir perakende arama uygulaması. Ele alacağımız konular aşağıda belirtilmiştir:

  1. MCP Toolbox'ı, sorunsuz AlloyDB etkileşimi için doğrudan IDE'nize nasıl entegre edeceğinizi öğrenin.
  2. Perakende verilerinizde SQL sorguları yazmak ve yürütmek için Gemini CLI'yı kullanmayla ilgili pratik örnekler.
  3. Perakende e-ticaret veri setimizle etkileşim kurmak, normalde ayrı araçlar gerektirecek sorgular yazmak ve sonuçları anında görmek için Gemini CLI'den yararlanın.
  4. Tablo yapılarını kontrol etmekten hızlı veri uygunluk kontrolleri yapmaya kadar, verileri incelemenin ve anlamanın yeni yollarını keşfedin. Tüm bunları IDE'mizdeki tanıdık komut satırı arayüzleri üzerinden yapabilirsiniz.
  5. Bu hızlandırılmış veritabanı iş akışının, hızlı prototip oluşturma ve yinelemeye olanak tanıyarak tam yığın geliştirme döngülerini nasıl doğrudan hızlandırdığı.

Techstack

Kullandığımız araçlar:

  • Veritabanı için AlloyDB
  • Veritabanlarının gelişmiş üretken ve yapay zeka özelliklerini uygulamadan soyutlamak için MCP Toolbox
  • Sunucusuz dağıtım için Cloud Run.
  • Veri kümesini anlamak ve analiz etmek, perakende e-ticaret uygulamasının veritabanı bölümünü oluşturmak için Gemini CLI.

Şartlar

  • Chrome veya Firefox gibi bir tarayıcı
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi.

2. Başlamadan önce

Proje oluşturma

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Faturalandırmanın bir projede etkin olup olmadığını kontrol etmeyi öğrenin.

Google Cloud kredileri için: Google Cloud'u kullanmaya başlamanıza yardımcı olacak Google Cloud kredileri almak istiyorsanız kredileri kullanmak için bu bağlantıyı kullanın. Buradaki talimatları uygulayarak hediyenizi kullanabilirsiniz.

  1. Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız. Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir'i tıklayın.

Cloud Shell'i etkinleştir düğmesinin resmi

  1. Cloud Shell'e bağlandıktan sonra aşağıdaki komutu kullanarak kimliğinizin doğrulanmış olduğunu ve projenin proje kimliğinize ayarlandığını kontrol edin:
gcloud auth list
  1. gcloud komutunun projeniz hakkında bilgi sahibi olduğunu doğrulamak için Cloud Shell'de aşağıdaki komutu çalıştırın.
gcloud config list project
  1. Projeniz ayarlanmamışsa ayarlamak için aşağıdaki komutu kullanın:
gcloud config set project <YOUR_PROJECT_ID>
  1. Gerekli API'leri etkinleştirin: Bağlantıyı takip ederek API'leri etkinleştirin.

Alternatif olarak, bu işlem için gcloud komutunu kullanabilirsiniz. gcloud komutları ve kullanımı için belgelere bakın.

3. Veritabanı kurulumu

Bu laboratuvarda, e-ticaret verileri için veritabanı olarak AlloyDB'yi kullanacağız. Veritabanları ve günlükler gibi tüm kaynakları tutmak için kümeler kullanılır. Her kümede, verilere erişim noktası sağlayan bir birincil örnek bulunur. Tablolar gerçek verileri içerir.

E-ticaret veri kümesinin yükleneceği bir AlloyDB kümesi, örneği ve tablosu oluşturalım.

Küme ve örnek oluşturma

  1. Cloud Console'da AlloyDB sayfasına gidin. Cloud Console'daki çoğu sayfayı bulmanın kolay bir yolu, konsolun arama çubuğunu kullanarak arama yapmaktır.
  2. Bu sayfada KÜME OLUŞTUR'u seçin:

f76ff480c8c889aa.png

  1. Aşağıdaki gibi bir ekran görürsünüz. Aşağıdaki değerlerle bir küme ve örnek oluşturun (Uygulama kodunu depodan klonluyorsanız değerlerin eşleştiğinden emin olun):
  • küme kimliği: "vector-cluster"
  • password: "alloydb"
  • PostgreSQL 15 / en son önerilen
  • Region: "us-central1"
  • : "default"

538dba58908162fb.png

  1. Varsayılan ağı seçtiğinizde aşağıdaki gibi bir ekran görürsünüz.

BAĞLANTIYI AYARLA'yı seçin.

7939bbb6802a91bf.png

  1. Buradan "Otomatik olarak atanmış bir IP aralığı kullan"ı seçip Devam'ı tıklayın. Bilgileri inceledikten sonra BAĞLANTI OLUŞTUR'u seçin. 768ff5210e79676f.png
  2. Ağınız kurulduktan sonra kümenizi oluşturmaya devam edebilirsiniz. Aşağıda gösterildiği gibi küme kurulumunu tamamlamak için KÜME OLUŞTUR'u tıklayın:

e06623e55195e16e.png

ÖNEMLİ NOT:

  1. Küme / örnek yapılandırılırken bulabileceğiniz örnek kimliğini **vector-instance** olarak değiştirdiğinizden emin olun. Değiştiremiyorsanız tüm referanslarda **örnek kimliğinizi kullanmayı** unutmayın.
  2. Küme oluşturma işleminin yaklaşık 10 dakika süreceğini unutmayın. İşlem başarılı olduğunda, yeni oluşturduğunuz kümenizin genel görünümünü gösteren bir ekran görürsünüz.

4. Veri kullanımı

Şimdi de mağazayla ilgili verilerin bulunduğu bir tablo ekleme zamanı. AlloyDB'ye gidin, birincil kümeyi ve ardından AlloyDB Studio'yu seçin:

847e35f1bf8a8bd8.png

Örneğinizin oluşturulmasının tamamlanmasını beklemeniz gerekebilir. Bu işlem tamamlandıktan sonra, kümeyi oluştururken oluşturduğunuz kimlik bilgilerini kullanarak AlloyDB'de oturum açın. PostgreSQL'de kimlik doğrulaması yapmak için aşağıdaki verileri kullanın:

  • Kullanıcı adı : "postgres"
  • Veritabanı : "postgres"
  • Şifre : "alloydb"

AlloyDB Studio'da kimlik doğrulama işlemini başarıyla tamamladıktan sonra SQL komutları Düzenleyici'ye girilir. Son pencerenin sağındaki artı işaretini kullanarak birden fazla düzenleyici penceresi ekleyebilirsiniz.

91a86d9469d499c4.png

Gerekli durumlarda Çalıştır, Biçimlendir ve Temizle seçeneklerini kullanarak AlloyDB için komutları düzenleyici pencerelerine gireceksiniz.

Uzantıları etkinleştirme

Bu uygulamayı oluşturmak için pgvector ve google_ml_integration uzantılarını kullanacağız. pgvector uzantısı, vektör yerleştirmelerini depolamanıza ve aramanıza olanak tanır. google_ml_integration uzantısı, SQL'de tahmin almak için Vertex AI tahmin uç noktalarına erişmek üzere kullandığınız işlevleri sağlar. Aşağıdaki DDL'leri çalıştırarak bu uzantıları etkinleştirin:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
CREATE EXTENSION IF NOT EXISTS vector;

Veritabanınızda etkinleştirilen uzantıları kontrol etmek istiyorsanız şu SQL komutunu çalıştırın:

select extname, extversion from pg_extension;

Tablo oluşturma

AlloyDB Studio'da aşağıdaki DDL ifadesini kullanarak bir tablo oluşturabilirsiniz:

CREATE TABLE apparels ( 
  id BIGINT, 
  category VARCHAR(100), 
  sub_category VARCHAR(50), 
  uri VARCHAR(200), 
  gsutil_uri VARCHAR(200),
  image VARCHAR(100), 
  content VARCHAR(2000), 
  pdt_desc VARCHAR(5000), 
  color VARCHAR(2000),
  gender VARCHAR(200),
  embedding vector(768),
  img_embeddings vector(1408),
  additional_specification VARCHAR(100000));

Yerleştirme sütunu, metnin vektör değerlerinin depolanmasına olanak tanır.

İzin Ver

"embedding" işlevinde yürütme izni vermek için aşağıdaki ifadeyi çalıştırın:

GRANT EXECUTE ON FUNCTION embedding TO postgres;

AlloyDB hizmet hesabına Vertex AI Kullanıcısı ROLÜ'nü verme

Google Cloud IAM Console'da AlloyDB hizmet hesabına (service-<<PROJECT_NUMBER>>@gcp-sa-alloydb.iam.gserviceaccount.com gibi görünür) "Vertex AI Kullanıcısı" rolüne erişim izni verin. PROJECT_NUMBER, proje numaranızı içerir.

Alternatif olarak, aşağıdaki komutu Cloud Shell Terminali'nden çalıştırabilirsiniz:

PROJECT_ID=$(gcloud config get-value project)


gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"

Verileri veritabanına yükleme

  1. E-tablodaki insert scripts sql bölümünden insert sorgu ifadelerini kopyalayıp yukarıda bahsedilen düzenleyiciye yapıştırın. Bu kullanım alanının hızlı bir demosunu yapmak için 10-50 ekleme ifadesini kopyalayabilirsiniz. Bu "Seçilen Ekleme İşlemleri 25-30 satır" sekmesinde, seçilmiş bir ekleme listesi bulunur.
  2. Çalıştır'ı tıklayın. Sorgunuzun sonuçları Sonuçlar tablosunda görünür.

ÖNEMLİ NOT:

Yalnızca 25-50 kayıt kopyaladığınızdan ve bunların kategori, alt_kategori, renk, cinsiyet türleri aralığından olduğundan emin olun.

5. Veriler için gömmeler oluşturma

Modern aramadaki gerçek yenilik, yalnızca anahtar kelimeleri değil, anlamı da anlamaktan geçiyor. Bu noktada yerleştirmeler ve vektör araması devreye girer.

Ürün açıklamalarını ve kullanıcı sorgularını, önceden eğitilmiş dil modellerini kullanarak "gömme" adı verilen yüksek boyutlu sayısal gösterimlere dönüştürdük. Bu yerleştirmeler, anlamsal anlamı yakalayarak yalnızca eşleşen kelimeleri içeren ürünler yerine "anlamı benzer" olan ürünleri bulmamızı sağlar. Başlangıçta, bir temel oluşturmak için bu yerleştirmelerde doğrudan vektör benzerliği aramasıyla denemeler yaptık. Bu denemeler, performans optimizasyonlarından önce bile anlamsal anlayışın gücünü gösterdi.

Yerleştirme sütunu, ürün açıklaması metninin vektör değerlerinin depolanmasına olanak tanır. img_embeddings sütunu, resim yerleştirmelerinin (çok formatlı) depolanmasına olanak tanır. Bu şekilde, metin ile resim arasındaki mesafeye dayalı aramayı da kullanabilirsiniz. Ancak bu laboratuvarda yalnızca metin yerleştirmelerini kullanacağız.

SELECT embedding('text-embedding-005', 'AlloyDB is a managed, cloud-hosted SQL database service.');

Bu işlem, sorgudaki örnek metin için kayan nokta dizisi gibi görünen yerleştirme vektörünü döndürmelidir. Şöyle görünür:

25a1d7ef0e49e91e.png

abstract_embeddings adlı Vector alanını güncelleme

Tablodaki içerik açıklamasını ilgili yerleştirmelerle güncellemek için aşağıdaki DML'yi çalıştırın:

UPDATE apparels SET embedding = embedding('text-embedding-005',pdt_desc)::vector 
WHERE pdt_desc IS NOT NULL;

Google Cloud için deneme kredisi faturalandırma hesabı kullanıyorsanız birkaç yerleştirme (ör. en fazla 20-25) oluşturmakta sorun yaşayabilirsiniz. Bu nedenle, ekleme komut dosyasındaki satır sayısını sınırlayın.

Görüntü gömmeleri oluşturmak (çok formatlı bağlamsal arama yapmak için) istiyorsanız aşağıdaki güncellemeyi de çalıştırın:

update apparels set img_embeddings = ai.image_embedding(
  model_id => 'multimodalembedding@001',
  image => gsutil_uri,
  mimetype => 'image/jpg')       
where gsutil_uri is not null

6. Veritabanları için MCP Araç Kutusu (AlloyDB)

Arka planda, güçlü araçlar ve iyi yapılandırılmış bir uygulama sayesinde sorunsuz bir şekilde çalışır.

Veritabanları için MCP (Model Context Protocol) Toolbox, üretken yapay zeka ve asistan araçlarının AlloyDB ile entegrasyonunu kolaylaştırır. Bağlantı havuzunu, kimlik doğrulamayı ve veritabanı işlevlerinin yapay zeka aracılarına veya diğer uygulamalara güvenli bir şekilde sunulmasını kolaylaştıran açık kaynaklı bir sunucu görevi görür.

Uygulamamızda, tüm akıllı karma arama sorgularımız için bir soyutlama katmanı olarak MCP Toolbox for Databases'i kullandık.

Kullanım alanımız için Toolbox'ı kurmak ve dağıtmak üzere aşağıdaki adımları uygulayın:

MCP Toolbox for Databases tarafından desteklenen veritabanlarından birinin AlloyDB olduğunu görebilirsiniz. Önceki bölümde bu veritabanını zaten sağladığımız için Toolbox'ı kurmaya devam edelim.

  1. Cloud Shell Terminalinize gidin ve projenizin seçili olduğundan ve terminalin isteminde gösterildiğinden emin olun. Proje dizininize gitmek için Cloud Shell terminalinizde aşağıdaki komutu çalıştırın:
mkdir gemini-cli-project

cd gemini-cli-project
  1. Araç kutusunu indirip yeni klasörünüze yüklemek için aşağıdaki komutu çalıştırın:
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

Bu işlem, mevcut dizininizde araç kutusunu oluşturur. Yolu araç kutusuna kopyalayın.

  1. Cloud Shell Düzenleyici'ye (kod düzenleme modu için) gidin ve proje kök klasöründe ("gemini-cli-project") "tools.yaml" adlı bir dosya ekleyin.
sources:
    alloydb:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "vector-cluster"
        instance: "vector-instance"
        database: "postgres"
        user: "postgres"
        password: "alloydb"


tools:
   get-apparels:
    kind: postgres-sql
    source: alloydb
    description: Get all apparel data.
    statement: |
      select id, content, uri, category, sub_category,color,gender from apparels;

tools.yaml dosyasını inceleyelim:

Kaynaklar, bir aracın etkileşimde bulunabileceği farklı veri kaynaklarınızı temsil eder. Kaynak, bir aracın etkileşimde bulunabileceği bir veri kaynağını temsil eder. Kaynakları, tools.yaml dosyanızın kaynaklar bölümünde harita olarak tanımlayabilirsiniz. Genellikle bir kaynak yapılandırması, veritabanına bağlanmak ve veritabanıyla etkileşim kurmak için gereken tüm bilgileri içerir.

Araçlar, bir aracının gerçekleştirebileceği işlemleri (ör. bir kaynağa okuma ve yazma) tanımlar. Araç, aracınızın gerçekleştirebileceği bir işlemi (ör. SQL ifadesi çalıştırma) temsil eder. Araçlar'ı tools.yaml dosyanızın araçlar bölümünde harita olarak tanımlayabilirsiniz. Genellikle bir aracın işlem yapması için kaynak gerekir.

tools.yaml dosyanızı yapılandırma hakkında daha fazla bilgi için bu belgeye bakın.

Yukarıdaki Tools.yaml dosyasında görebileceğiniz gibi, "get-apparels" aracı, veritabanındaki tüm giyim eşyalarının ayrıntılarını listeler.

7. Gemini CLI'yı ayarlama

Cloud Shell Düzenleyici'de gemini-cli-project klasörünün içinde .gemini adlı yeni bir klasör oluşturun ve bu klasörde settings.json adlı yeni bir dosya oluşturun.

{
  "mcpServers": {
"AlloyDBServer": {
  "command": "/home/user/gemini-cli-project/toolbox",
  "args": ["--tools-file", "tools.yaml", "--stdio"]
}
  }
}

Yukarıdaki snippet'teki komut bölümünde "/home/user/gemini-cli-project/toolbox" ifadesini toolbox'a giden yolunuzla değiştirin.

Gemini CLI'yı yükleme

Son olarak, Cloud Shell Terminal'den aşağıdaki komutu çalıştırarak Gemini CLI'yı aynı dizine (gemini-cli-project) yükleyelim:

sudo npm install -g @google/gemini-cli

Proje kimliğinizi ayarlama

Ortamda etkin proje kimliğinin ayarlandığından emin olun:

export GOOGLE_CLOUD_PROJECT=<<YOUR_PROJECT_ID>>

Gemini KSA'yı kullanmaya başlama

Komut satırından şu komutu girin:

gemini

Aşağıdakine benzer bir yanıt görmeniz gerekir:

94f16dd7b5e2ca77.png

Kimliğinizi doğrulayın ve sonraki adıma geçin.

8. Gemini KSA ile etkileşime başlama

Yapılandırılmış MCP sunucularını listelemek için /mcp komutunu kullanın.

83e1c54ec68add5c.png

Yapılandırdığımız 2 MCP sunucusunu (GitHub ve Veritabanları için MCP Araç Kutusu) araçlarıyla birlikte listelenmiş olarak görmeniz gerekir.

84b59c3027d370e2.png

Benim durumumda daha fazla araç var. Bu nedenle şimdilik görmezden gelin. AlloyDB MCP sunucunuzda get-apparels aracını görmeniz gerekir.

MCP Araç Kutusu aracılığıyla veritabanını sorgulamaya başlama

Şimdi, üzerinde çalıştığımız veri kümesiyle ilgili yanıt ve sorgu almak için doğal dil soruları sormayı deneyin:

> How many types of genders the apparel dataset has?

ae24caa625ef871b.png

> Give me the SQL that I can use to find the number of apparels that are footwear 

b75da65679031c7.png

> What are the unique sub categories that are there?
that I can use to find the number of apparels that are footwear 

c04fd9e113a4ed95.png

Şimdi de analizlerime ve bu tür birçok sorguya dayanarak ayrıntılı bir sorgu oluşturduğumu ve bunu test etmek istediğimi varsayalım. Ya da veritabanı mühendislerinin sizin için Tools.yaml dosyasını aşağıdaki gibi oluşturduğunu varsayalım:

sources:
    alloydb:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "vector-cluster"
        instance: "vector-instance"
        database: "postgres"
        user: "postgres"
        password: "alloydb"

tools:
   get-apparels:
    kind: postgres-sql
    source: alloydb
    description: Get all apparel data.
    statement: |
      select id, content, uri, category, sub_category,color,gender from apparels;

   filtered-vector-search:
    kind: postgres-sql
    source: alloydb
    description: Get the list of facet filter values from the retail dataset.
    parameters:
      - name: categories
        type: array
        description: List of categories preferred by the user.
        items:
          name: category 
          type: string
          description: Category value. 
      - name: subCategories
        type: array
        description: List of sub-categories preferred by the user.
        items:
          name: subCategory 
          type: string
          description: Sub-Category value.
      - name: colors
        type: array
        description: List of colors preferred by the user.
        items:
          name: color 
          type: string
          description: Color value.
      - name: genders
        type: array
        description: List of genders preferred by the user for apparel fitting.
        items:
          name: gender 
          type: string
          description: Gender name.
      - name: searchtext
        type: string
        description: Description of the product that the user wants to find database matches for.    
    statement: |
      SELECT id, content, uri, category, sub_category,color,gender FROM apparels 
      where category = ANY($1) and sub_Category = ANY($2) and color = ANY($3) and gender = ANY($4)
      order by embedding <=> embedding('text-embedding-005',$5)::vector limit 10

Şimdi doğal dil araması yapmayı deneyelim:

> How many yellow shirts are there for boys?

5c3890cf69e3dacb.png

4ec79f49b2eaebbd.png

Harika, değil mi? Artık, uygulamamda yeni işlevler sunmaya devam ederken sorgularda daha fazla ilerleme kaydetmek için YAML dosyasını düzeltebiliyorum.

9. Hızlandırılmış Uygulama Geliştirme

Gemini CLI ve MCP Toolbox aracılığıyla veritabanı özelliklerini doğrudan IDE'nize getirmenin avantajları sadece teorik değildir. Bu, özellikle karma perakende deneyimimiz gibi karmaşık bir uygulama için somut ve hızı artıran iş akışlarına dönüşür. Birkaç senaryoya göz atalım:

1. Ürün filtreleme mantığını hızlı bir şekilde yineleme

"Yazlık spor kıyafetler" için yeni bir promosyon başlattığımızı düşünelim. Faset filtrelerimizin (ör. marka, boyut, renk, fiyat aralığına göre) bu yeni kategoriyle nasıl etkileşim kurduğunu test etmek istiyoruz.

IDE entegrasyonu olmadan:

Büyük ihtimalle ayrı bir SQL istemcisine geçer, sorgumu yazar, çalıştırır, sonuçları analiz eder, uygulama kodunu ayarlamak için IDE'me geri döner, istemciye geri döner ve işlemi tekrarlardım. Bu bağlam değiştirme işlemi büyük bir sorun.

Gemini CLI ve MCP ile:

IDE'mde ve daha birçok yerde kalabilirim:

  • Sorgulama: "SELECT DISTINCT brand FROM products WHERE category = ‘activewear' AND season = ‘summer'" (varsayımsal veri kümesi) ile yaml dosyasındaki sorguyu hızlıca güncelleyip doğrudan terminalimde deneyebilirim.
  • Veri Keşfi: Döndürülen markaları anında görün. Belirli bir marka ve boyuttaki ürünlerin stok durumunu görmem gerekiyorsa başka bir hızlı sorgu kullanabilirim:"SELECT COUNT(*) FROM products WHERE brand = ‘SummitGear' AND size = ‘M' AND category = ‘activewear' AND season = ‘summer'"
  • Kod Entegrasyonu: Ardından, bu hızlı ve IDE içi veri analizlerine göre ön uç filtreleme mantığını veya arka uç API çağrılarını anında ayarlayabilirim. Böylece geri bildirim döngüsü önemli ölçüde kısalır.

2. Ürün Önerileri İçin Vector Search'ü İnce Ayarlama

Karma arama özelliğimiz, alakalı ürün önerileri için vektör yerleştirmelerinden yararlanır. "Erkek koşu ayakkabısı" önerilerinin tıklama oranlarında düşüş olduğunu varsayalım.

IDE entegrasyonu olmadan:

Önerilen ayakkabıların benzerlik puanlarını analiz etmek, bunları kullanıcı etkileşimi verileriyle karşılaştırmak ve herhangi bir kalıbı ilişkilendirmeye çalışmak için bir veritabanı aracında özel komut dosyaları veya sorgular çalıştırıyorum.

Gemini CLI ve MCP ile:

  • Yerleştirmeleri Analiz Etme: Ürün yerleştirmeleri ve bunlarla ilişkili meta veriler için doğrudan sorgu oluşturabilirim: "SELECT product_id, name, vector_embedding FROM products WHERE category = ‘running shoes' AND gender = ‘male' LIMIT 10"
  • Çapraz Referans: Seçilen bir ürün ile önerileri arasındaki gerçek vektör benzerliğini de doğrudan kontrol edebilirim. Örneğin, B ürününü inceleyen kullanıcılara A ürünü öneriliyorsa vektör yerleştirmelerini almak ve karşılaştırmak için bir sorgu çalıştırabilirim.
  • Hata ayıklama: Bu sayede hata ayıklama ve hipotez testi daha hızlı yapılabilir. Yerleştirme modeli beklendiği gibi mi çalışıyor? Verilerde öneri kalitesini etkileyen anormallikler var mı? Kodlama ortamımdan ayrılmadan ilk yanıtları alabiliyorum.

3. Yeni özellikler için şema ve veri dağıtımını anlama

"Müşteri yorumları" özelliği eklemeyi planladığımızı varsayalım. Arka uç API'sini yazmadan önce mevcut müşteri verilerini ve yorumların nasıl yapılandırılacağını anlamamız gerekir.

IDE entegrasyonu olmadan:

Bir veritabanı istemcisine bağlanmam, müşteriler ve siparişler gibi tablolarda DESCRIBE komutlarını çalıştırmam, ardından ilişkileri ve veri türlerini anlamak için örnek verileri sorgulamam gerekir.

Gemini CLI ve MCP ile:

  • Şema Keşfi: YAML dosyasındaki tabloyu sorgulayıp doğrudan terminalde çalıştırabilirim.
  • Veri örnekleme: Ardından, müşteri demografik bilgilerini ve satın alma geçmişini anlamak için örnek verileri çekebilirim: "SELECT customer_id, name, signup_date, total_orders FROM customers ORDER BY signup_date DESC LIMIT 5"
  • Planlama: Şemaya ve veri dağıtımına hızlı erişim sayesinde, yeni yorumlar tablosunun nasıl tasarlanacağı, hangi yabancı anahtarların oluşturulacağı ve yorumların müşterilere ve ürünlere nasıl verimli bir şekilde bağlanacağı konusunda bilinçli kararlar verebiliriz. Tüm bunları, yeni özellik için tek bir satır uygulama kodu yazmadan önce yapabiliriz.

Bunlar yalnızca birkaç örnek olsa da temel avantajı vurgulamaktadır: sürtünmeyi azaltmak ve geliştirici hızını artırmak. AlloyDB etkileşimini doğrudan IDE'ye taşıyan Gemini CLI ve MCP Toolbox, daha iyi ve daha hızlı yanıt veren uygulamaları daha hızlı geliştirmemizi sağlıyor.

10. Temizleme

Bu yayında kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız şu adımları uygulayın:

  1. Google Cloud Console'da Kaynak Yöneticisi sayfasına gidin.
  2. Proje listesinde silmek istediğiniz projeyi seçin ve Sil'i tıklayın.
  3. İletişim kutusunda proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.
  4. Alternatif olarak, KÜMEYİ SİL düğmesini tıklayarak bu proje için yeni oluşturduğumuz AlloyDB kümesini silebilirsiniz (yapılandırma sırasında küme için us-central1'i seçmediyseniz bu köprüdeki konumu değiştirin).

11. Tebrikler

Tebrikler! MCP Toolbox'ı doğrudan IDE'nize entegre ederek sorunsuz AlloyDB etkileşimi sağladınız ve Gemini CLI'yi kullanarak perakende e-ticaret veri setimizle etkileşime geçerek normalde ayrı araçlar gerektirecek sorgular yazdınız. Tablo yapılarını kontrol etmekten hızlı veri doğruluk kontrolleri yapmaya kadar, verileri incelemenin ve anlamanın yeni yollarını öğrendiniz. Tüm bu işlemler, IDE'mizdeki tanıdık komut satırı arayüzleri üzerinden gerçekleştirilir.

Devam edin ve repo klonlayın, analiz edin ve Gemini CLI ile MCP Toolbox for Databases'i kullanarak uygulamayı geliştirdiyseniz bana bildirin.

Gemini CLI ve MCP ile oluşturulan ve sunucusuz çalışma zamanlarında dağıtılan bu tür veri odaklı uygulamalar hakkında daha fazla bilgi edinmek için Code Vipassana'nın yaklaşan sezonuna kaydolun. Bu etkinlikte, eğitmenler tarafından yönetilen uygulamalı oturumlar ve daha fazla codelab'e katılabilirsiniz.