Gemini KSA ile uygulamalı deneyim

1. Giriş

Bu codelab'de, Gemini'ın gücünü doğrudan terminalinize getiren açık kaynaklı bir yapay zeka temsilcisi olan Gemini CLI hakkında bilgi edineceksiniz.

Neler öğreneceksiniz?

  1. Gemini CLI'yı yükleme ve yapılandırma
  2. Gemini CLI'da araçları, yerleşik komutları keşfetme ve MCP sunucularını yapılandırma
  3. GEMINI.md dosyası aracılığıyla Gemini CLI'yı özelleştirme
  4. Gemini CLI ile birkaç kullanım alanını keşfetme

Gerekenler

Bu codelab, Gemini CLI'ın önceden yüklü olduğu Google Cloud Shell'de tamamen çalıştırılabilir.

Alternatif olarak, kendi makinenizde çalışmayı tercih ederseniz Gemini CLI'yı yerel olarak yükleyebileceğiniz bir bölüm de vardır.

İhtiyacınız olanlar:

  • Chrome web tarayıcısı
  • Gmail hesabı

Bu codelab, yeni başlayanlar da dahil olmak üzere her seviyeden kullanıcı ve geliştirici için tasarlanmıştır. Codelab'deki kullanım alanları, geliştirici ve geliştirici olmayan görevler olarak sınıflandırılmıştır. Geliştirici kullanım alanları, Gemini CLI ile kod oluşturmanın ve kod açıklama/anlama, doküman oluşturma, sorunları düzeltme gibi yaygın geliştirme görevlerini gerçekleştirmek için GitHub deposuyla çalışmanın nasıl yapılacağını gösterir. Bu kullanım alanlarını codelab'de tamamlamanız önerilir. En sonda, geliştiricilere odaklanmayan ve günlük olarak yapılan çeşitli görevleri kapsayan isteğe bağlı bir bölüm bulunur.

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.
  3. bq'nun önceden yüklendiği, 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üğmesi resmi

  1. Cloud Shell'e bağlandıktan sonra aşağıdaki komutu kullanarak kimliğinizin doğrulanıp doğrulanmadığını ve projenin proje kimliğinize ayarlanıp ayarlanmadığı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>

3. Kurulum

Kurulumu yapıp Gemini CLI'yı çalıştırmadan önce, içinde oluşturacağımız tüm projeler için ana klasör olarak kullanacağımız bir klasör oluşturalım. Bu, Gemini CLI'nın çalışması için bir başlangıç noktasıdır. Ancak sisteminizdeki diğer bazı klasörlere de referans verecektir. Bu klasörlere gerektiğinde daha sonra ulaşabilirsiniz.

Devam edin ve bir örnek klasör (gemini-cli-projects) oluşturun ve aşağıdaki komutları kullanarak bu klasöre gidin. Dilerseniz başka bir klasör adı kullanabilirsiniz.

mkdir gemini-cli-projects

Şimdi o klasöre gidelim:

cd gemini-cli-projects

gemini komutunu kullanarak Gemini CLI'yi doğrudan başlatabilirsiniz.

Lütfen doğrudan sonraki bölüme (settings.json aracılığıyla Gemini CLI yapılandırması) gidin.

Gemini CLI'yı yerel olarak yüklemek istiyorsanız aşağıda verilen talimatları uygulayın.

İlk adım, makinenize Node 20 veya sonraki bir sürümü yüklemektir. Bu işlem tamamlandıktan sonra, aşağıdaki yöntemlerden herhangi birini kullanarak Gemini CLI'ı yükleyip çalıştırabilirsiniz:

  1. Öncelikle Gemini CLI'yi sisteminize genel olarak yükleyebilirsiniz. Bu adımı gerçekleştirmek için yönetici erişiminiz olması gerekebilir.
# option 1: install Gemini CLI

npm install -g @google/gemini-cli

# .. and then run
gemini
  1. Aşağıdaki komutla çalıştırın:
# option 2: run without installing Gemini CLI

npx https://github.com/google-gemini/gemini-cli

CLI'nin yüklendiğini doğrulamak için şu komutu çalıştırın:

gemini --version

Gemini CLI'yı yukarıdaki yöntemlerden herhangi biriyle başlattığınızı varsayarsak tema seçimiyle ilgili aşağıdaki ekranı görürsünüz. İstediğiniz birini seçin:

35a98edaf7f22e8e.png

Bu seçeneği belirlediğinizde kimlik doğrulama yöntemi istenir. Bu laboratuvarda Google dışı veya Google Workspace ile ilgili hesaplar yerine kişisel Google Hesabınızı kullanmanız önerilir. Bu ücretsiz lisansla Gemini 2.5 Pro'ya ve 1 milyon parçalık bağlam penceresine erişebilirsiniz. Ücretsiz katman,dakikada 60 model isteğine ve günde 1.000 isteğe ücretsiz olarak izin verir.

Google Hesaplarına verilen mevcut ücretsiz kotayla sınırlara ulaşırsanız Gemini API anahtarını veya Google Cloud Vertex AI'ı kullanmayı tercih edebilirsiniz. Bu durumda, ilgili proje için bir proje kimliğiniz ve konum adınız olması gerekir. Diğer kimlik doğrulama yöntemlerini kullanmayı planlıyorsanız dokümanların Kimlik Doğrulama bölümüne bakın.

57bad75cedaaaa38.png

Enter'ı tıklayın. Tarayıcıda Google kimlik doğrulama sayfası açılır. Google Hesabınızla kimlik doğrulama işlemine devam edin, şartları kabul edin. Kimlik doğrulama işlemi başarıyla tamamlandıktan sonra Gemini CLI'nın hazır olduğunu ve komutunuzu beklediğini görürsünüz. Örnek ekran görüntüsü aşağıda verilmiştir:

4dbc0138b78dc354.png

4. settings.json aracılığıyla Gemini CLI yapılandırması

Gemini'ı çalıştırmak için Cloud Shell'i seçerseniz Gemini CLI için varsayılan tema ve kimlik doğrulama yöntemi sizin için önceden seçilip yapılandırılır.

Gemini CLI'yi makinenize yükleyip ilk kez başlattıysanız bir tema ve ardından bir kimlik doğrulama yöntemi seçmişsinizdir.

Artık Gemini CLI'nın sonraki çalıştırmalarında tema ve kimlik doğrulama yöntemi seçmeniz istenmez. Bu, ayarın bir yerde kalıcı olarak saklandığı ve kullanılan dosyanın settings.json olarak adlandırıldığı anlamına gelir. Bu dosya, Gemini CLI'yı özelleştirmenin yoludur.

Ayarlar aşağıdaki öncelik sırasına göre uygulanır (Cloud Shell yalnızca kullanıcı ayarlarını kullanılabilir hale getirir):

  1. Sistem: /etc/gemini-cli/settings.json (Tüm kullanıcılar için geçerlidir, kullanıcı ve çalışma alanı ayarlarını geçersiz kılar.)
  2. Workspace: .gemini/settings.json (kullanıcı ayarlarını geçersiz kılar).
  3. Kullanıcı: ~/.gemini/settings.json.

Windows Kullanıcısı: %USERPROFILE%.gemini\settings.json (genellikle C:\Users&lt;YourUsername>.gemini\settings.json olarak genişletilir)

Sistem: %ProgramData%\gemini-cli\settings.json (genellikle C:\ProgramData\gemini-cli\settings.json olarak genişletilir)

Mac Kullanıcısı: ~/.gemini/settings.json (/Users/<YourUsername>/.gemini/settings.json olarak genişletilir)

Sistem: /etc/gemini-cli/settings.json

Hatırlarsanız temayı seçerken ayarların Kullanıcı Ayarları'na kaydedilmesini seçmiştiniz. Bu nedenle ~/.gemini folder adresini ziyaret ettiğinizde settings.json dosyasını görürsünüz.

settings.json dosyam aşağıda gösteriliyor. Başka bir tema seçtiyseniz adı orada görürsünüz.

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal" or "cloud-shell"
}

5. Gemini CLI ile ilk etkileşimimiz

Gemini CLI'yı kullanmaya başlayalım ve ilk sorgunuzu aşağıda gösterildiği gibi yazın:

Give me a famous quote on Artificial Intelligence and who said that?

Beklenen yanıt aşağıda gösterilmiştir:

GoogleSearch Searching the web for: "famous quote on Artificial Intelligence and who said it"                                                                                                                 ...
Search results for "famous quote on Artificial Intelligence and who said it" returned.                                                                                                                             

✦ "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking.

Sorgumuzun, GoogleSearch aracının (Gemini CLI'da yerleşik bir araç) çağrılmasıyla sonuçlandığını göreceksiniz. Diğer bir deyişle, Gemini CLI'ın güçlü yerleşik araçlarından biri olan GoogleSearch aracını kullanarak yanıtlarını web'den aldığı bilgilere dayandırmış olursunuz. Araçlar hakkında daha fazla bilgiyi sonraki bölümde edineceksiniz.

Gemini CLI'yı ve desteklediği çeşitli komutları anlamanın hızlı bir yolu, /help (eğik çizgi) yazmaktır. Bu şekilde çeşitli komutları ve klavye kısayollarını görebilirsiniz.

Şimdilik Gemini CLI'dan çıkalım. Bu işlemi /quit komutuyla veya etkileşimli Gemini KSA terminal oturumunda Ctrl-C komutunu iki kez çalıştırarak yapabilirsiniz.

6. Gemini CLI - Komut Parametreleri

Gemini KSA'yı başlatırken kullanabileceğiniz birkaç komut satırı parametresi vardır. Seçeneklerin tam listesini görmek için aşağıda gösterildiği gibi --help kullanabilirsiniz.

gemini --help

Bu işlem, mevcut seçeneklerin tamamını gösterir. Buradaki belgeleri incelemeniz önerilir.

Bunlardan birkaçına göz atalım. İlk yöntem, Gemini CLI'yı Pro veya Flash modelini kullanacak şekilde yapılandırmaktır. Bu laboratuvar yazılırken şu anda yalnızca bu iki model desteklenmektedir. Varsayılan olarak Gemini 2.5 Pro modeli kullanılır. Ancak Flash Model'i kullanmak isterseniz Gemini CLI'yı başlatırken aşağıdaki gibi -m parametresiyle bunu yapabilirsiniz:

gemini -m "gemini-2.5-flash"

Yukarıdaki şekilde başlarsanız modeli, Gemini CLI terminalinin sağ alt kısmında aşağıdaki gibi kontrol edebilirsiniz:

60c4c0e6d277ade7.png

Gemini CLI uygulamasına girdikten sonra, /model komutunu kullanarak bir model seçmenize olanak tanıyan iletişim kutusunu açabilirsiniz. Aşağıda örnek bir çalıştırma gösterilmektedir. İhtiyaçlarınıza ve verilen talimatlara bağlı olarak, karmaşıklığa ve maliyetleri kontrol etme ihtiyacına göre göreve uygun modeli seçmek için modeli değiştirmeye devam edebilirsiniz.

4bd48822b92ba012.png

Etkileşimsiz mod

İlginç bir seçenek de Gemini CLI'yi etkileşimli olmayan bir modda çalıştırmaktır. Bu durumda, istemi doğrudan sağladığınızda Gemini CLI etkileşimli terminali açılmadan yanıt verilir. Bu, Gemini CLI'yı komut dosyasının veya başka bir otomasyon sürecinin parçası olarak otomatik bir şekilde kullanmayı planlıyorsanız çok faydalıdır. Aşağıda gösterildiği gibi istemi Gemini CLI'ye sağlamak için -p parametresini kullanabilir veya istemi sağlamak için yalnızca konumsal bağımsız değişkeni kullanabilirsiniz.

gemini "What is the gcloud command to deploy to Cloud Run"

Sohbete devam ederek konuyla ilgili başka sorular soramayacağınızı unutmayın. Bu modda araçları (WriteFile dahil) yetkilendirmenize veya kabuk komutları çalıştırmanıza da izin verilmez.

7. Gemini CLI - Yerleşik Araçlar

Gemini CLI, bir dizi yerleşik araçla birlikte gelir ve araç dokümanlarında "Gemini modeli, yerel ortamınızla etkileşim kurmak, bilgilere erişmek ve işlemleri gerçekleştirmek için bu araçları kullanır. Bu araçlar, CLI'nın özelliklerini geliştirerek metin oluşturmanın ötesine geçmesini ve çok çeşitli görevlerde yardımcı olmasını sağlar."

Mevcut Yerleşik Araçlar'ın listesini almak için /tools komutunu aşağıda gösterildiği gibi çağırın:

Available Gemini CLI tools:

  - Codebase Investigator Agent (codebase_investigator)
  - Edit (replace)
  - FindFiles (glob)
  - GoogleSearch (google_web_search)
  - ReadFile (read_file)
  - ReadFolder (list_directory)
  - SaveMemory (save_memory)
  - SearchText (search_file_content)
  - Shell (run_shell_command)
  - WebFetch (web_fetch)
  - WriteFile (write_file)
  - WriteTodos (write_todos)

Hemen dikkatinizi çekmesi gereken şeylerden biri, Gemini CLI'ın istediği zaman bu araçları basitçe çağırıp çağıramayacağını kendinize sormaktır. Yerel sisteme yazma, harici bir sistemden okuma, harici ağa gitme gibi hassas işlemler söz konusu olduğunda varsayılan yanıt hayır'dır.

KSA'yı başlattığınızda --yolo seçeneği kullanılabilir (genellikle önerilmez). Gemini KSA'nın, seçtiği aracı çalıştırmak için sizden izin isteyeceğini göreceksiniz. İzni reddedebilir, tek bir kez çalışmasına izin verebilir veya her zaman çalışması için genel izin verebilirsiniz. Her şeyin kontrolü sizde olmalıdır.

Gemini CLI'ın yürütmek için yerleşik araçlardan birini seçmesini sağlayacak ve her şeyin nasıl çalıştığına dair iyi bir anlayış kazanmanızı sağlayacak bir istem kullanalım.

Dünyadaki en son finans haberleri hakkında bilgi edinmek ve bu bilgileri Gemini CLI'yi başlattığınız yerel çalışma dizinindeki bir dosyaya kaydetmek istediğiniz bir senaryo düşünün. Aşağıdaki istemi kullanın:

Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt

Bir an için ne yapması gerektiğini düşünün. İdeal olarak, finansal haberler sağlayabilecek bazı alakalı bilgi kaynaklarından haber almak için Google Arama yapması gerekir. Ardından, içeriğiyle birlikte finance-news-today.txt adlı bir dosya oluşturması gerekir (yerel sisteminizde yazma işlemi için izniniz gerekir).

Ne olduğuna bakalım (makinenizde aynı işlemi yapmaya devam etmelisiniz).

İlk olarak, web'de arama yapmak ve sonuçları almak için GoogleSearch aracını çağırır.

GoogleSearch Searching the web for: "latest finance headlines today"                                                                                                                                            

Search results for "latest finance headlines today" returned.  

Bu işlem tamamlandıktan sonra dosyaya yazmaya hazır olur ve WriteFile aracını kullanır. Ancak bu hassas bir işlem (yazma) olduğundan izninizi ister. İzin türüne (ör. bir kez izin ver, her zaman izin ver) karar verebilirsiniz. Şimdilik bir kez izin ver'i seçin.

c84c5b58e202f98f.png

Ardından bilgiler dosyaya yazılır ve aşağıda başarı mesajı gösterilir:

✦ I have successfully saved the latest finance headlines into the file finance-news-today.txt.

Dosyanın yazılıp yazılmadığını nasıl kontrol edersiniz? @file simgesini kullanarak içeriği okumasını isteyebilirsiniz. @ yazarken geçerli klasördeki dosyaların listesi gösterilir ve yeni oluşturulan dosya da bu listede yer alır. Bunu seçip istemi gönderin. İstemim aşağıda gösterilmiştir:

read the contents of @finance-news-today.txt

Bu işlem, gerekli araçların (ReadManyFiles, ReadFile) çağrılmasına ve içeriklerin aşağıda gösterildiği gibi görüntülenmesine neden olur:

7a5fc5d834cbb93b.png

8. Gemini CLI - Shell modu

Bu, Gemini CLI'dan doğrudan Shell ile nasıl çalışacağınızı öğrenmek için iyi bir zamandır. İleti kutusunda ! tuşuna basarak kabuk moduna geçebilirsiniz. Bu işlem, kabuk moduna geçiş yapar. ! tuşuna tekrar basarak veya ESC tuşuna basarak geri dönebilirsiniz.

Kabuk modundayken istemin başında ! simgesini görürsünüz (aşağıda gösterildiği gibi):

a87f54bb3066b82d.png

Aşağıda gösterildiği gibi pwd ve ls gibi standart komutları kullanarak doğrudan kontrol edebilirsiniz. Komutların Linux türü bir işletim sistemi için geçerli olduğunu lütfen unutmayın. Başka bir işletim sisteminde (Windows) çalışıyorsanız lütfen (cd, dir ve type) gibi eşdeğer komutları kullanın. Bu çağrıların çıktısının modelin bağlam penceresine dahil edildiğini unutmayın.

33a18abe5581ff74.png

Dosyanın içeriğini cat komutuyla yazdırabilirsiniz.

6dbe0049ed002553.png

Alıştırma: Deneyebileceğiniz kısa bir alıştırma. Tercih ettiğiniz bir RSS feed'i seçin. Gemini CLI'ya RSS özet akışının içeriğini getirmesi ve sonuçları sizin için belirli bir şekilde biçimlendirmesi için istem girin. Bu, günün başında bir şeyi otomatize etmenin iyi bir yoludur. Hatta Gemini CLI'dan belirli bir alan için RSS feed'i olup olmadığını (ör. Google Cloud Platform Sürüm Notları) belirlemesini isteyebilirsiniz.

Örnek istem aşağıda gösterilmiştir:

Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.

Bu istem, ideal olarak önce Google Cloud Platform RSS özet akışını bulmak için GoogleSearch aracını çağırır. Ardından, RSS özet akışının içeriğini almak ve görüntülemek için WebFetch aracını kullanır.

9. Gemini CLI Uzantıları

Dokümanda belirtildiği gibi, Gemini KSA uzantıları istemleri, MCP sunucularını ve özel komutları tanıdık ve kullanıcı dostu bir biçimde paketler. Uzantılarla Gemini CLI'nin özelliklerini genişletebilir ve bu özellikleri başkalarıyla paylaşabilirsiniz. Bu, Gemini CLI'nin işlevselliğini yerleşik araçlarının ötesine genişletmek için kullanılan temel mekanizmadır.

Uzantılar, bağımsız, sürümlendirilebilir ve kolayca dağıtılabilir paketlerdir. Bunu, Gemini CLI özelleştirmeleriniz için "kargo konteyneri" olarak düşünebilirsiniz. Belirli bir iş akışı için gereken her şeyi tek bir pakette toplar.

f5ae3e229462c130.png

Bir uzantı, aşağıdakilerin herhangi bir kombinasyonunu paketleyebilir:

  • Özel eğik çizgi komutları (.toml dosyalarınız).
  • MCP sunucusu yapılandırmaları (daha önce settings.json'da bulunuyordu).
  • Modele özel talimatlar ve yönergeler sağlamak için bağlam dosyaları (GEMINI.md).
  • Daha güvenli ve odaklanılmış bir ortam oluşturmak için araç kısıtlamaları (excludeTools).

Uzantı Galerisi, Google tarafından geliştirilen ve üçüncü taraf uzantılarının keşfedildiği merkezi bir pazar yeridir:

  1. Tarayıcınızda şu URL'yi açın: https://geminicli.com/extensions/browse/.
  2. Bu galeri, ekosistemin keşfedilebilirlik motorudur. GitHub, Redis ve DynaTrace gibi şirketlerin uzantılarını inceleyerek mevcut araçların kapsamını görebilirsiniz.
  3. Aşağı kaydırıp Cloud Run'ın uzantı kartını bulun.
  4. Kartta açıklama, yazar (Google) ve tek tıklamayla Copy komut düğmesi bulunur. Bu, bir uzantının yükleme komutunu almanın en basit yoludur.

Gemini CLI Uzantıları - Yönetim Komutları

gemini extensions komutu, yerel uzantılarınızı yönetmek için giriş noktanızdır.

Kullanılabilir komutların listesini görmek için terminalinizde çalıştırın.

gemini extensions <command>

Manage Gemini CLI extensions.

Commands:
  gemini extensions install <source> [--auto-update] [--pre-release]   
      Installs an extension from a git repository URL or a local path.
  gemini extensions uninstall <names..>                                  
      Uninstalls one or more extensions.
  gemini extensions list
      Lists installed extensions.
  gemini extensions update [<name>] [--all]                           
      Updates all extensions or a named extension to the latest version.
  gemini extensions disable [--scope] <name>                          
      Disables an extension.
  gemini extensions enable [--scope] <name>                           
      Enables an extension.
  gemini extensions link <path>                                       
     Links an extension from a local path. Updates made to the local path 
     will always be reflected.
  gemini extensions new <path> [template]                             
     Create a new extension from a boilerplate example.
  gemini extensions validate <path>                                   
     Validates an extension from a local path.

Komutlar basittir (yükleme/kaldırma, listeleme, güncelleme, etkinleştirme/devre dışı bırakma vb.) ve bu kod laboratuvarında bu komutlardan bazılarını kullanacağız.

Mevcut uzantı listenizi kontrol edin.

Herhangi bir şey yüklemeden önce "temiz başlangıcımızı" kontrol edelim.

  1. gemini extensions list komutunu çalıştırın:
  2. Henüz uzantı yüklenmediğini onaylayan aşağıdaki çıkışı görmeniz gerekir.
No extensions installed.

GitHub MCP sunucusunu yapılandırma

Gemini CLI uzantısı türlerinden biri MCP sunucusudur. MCP sunucusu, Model Context Protocol aracılığıyla Gemini CLI'ye araçlar ve kaynaklar sunan, bu sayede harici sistemler ve veri kaynaklarıyla etkileşim kurmasına olanak tanıyan bir uygulamadır. MCP sunucuları, Gemini modeli ile yerel ortamınız veya API'ler gibi diğer hizmetler arasında köprü görevi görür.

Github MCP Server, Gemini Uzantı Galerisi'nde kullanılabilir. Bunu tıkladığınızda, uzantıyı yükleme komutunu da göreceğiniz Uzantılar kartı açılır:

4eee33951dabd2db.png

Bunu kopyalayın veya aşağıdaki komutu kullanın:

gemini extensions install https://github.com/github/github-mcp-server

Gerekli izinleri verin. Yüklendikten sonra, gemini extensions list komutunu verdiğinizde bu uzantıyı uzantı listesinde görebilirsiniz.

✓ github (1.0.0)
 ID: faa318861b48de8d83c95eb8cd5e82c02393493978d198a0e7bf67fcb1bd22cb
 name: c0b0109d9439de57fe3cf03abeccbc52f4c98170c732d3b69af5e6395ace574e
 Path: /home/romin/.gemini/extensions/github
 Source: https://github.com/github/github-mcp-server (Type: git)
 Enabled (User): true
 Enabled (Workspace): true
 MCP servers:
  github

Uzantının yolunu görebilirsiniz. Bu klasörde, içeriği aşağıda gösterilen gemini-extension.json adlı bir dosya bulunur:

{
  "name": "github",
  "version": "1.0.0",
  "mcpServers": {
    "github": {
      "description": "--description–",
      "httpUrl": "https://api.githubcopilot.com/mcp/",
      "headers": {
            "Authorization": "Bearer $GITHUB_MCP_PAT"
      }
     }
  }
}

Ortam değişkeni aracılığıyla okunan kişisel erişim jetonuna (PAT) sahip olduğunu fark edeceksiniz. Öncelikle Github'dan kişisel erişim jetonu (PAT) almanız gerekir. Bu değeri aldıktan sonra .env dosyasını oluşturduğunuzdan ve bu değeri oraya yerleştirdiğinizden ya da aşağıdaki gibi bir ortam değişkeni oluşturduğunuzdan emin olun (PAT_VALUE yerine gerçek değeri girin):

export GITHUB_MCP_PAT=PAT_VALUE

Gemini CLI'ı yeniden başlatmanız gerekir. Özellik kullanıma sunulduktan sonra, MCP sunucularının ve ilgili araçlarının listesini görmek için /mcp list komutunu kullanabilirsiniz. GitHub MCP sunucusunu ve araçlarını (30'dan fazla) yeşil renkte görebilirsiniz. Kısmi bir liste aşağıda gösterilmektedir:

🟢 github (github'dan) - Hazır (40 araç)

Araçlar:

  • add_comment_to_pending_review
  • add_issue_comment
  • assign_copilot_to_issue
  • create_branch
  • create_or_update_file
  • create_pull_request
  • create_repository
  • delete_file
  • fork_repository
  • get_commit
  • get_file_contents
  • get_label
  • get_latest_release
  • get_me
  • get_release_by_tag
  • get_tag
  • get_team_members
  • get_teams
  • issue_read

Github MCP sunucusundaki araçlardan birini çağıracak bir istemle başlayalım. Aşağıdaki istemi girin (GitHub'da kimim?). Bu durumda Gemini CLI, doğru aracı seçer ve izninizi ister.

c9873c3f51b26866.png

İzin verdiğinizde sonuç aşağıdaki gibi alınır:

✦ You are rominirani, a Developer Advocate at Google Cloud, located in Mumbai. You have 125 public repositories and 256 followers.

Artık GitHub projelerinizden biriyle çalışabilirsiniz. Sorgularınızı doğal dilde şu şekilde girin:

  • Describe the <repo-name> to me? (<repo-name> deposunu bana açıkla.)
  • Yerel makinemde <repo-name> kod deposunu klonla.
  • @<file-name> veya @<directory-name> dosyasını açıklayın.
  • Bu depodaki farklı bileşenler nelerdir?
  • Gerekli değişiklikleri yaptım. Değişiklikleri GitHub'a gönderebilir ve bu işlemi yapmak için GitHub MCP Server araçlarını kullanabilirsiniz.

Laboratuvarın ilerleyen bölümlerinde, GitHub MCP sunucusuyla çalışma alıştırması yapacaksınız.

Cloud Run MCP sunucusunu yapılandırma

Gemini CLI Uzantıları galerisinde bulunan Cloud Run uzantısı, uygulamalarımızı Cloud Run'a dağıtmamıza olanak tanıyan bir MCP sunucusudur.

Uzantı galerisindeki Cloud Run Uzantısı kartı aşağıda gösterilmektedir:

ed9b19eac1fbde78.png

Öncelikle yukarıda gösterildiği gibi Yükleme komutunu kopyala'yı tıklayarak Cloud Run uzantısını yükleyelim. Ardından bu komutu Cloud Shell terminaline yapıştırın (aşağıdakine benzer olmalıdır):

gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp

Yukarıdaki komutu çalıştırdığınızda sizden onay istenecektir. Onaylayabilirsiniz. Cloud Run uzantısı başarıyla yüklenir.

Şimdi gemini extensions list komutunu çalıştırırsanız Cloud Run uzantısının aşağıdaki gibi yüklendiğini görmeniz gerekir:

✓ cloud-run (1.0.0)
 ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
 name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
 Path: /home/romin/.gemini/extensions/cloud-run
 Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: git)
 Enabled (User): true
 Enabled (Workspace): true
 Context files:
  /home/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
 MCP servers:
  cloud-run

Gemini CLI'yi şimdi başlatıp /mcp list komutunu çalıştırırsanız aşağıdakileri görürsünüz:

🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
  Tools:
  - create_project
  - deploy_container_image
  - deploy_file_contents
  - deploy_local_folder
  - get_service
  - get_service_log
  - list_projects
  - list_services
  Prompts:
  - deploy
  - logs

Yukarıda, nasıl yapılandırılacağını gösterdiğimiz Gemini CLI uzantılarından yalnızca birkaç örnek verilmiştir. Daha fazla uzantı keşfetmek için Uzantı Galerisi'ne göz atabilir veya "Gemini CLI Uzantılarını Kullanmaya Başlama" adlı codelab'i inceleyebilirsiniz.

10. Deneyebileceğiniz kullanım alanları

Gemini CLI, hem geliştiriciler hem de geliştirici olmayanlar için geçerli olan çok çeşitli kullanım alanlarında uygulanabilir. Burada birkaç senaryo sunulmuştur. İlgi alanınıza bağlı olarak bu senaryolardan herhangi birini veya tümünü deneyebilirsiniz.

Bu durumlarda istem sağlanır. Bu özelliği, Gemini CLI'yi başlatırken -p parametresini kullanarak Gemini CLI'nin etkileşimli veya etkileşimsiz modunda deneyebilirsiniz.

Gemini CLI ile vibe coding

Bir uygulamayı vibe code etmek için Gemini CLI'yi kullanalım. Bu görevde, Gemini CLI'dan bir uygulama oluşturmasını isteyecek ve ardından ilk sürümü bir GitHub deposuna göndereceksiniz.

Ön koşul

Bu bölümdeki görevleri gerçekleştirmek için birkaç ön koşul vardır:

  • Git
  • Github Gemini CLI uzantısıyla Gemini CLI (bunu daha önce yaptık) veya gh ( Github CLI aracı) kurduysanız bu da işe yarar.
  • Git'in temelleri ve biraz programlama bilgisi

Gemini CLI'yı seçtiğiniz belirli bir klasörde başlattığınızı varsayacağız.

İlk istemle başlayın. İstediğiniz gibi değiştirebilirsiniz. Gemini CLI ile oturum boyunca dosyaları oluşturmak için sizden izin isteyeceğini unutmayın. Gerekli izinleri verin.

Bu görevde, biraz daha fazla kontrol istediğimiz için Gemini CLI'nin uygulamayı çalıştırmasını veya bizim için test etmesini istemiyoruz. Ancak bunu yapmak tamamen size bağlıdır.

Generate a website for a 1-day event filled with technical talks. There are going to be 6 talks in a single track of 1 hour each. Each talk has the following information: title, 1 or maximum of 2 speakers, category (1 or maximum of 3 keywords), duration and a description. The website has a single page where users can see the schedule for the entire day with the timings. There will be one lunch break of an hour and the event starts at 10:00 AM. Keep a 10 minute transition between talks. I would like to use Node.js on the server side and standard HTML, JavaScript and CSS on the front-end. The users should be able to search the talks based on category.

I would like you to proceed in the following way: 
1. Plan out how you would design and code this application.
2. Ask me for any clarifications along the way.
3. Once I am fine with it, do generate the code and provide me instructions to run and test locally. 

Aşağıdaki birkaç istem ve yanıt, gözlemlenen örnek bir akışı gösterir. Gemini CLI bir plan oluşturur ve onay / açıklama isteğinde bulunur ya da devam eder. Lütfen talimatları uygulayın. Örnek olarak, örnek sohbet dizim:

   1. Backend (Node.js/Express):
       * Set up an Express server to serve the static frontend files.
       * Create an /api/schedule endpoint that will:
           * Generate the event schedule dynamically, including talk timings and the lunch break, based on your requirements.
           * Store mock talk data (title, speakers, category, description).
           * Filter the schedule based on a category query parameter.

   2. Frontend (HTML, CSS, JavaScript):
       * Create an index.html file for the main structure.
       * Develop style.css for a clean and responsive design.
       * Write script.js to:
           * Fetch the schedule data from the backend.
           * Dynamically render the talks and lunch break on the page.
           * Implement a search input that filters talks by category, updating the displayed schedule without a full page reload.

   3. Schedule Logic:
       * The backend will handle calculating the precise start and end times for each 1-hour talk, factoring in the 10:00 AM start, 10-minute transitions, and the 1-hour lunch break.

  Before I proceed with the code, could you please clarify the following:

   * Example Talk Data: Could you provide some example talk titles, speakers, categories (keywords), and descriptions? This will help me create realistic dummy data for the schedule.
   * Lunch Break Placement: Where should the 1-hour lunch break be placed in the schedule? (e.g., after the 3rd talk, at 1 PM, etc.)
   * Styling Preferences: Do you have any specific styling preferences (e.g., color scheme, modern/minimalist, etc.)? If not, I will go with a clean, simple design.

 I will create a single-page website for your event. Here's my plan:

  WriteTodos Set 7 todo(s)                                                                                                                                                                                        

 I am waiting for your clarifications regarding the example talk data, lunch break placement, and styling preferences before I proceed with generating the code.

Son olarak, aşağıdaki özeti verdi:

 Instructions to Run and Test Locally:

   1. Start the server:
      Open your terminal in the project directory (/home/romin/gemini-cli-projects/event-website/) and run:
   1     node server.js
      You should see a message in the terminal indicating: Server running on http://localhost:3000.

   2. Open in your browser:
      Open your web browser and navigate to:
      http://localhost:3000

   3. Test functionality:
       * You should see the event schedule displayed on the page, with talks and a lunch break.
       * Search by category: In the "Search by category..." input box, type a category keyword (e.g., "AI", "Web Development", "Python", "Security").
       * Click the "Search" button. The schedule displayed should filter to only show talks matching that category.
       * Click the "Reset" button to clear the search filter and view the full schedule again.

  Let me know if you encounter any issues or if you'd like to make any modifications or additions to the website!

Sunucuyu başlatma ve ana sayfaya gitme talimatlarını uyguladığımızda aşağıdaki gibi bir örnek site elde ettik (aynı istemi kullandıysanız benzer bir sitenin varyantını görmeniz gerekir):

78c224b7ce29bb4d.png

Gemini CLI'ın yardımıyla daha fazla değişiklik yapmaya devam edebilirsiniz. Değişikliklerden memnun kaldığınızda bunları bir GitHub deposuna aktarabilirsiniz.

Öncelikle .gitignore dosyası oluşturalım. Bu konuda Gemini CLI'dan yardım alabilirsiniz.

Create a .gitignore file for this project.

Sonraki adımda, bu depoyu GitHub hesabımızda göndermesi için Gemini CLI'ya talimat vermeniz gerekir. Bu işlem, arka planda GitHub MCP Server araçlarını kullanır.

Aşağıdakine benzer bir istem girin:

Great! I would now like to push all of this to a new repository in my Github account. I would like to name this repository <Your-Name>-event-talks-app

Burada çeşitli komutlar çalıştırılır:

  1. Kod deposunu oluşturun.
  2. Yerel Git deposunu yönetmek için init, add, commit gibi birden fazla Git komutu kullanılır.
  3. Ardından Git remote'u kurar ve push işlemi yapar.

Not: Gemini CLI'nin zaman aşımına uğrayabileceği veya yanlış kullanıcı adı kullanabileceği durumlar olabilir. Bu gibi durumlarda Gemini CLI ile etkileşime geçin ve düzeltmeleri önerin.

Her şey yolunda giderse bir GitHub deposu oluşturmuş olursunuz. Örnek ekran görüntüsü aşağıda gösterilmiştir:

d046ee11d28e4d33.png

Bu proje için README.md oluşturmadığınızı ve bunun, şimdi oluşturduğunuz bu depoyla çalışacağımız bir sonraki bölüm için iyi bir alıştırma olduğunu unutmayın.

GitHub deposunda çalışmak için Gemini CLI'ı kullanma

Bu kullanım alanında, bir GitHub deposuyla çalışmak için Gemini CLI'ı kullanacaksınız. Aşağıdakiler de dahil olmak üzere birden fazla görev gerçekleştireceksiniz:

  • Kod tabanını anlama
  • Belge oluşturma
  • Yeni bir özelliği uygulama
  • Değişiklikleri kaydedip depoya geri aktarma
  • Bir GitHub sorunu üzerinde çalışma ve önerilen değişiklikleri uygulama

Bu, depolarınızla çalışmak ve Gemini CLI'yı bu geliştiriciye özel görevler için asistan olarak kullanmak üzere iyi bir temel oluşturur.

Ön koşul

Bu bölümdeki görevleri gerçekleştirmek için aşağıdakileri yapmanız gerekir:

  • Git
  • Github MCP Gemini CLI uzantısı ile Gemini CLI (bunu daha önce yaptık) veya gh ( Github CLI aracı) kurduysanız bu da işe yarar.
  • Git'in temelleri ve biraz programlama bilgisi (Gemini CLI'yı yüklediğiniz için makinenizde ortam hazır olabilir. Bu nedenle, bu örnekte Node.js'yi kullanacağız). Ancak daha sonra farklı bir programlama dili ve çerçeveyle istediğiniz depoyu seçebilirsiniz.
  • Önceki bölümü tamamlamış olmanız ve Event Talks web sitesini oluşturduğumuz depoyu hazır bulundurmanız gerekir.

Event Talks uygulamasını oluşturmak için kullandığınız klasör/dizinden Gemini CLI'ı kullanmaya devam edelim. Gerekirse depoyu yerel makinenize klonlayıp Gemini CLI'ı bu dizinden başlatabilirsiniz. Aşağıda listelenen senaryoları deneyin:

Kod tabanını anlama

  • Bu projeyi ayrıntılı olarak anlamak istiyorum. Temel özellikleri anlamama yardımcı ol ve bunları sunucu ve istemci tarafı olarak ayır. Örnek bir akış alıp istek ve yanıtın nasıl çalıştığını göster.
  • Explain @server.js

README dosyası oluşturma

  • Bu proje için README dosyası oluşturun.

Yeni bir özelliği uygulama

  • Kullanıcının belirli bir konuşmacıya göre de arama yapmasına olanak tanıyan yeni bir özellik uygulamak istiyorum. Önce bu değişikliği nasıl uygulayacağınıza dair bir plan gösterin, ardından kodu oluşturabiliriz.

Onaylayabileceğiniz bir plan sunar. Onaylandığında Gemini CLI bu değişiklikleri yapar. Değişikliklerinizi test edin ve hatalar varsa (büyük olasılıkla) Gemini CLI'dan bunları düzeltmesini isteyin.

Değişiklikler istediğiniz gibi olduğunda, bunları kaydedip uzak depoya göndermek için aynı adımları uygulayabilirsiniz.

Önerilen özelliklere göre sorun oluşturma

Burada ilginç bir şey deneyelim. Gemini CLI'ya bu uygulamanın kullanıcı deneyimini nasıl iyileştirebileceğini soracaksınız. Gemini CLI, değerlendirmesine dayanarak bu önerileri aynı GitHub deposunda sorun olarak oluşturabilir. Bu işlem için GitHub MCP sunucusundaki "create_issue" aracı kullanılır.

Aşağıdaki istemi deneyin:

  • Uygulamayı kullanıcı deneyimi açısından değerlendirmeni istiyorum. Kullanım kolaylığı, hızlı yanıt verme, faydalı mesajlar ve daha fazlası. Lütfen bir iyileştirme listesi oluşturun ve ardından bunları GitHub deposunda Sorun olarak oluşturun.

İyileştirmeleri önce sizinle paylaşır ve ardından GitHub deposunda sorun oluşturmak için izninizi ister. Çalışmamızdan örnek bir ekran görüntüsü:

86c33b7815c7872a.png

Bir GitHub sorunu üzerinde çalışma ve önerilen değişiklikleri uygulama

Artık daha önce oluşturulan sorunlardan birini alıp Gemini CLI'dan bu sorunu çözmesini ve uygulamasını isteyebilirsiniz.

Oluşturduğu örnek bir sorun aşağıda gösterilmektedir:

2778bde35f41efe9.png

Sorun URL'sinin tamamını alıp aşağıdaki gibi bir istem girin:

  • Lütfen Sorun: <YOUR_ISSUE_URL> bölümünü inceleyerek hangi değişikliklerin yapılması gerektiğini anlayın. Önce planı tartış, ardından önerilen değişiklikleri kodda göster.

Değişiklikleri onaylayıp depoya aktarabilirsiniz. Hatta sorunu kapatmasını bile isteyebilirsiniz.

(İsteğe bağlı) Günlük Görevler

Aşağıda verilen kullanım alanları, düzenli olarak yapmanız gereken görevlerdir. Örneğin, dosyaları klasörler halinde düzenleme, web'deki içerikleri getirme ve özetleme, resim dosyalarını işleme ve bu dosyalardan içerik ayıklama, veritabanlarıyla çalışma gibi işlemler bu kapsamdadır.

İstediğiniz kullanım alanlarını inceleyebilirsiniz.

Dosyaları/Klasörleri Düzenleme

Gemini CLI'yı kullanarak dosyaları türlerine göre çeşitli klasörlerde istediğiniz gibi düzenleyebilirsiniz. Makinenizde .txt, .png, .jpg, .pdf, .mp4 ve diğer uzantılı dosyaların bulunduğu bir klasöre gidin. Bu klasör büyük olasılıkla masaüstünüz veya İndirilenler klasörünüzdür.

Aşağıda örnek bir klasör ve klasörün içeriği gösterilmektedir (başka dosyalarınız da olabilir):

7011e3dfaf628e9b.png

İlgili klasöre gidip Gemini CLI'yı başlatın. Öncelikle Gemini CLI'dan şu klasörleri oluşturmasını isteyeceksiniz: Resimler, Dokümanlar, Videolar. Ardından Gemini CLI'dan klasörlerdeki dosyaları düzenlemesini isteyeceksiniz.

Gemini CLI, özellikle dosya sisteminizi değiştiren komutları (ör. dosya yazma, taşıma veya silme) yürütmeden önce genellikle sizden izin ister. İzin vermeden önce bu istemleri her zaman dikkatlice inceleyin. Bu, güvenlik ağınızdır.

Create the following folders "Images","Documents","Videos"

Ardından aşağıdaki istemi girin:

Go through all the files in this folder and then organize them by moving all the files ending with .jpg, .jpeg, .gif into the "Images" folder. Move all ".txt" files into the "Documents" folder. Move all the ".mp4" files in the "Videos" folder.

Klasörün son durumunun nasıl olması gerektiğine dair bir örneği aşağıda görebilirsiniz. Yeni alt klasörlerin oluşturulduğunu ve dosyaların türlerine göre ilgili alt klasörlere taşındığını görürsünüz.

4c1ee9ddea4b3f5f.png

Diğer bazı düzenleme senaryoları (istemler her senaryonun yanında verilmiştir):

  1. Özetleme: "Documents" (Dokümanlar) klasöründeki her doküman için aynı klasörde "summary_ORIGINAL_FILENAME.txt" adında bir txt dosyası oluşturun. Bu dosya, dokümanın ana noktalarının 3 cümlelik özetini içermelidir.
  2. Türe Göre Kategorize Etme: Bu dizindeki tüm PDF ve DOCX dosyalarını tarayın. Adında veya içeriğinde "fatura" geçen tüm dosyaları "Finansal/Faturalar" klasörüne taşı. "Makbuz" içeren dosyaları "Finans/Makbuzlar" klasörüne taşıyın. Diğer tüm .docx dosyaları "Raporlar" klasörüne gider.
  3. Önemli Bilgileri Ayıklama (ve "Etiketleme"): "Finansal/Faturalar" klasöründeki her PDF dosyasının içeriğini okuyun. Bir tarih bulursanız dosyayı YYYY-AA-GG biçiminde bu tarihi içerecek şekilde yeniden adlandırın. Örneğin: ‘invoice_2025-07-26_original_name.pdf'.

Görüntüleri düzenleme

Makinenizdeki resim içeriklerini nasıl düzenleyebileceğinize bakalım.

Bu özelliği denemek için:

  • Çeşitli resim dosyalarının (.jpg, .png vb.) bulunduğu bir dizininiz/klasörünüz olmalıdır. EXIF verileri içeren bazı fotoğraflar (kameralardan/telefonlardan alınan fotoğrafların çoğunda bu veriler bulunur)
  • Bu dizine gidin.
  • Gemini CLI'yı başlatın.

Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):

  • Tarihe Göre Yeniden Adlandır (EXIF Verileri): Bu dizindeki tüm .jpg ve .png dosyalarını, EXIF verilerindeki oluşturulma tarihlerini "YYYYMMDD_HHMMSS_original_name.jpg" biçiminde içerecek şekilde yeniden adlandırın. EXIF tarihi bulunamazsa dosyanın son değiştirilme tarihi kullanılır.
  • Resim Açıklamaları Oluşturma: Bu klasördeki her resim için resimde ne olduğunu açıklayın ve bu açıklamayı aynı dizinde "description_ORIGINAL_FILENAME.txt" adlı bir metin dosyasına kaydedin.
  • Kopyaları Belirle (Kavramsal, daha gelişmiş mantık gerektirir): Bu klasördeki görsel içeriklerine göre tüm kopya resimleri bulun ve dosya adlarını listeleyin. Henüz silmeyin.

Makaleleri Özetleme (Yerel Dosyalar veya Web)

Aşağıdaki senaryoların her birinde URL'yi, ilgi alanını ve yerel dosya adlarını uygun şekilde değiştirebilirsiniz. Belirtilen dosya adları örnek dosya adlarıdır. Bunları sisteminizdeki dosyaların dosya adlarıyla değiştirebilirsiniz.

Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):

  • Bir web makalesini özetleme (tek URL): https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 adresine gidin ve bu haber makalesindeki en önemli 3 bilgiyi özetleyin.
  • Birden fazla web makalesini özetleme (ör. arama sonuçlarından): Google Arama'yı kullanarak "Gemini CLI" ile ilgili en son haber makalelerini bulun. En alakalı ilk 5 makaleyi 2-3 cümleyle özetleyin ve URL'lerini listeleyin.
  • Yerel bir metin dosyasını özetleme: "my_research_paper.txt" dosyasındaki makalenin ana noktalarını özetle. Metodolojiye ve sonuçlara odaklanın.
  • Yerel bir PDF'yi özetleme: "financial_report_Q2_2025.pdf" dosyasını oku. Bahsedilen finansal performansın ve temel zorlukların bir özetini sağlayın.

Belirli Bilgileri Çıkarma (Yerel Dosyalar veya Web)

Aşağıdaki senaryoların her birinde URL'yi, ilgi alanını ve yerel dosya adlarını uygun şekilde değiştirebilirsiniz. Belirtilen dosya adları örnek dosya adlarıdır. Bunları sisteminizdeki dosyaların dosya adlarıyla değiştirebilirsiniz.

Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):

  • Yerel bir makaleden öğe ayıklama: "biyografi.txt" dosyasından, adı geçen tüm kişileri ve onlarla ilişkili önemli tarihleri listeleyin.
  • PDF'deki bir tablodan veri ayıklama: "quarterly_sales.pdf" dosyasında, 3. sayfadaki "Bölgeye Göre Ürün Satışları" tablosundan verileri ayıklayıp Markdown tablo biçiminde sun.
  • Bir haber web sitesinden haber başlıklarını ve kaynaklarını ayıklama: "https://news.google.com/" (veya benzer bir haber sitesi) adresine gidin. Ana sayfadaki ana başlıkları ve ilgili haber kaynaklarını ayıklayın. Bunları madde işaretli liste olarak sun.
  • E-ticaret sayfasından ürün spesifikasyonlarını bulma: "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" adresine gidin (kitap örneği). Kitap başlığını, yazarı ve diğer ayrıntıları ayıklayın. Bunu yapılandırılmış bir JSON biçiminde sun.
  • Belirli bir biçimde (ör. "2s37dk42sn") videodan süreyi ayıklayın.

İçeriğe dayalı soruları yanıtlama (RAG benzeri davranış)

Aşağıdaki senaryoların her birinde URL'yi, ilgi alanını ve yerel dosya adlarını uygun şekilde değiştirebilirsiniz. Belirtilen dosya adları örnek dosya adlarıdır. Bunları sisteminizdeki dosyaların dosya adlarıyla değiştirebilirsiniz.

Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):

  • Yerel bir dokümanla ilgili soru-cevap: "user_manual.pdf" dosyasını ekliyorum. Ağ bağlantısı sorunlarını gidermek için hangi adımlar uygulanır?
  • Web sayfasında soru-cevap: "https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health" adresindeki içeriği kullanarak, DSÖ'ye göre iklim değişikliğiyle ilişkili başlıca sağlık riskleri nelerdir?
  • Birden fazla kaynaktaki bilgileri karşılaştır: "article1.txt" ve "article2.txt" adlı iki haber makalem var. Her ikisinde de son ekonomik politika değişiklikleri ele alınıyor. Küçük işletmeler üzerindeki potansiyel etkiyle ilgili görüşlerini karşılaştırın ve aralarındaki farkları belirleyin.

Ayıklanan bilgilere dayalı içerik oluşturma

Aşağıdaki senaryoların her birinde URL'yi, ilgi alanını ve yerel dosya adlarını uygun şekilde değiştirebilirsiniz.

Aşağıdaki senaryolardan herhangi birini deneyin (istemler her senaryonun yanında verilmiştir):

  • Bir makaleden haber özeti oluşturma: @tech_innovation_article.txt dosyasını oku. Yeni teknolojiyi ve potansiyelini vurgulayan, şirket bülteni için uygun, kısa ve ilgi çekici bir haber özeti (yaklaşık 150 kelime) yaz.
  • Toplantı transkriptini özetleyen bir e-posta taslağı oluştur: Toplantı transkripti dosyası: @meeting_transcript.txt. Alınan önemli kararları ve atanan yapılacak işleri (her birinden kimin sorumlu olduğu da dahil) özetleyen bir e-posta taslağı oluşturun.

Gemini CLI'da çok formatlı destek

Gemini CLI, Gemini aracılığıyla çoklu model desteğine sahiptir ve farklı içerik biçimlerindeki dosyaları gereksinimlerinize göre işlemesini isteyebilirsiniz.

Bu görevde, Gemini CLI ile bir dizi fatura resmini işleyip bunlardan önemli bilgileri ayıklayacaksınız. Aşağıdaki adımları uygulayın:

  • Makinenizde bir klasör oluşturun ve aşağıdaki GitHub deposundan bazı faturaları indirin.
  • Gemini CLI'yı bu klasörden başlatın.

Faturalardaki bilgileri tablo şeklinde ayıklamak için aşağıdaki istemi girin.

The current folder contains a list of invoice files in Image format. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.

İdeal olarak şu şekilde bir çıkış almanız gerekir:

7203d699d875a91f.png

Türetilmiş ek sütunlar isteyebileceğiniz başka bir senaryo: Geçmişteki tüm fatura son ödeme tarihleri için kırmızı çarpı emojisi göstermek istediğinizi varsayalım. Aşağıdaki gibi bir istem girebilirsiniz:

list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.

Bu işlem aşağıdaki çıkışı üretir:

e11fcde0400f5a0b.png

Bunu, metin dışındaki biçimlerdeki kendi dosyalarınızın tümüne uygulayın.

Veritabanlarıyla çalışmak için Gemini CLI'yı kullanma

Çeşitli veritabanlarıyla daha verimli çalışmak için Gemini CLI'yı kullanabilirsiniz. Bu aracı doğal dilde sorgulama, veri dışa aktarma, veritabanı şemaları tasarlama, gerçekçi test verileri oluşturma gibi birçok senaryoda kullanabilirsiniz.

Bu görevi tamamlamak için SQLite3 kullanacaksınız. SQLite3'ü yüklemeniz ve örnek Chinook veritabanına sahip olmanız gerekir.

SQLite3'ü ayarlamayla ilgili kısa talimatları aşağıda bulabilirsiniz:

  1. macOS: SQLite3 önceden yüklenmiş olarak gelir. sqlite3 --version ile doğrulayın. Gerekirse Homebrew ile yükleyin: brew install sqlite3.
  2. Windows: Önceden derlenmiş ikili dosyaları SQLite web sitesinden indirin. Dosyaları bir dizine (ör. C:\sqlite). Bu dizini sisteminizin PATH ortam değişkenine ekleyin.
  3. Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

Örnek Chinook veritabanını indirin (indirmek için doğrudan bağlantıyı kullanabilirsiniz).

Bu istemleri çalıştırmak için gemini-cli-projects dizininde bir klasör (database-tasks) oluşturmanız önerilir. Chinook veritabanı dosyasını bu klasöre kopyalayın. Gemini KSA'nın kullanabilmesi için sqlite3 aracının sisteminizde ayarlandığından ve yolda kullanılabilir olduğundan emin olun. Gemini CLI'yı başlatın.

Veritabanı şema diyagramı aşağıda gösterilmektedir:

4178b54e03a07d60.png

database-tasks adlı bir klasörde olduğunuzu ve Chinook veritabanı dosyasının chinook.db olarak adlandırıldığını varsayalım.

Aşağıda, veritabanlarıyla çalışmanıza yardımcı olabilecek birkaç istem verilmiştir. İstenen izni göstermek için ilkini kısaca ele alalım.

Veritabanında bulunan tabloları listeleme istemiyle başlayın ve aşağıdaki istemi girin:

What tables are present in the file: chinook.db 

Bu, dosyayı okumak için aracı kullanır ve ardından gerekli işlemleri yapmak için sisteminizde bulunan sqlite3 yardımcı programını kullanmak ister:

a8d782201eba1eb8.png

Beklenen çıktıyı almak için bir kez çalıştırma izni verin:

69e96f22610e7892.png

Aşağıdaki istemleri veya istediğiniz başka bir istemi deneyin:

  • Kaç çalışan var?
  • Faturalar tablosunun şeması nedir?
  • Toplam tutara göre ilk 3 fatura hangileri ve bu faturaları hangi müşteriler oluşturdu?

Gemini CLI'nın iki şeyi hallettiğini fark edeceksiniz: İhtiyacınızı karşılayacak doğru SQL ifadesini oluşturma ve doğru sqlite3 komutunu verme.

Veri oluşturmak için Gemini CLI'ı kullanma

Gemini KSA'dan çeşitli veri biçimlerinde veri üretmesini isteyebilirsiniz. Bu, içerik parçalarından taklit etmeniz gerekebilecek JSON verilerine kadar değişebilir. Burada geliştiriciler/test kullanıcıları için geçerli olan senaryolara odaklanacağız.

Deneyebileceğiniz bazı istemler:

Örnek müşteri yorumlarının JSON verilerini oluşturma

Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).

Sahte API yanıtları oluşturma (JSON)

Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').

Örnek Veritabanı Ekleme İfadeleri (SQL) Oluşturma

Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.

Veri yükleme/analiz için CSV verileri oluşturma

Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).

Yapılandırma dosyası (YAML) oluşturma

Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.

Sınır durumları/doğrulama için test verileri oluşturma

Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).

11. Tebrikler

Tebrikler! Gemini CLI'yı, özelliklerini başarıyla keşfettiniz ve birkaç kullanım alanında uyguladınız.

Referans belgeleri