ADK Hızlandırılmış Kursu - Başlangıç Seviyesinden Uzmanlığa

1. Öğrenecekleriniz

ADK Master Class'a hoş geldiniz: Çok Ajanlı Sistemlere Yolculuğunuz

Yapay zeka temsilcilerinin heyecan verici dünyasına adım atmak üzeresiniz. Sadece soruları yanıtlayan basit chatbot'ları unutun. Karmaşık görevleri tamamlamak için akıl yürütebilen, plan yapabilen ve araçları kullanabilen gelişmiş, otonom sistemler oluşturmak amacıyla Agent Development Kit (ADK)'yı ayrıntılı bir şekilde inceliyoruz.

Kursun Yol Haritası

Bu eğiticiyi tamamladığınızda şunları yapabileceksiniz:

  • İlk Yapay Zeka Ajanınızı Oluşturun: Kullanıcının ihtiyaçlarını anlayabilen, Google Arama gibi araçları kullanabilen ve ayrıntılı, faydalı yanıtlar üretebilen, tamamen işlevsel bir ajan oluşturun.
  • Özel Araçlarda Uzmanlaşın: Temsilcileri kendi özel işlevlerinize ve API'lerinize bağlayarak gerçek güçlerini ortaya çıkarın. Temsilcinize, anlık hava durumu tahminleri gibi gerçek zamanlı verileri getirmeyi öğreteceksiniz.
  • Çok Ajanlı Sistemler Oluşturma: Ajanların görevleri diğer uzmanlaşmış ajanlara devrettiği ve birlikte çalışan bir yapay zeka uzmanları ekibi oluşturduğu devrim niteliğindeki bir kavram olan "Araç Olarak Ajan" modelini öğrenin.
  • Karmaşık İş Akışlarını Yönetin: Basit görevlendirme işlemlerinin ötesine geçin ve Yönlendiriciler, Sıralı Zincirler, Döngüler ve Paralel Yürütme gibi gelişmiş kalıplarda uzmanlaşarak neredeyse tüm istekleri işleyebilen sağlam, verimli ve akıllı uygulamalar oluşturun.
  • Temsilcilerinize Hafıza Kazandırma: Sohbet hafızasının kritik rolünü anlayın. Bu sayede temsilcileriniz ek soruları yanıtlayabilir, geri bildirimlerden ders çıkarabilir ve çok adımlı görevleri sorunsuz bir şekilde yönetebilir.

Haydi, başlayalım. 🚀

2. Kurulum: API Anahtarınızı Alma

Google AI Studio API Anahtarı Kurulumu

Yapay zeka temsilcilerimizi desteklemek için Google AI Studio'dan bir Gemini API anahtarı almamız gerekir. Bu, başlangıç yapmanın en hızlı yoludur.

1. adım: AI Studio'dan Gemini API anahtarınızı alın (1 dakika)

  1. Yeni bir tarayıcı sekmesinde https://aistudio.google.com/app/apikey adresini açın.
  2. Google hesabınızla oturum açın.
  3. "Create API key" (API anahtarı oluştur) seçeneğini tıklayın (sağ üstte).
  4. Proje açılır listesini içeren bir iletişim kutusu açılır:
    • Daha önce oluşturulmuş bir Google projeniz varsa: Projeyi seçin ve "Mevcut projede API anahtarı oluştur"u tıklayın.
    • Listede YOKSA: "Proje Oluştur"'u tıklayın.

aistudio

  1. Görünen API anahtarını kopyalayın. AIza... ile başlar ve yaklaşık 40 karakterdir.

✏️ Güvenli bir yere yapıştırın: Colab not defterleri ve ADK Web kurulumu (Ek'te) için bu koda ihtiyacınız olacak.

2. adım: API anahtarınızı Colab'e ekleyin (1 dakika)

Her not defterinde, API anahtarınızı yükleyen bir kurulum hücresi bulunur. İki seçeneğiniz vardır. Tercih ettiğinizi seçin:

A seçeneği: Colab Secrets (Önerilir: Anahtar gizli kalır)

  1. Colab not defterinde, sol kenar çubuğundaki 🔑 anahtar simgesini tıklayın.
  2. "Yeni gizli anahtar ekle" seçeneğini tıklayın.
  3. Name'i (Ad) GOOGLE_API_KEY olarak ayarlayın.
  4. API anahtarınızı (1. adımda) Value (Değer) alanına yapıştırın.
  5. "Not defteri erişimi" anahtarını AÇIK duruma getirin.

colab secrets

Kurulum hücresini çalıştırdığınızda anahtar otomatik olarak alınır:

 API key loaded from Colab Secrets.

B seçeneği: İstendiğinde yapıştırma (hızlı ve kolay)

Colab Secrets'ı atlayıp doğrudan codelab1 ve codelab2'yi çalıştırırsanız not defterinde bir şifre alanı gösterilir:

🔑 Enter your Google AI Studio API key: ••••••••

API anahtarınızı yapıştırıp Enter tuşuna basın. Anahtar ekranda görünmez.

✅ API key entered manually.

API anahtarı hücresi çalıştırıldıktan sonraki hücre, ortamı yapılandırır:

✅ API key configured (starts with 'AIzaSy...')
✅ Using Google AI Studio (not Vertex AI).

Kontrol noktası: Yukarıdaki ✅ iletilerin ikisini de not defterinde görüyorsunuz. API anahtarınız yapılandırıldı ve artık temsilci oluşturmaya hazırsınız.

3. 1. Oturum: Runner ile İlk Temsilciniz

roadmap1

Temel bilgilerle başlayalım. Burada, ilk basit temsilcimizi (day_trip_agent) oluşturuyoruz. Bu temsilcinin amacı, bütçe hususları da dahil olmak üzere kullanıcının isteğine göre tam günlük bir seyahat planı oluşturmaktır. Bu örnekte, ADK'daki tüm aracı etkileşimlerinin üç temel bileşeni tanıtılmaktadır:

  • Aracı: İşlemin temel beynidir. Talimatları (kişiliği ve misyonu), kullandığı yapay zeka modeli (ör. Gemini) ve erişebildiği araçlarla tanımlanır.
  • Oturum: Sohbetin hafızası. Etkileşim geçmişini (kullanıcı mesajları ve aracı yanıtları) saklayarak kesintisiz bir diyalog kurulmasına olanak tanır.
  • Runner: Görevi yürüten motor. Aracı ve oturumu alır, yeni kullanıcı sorgusunu işler ve yanıt oluşturma adımlarını düzenler.

➡️ Not defterinde nerede bulunur?

👉 Bu, 1. Bölüm: İlk Ajanınız - Günübirlik Gezi Ajanı 🧞 altındaki hücrelere karşılık gelir.🌟

agent robot is reading

  • Aracı Tanımı: create_day_trip_agent() işlevini bulun. Ajan burada tanımlanır. Ayrıntılı talimat dizesine dikkat edin. Bu, temsilciye nasıl davranması gerektiğini söyleyen istemdir. Ayrıca, Google Arama'yı ilk aracı olarak sunuyoruz.
  • Yardımcı İşlev: run_agent_query() yardımcı işlevi burada tanımlanmıştır. Sorgu çalıştırmayı basitleştirmek için bu yardımcı programı not defterinde kullanacağız.
  • Test çalıştırması: run_day_trip_genie() işlevi, kullanıcının "uygun fiyatlı" ve "dinlendirici" bir günlük gezi istediğini simüle eder. Ajan, uygun yerleri bulmak ve Markdown biçimli bir seyahat planı oluşturmak için talimatlarını ve Google Arama aracını kullanır.

➡️ İşlem: day_trip_agent için talimat istemini inceleyin. Test sorgusundaki "uygun fiyatlı" gezi isteğinin, aracının "Bütçeye Uygun Olma" yönergesiyle nasıl doğrudan ilişkili olduğunu görün.

4. 2. Oturum: Özel Araçlar 🛠️

roadmap2

Google Arama güçlü bir araç olsa da yapay zeka temsilcilerinin gerçek potansiyeli, onları kendi benzersiz veri kaynaklarınıza, API'lerinize veya özel mantığınıza bağladığınızda ortaya çıkar. Bu bölümde, basit bir Python işlevinden özel bir araç oluşturacağız.

Bir işlev aracının en önemli kısmı docstring'idir. ADK, aracın ne yaptığını, hangi parametreleri kabul ettiğini (Args) ve ne döndürdüğünü (Returns) anlamak için docstring'i otomatik olarak ayrıştırır. Büyük dil modeli (LLM), aracı ne zaman ve nasıl kullanacağına karar vermek için bu açıklamayı okur.

➡️ Not defterinde nerede bulunur?

👉 Bu, 2.1 Basit FunctionTool: Anlık Hava Durumu API'sini Çağırma bölümündeki hücrelere karşılık gelir. 🌟

adk tools

  • Araç Tanımı: get_live_weather_forecast(location: str) işlevi, özel aracımızın temelini oluşturur. Bir şehir adı alır, herkese açık Ulusal Hava Durumu Servisi API'sini çağırır ve sıcaklık ile tahmini içeren bir sözlük döndürür.
  • Agent Definition: weather_agent, başlatma sırasında tools=[get_live_weather_forecast] iletilerek yeni aracımızla oluşturulur ve donatılır. Ajanın talimatlarında, açık hava etkinlikleri önermeden önce bu aracı kullanması gerektiği açıkça belirtiliyor.
  • Test çalıştırması: "Tahoe Gölü yakınlarında yürüyüşe gitmek istiyorum. Hava nasıl?" sorgusu, talimatları gerektirdiği için doğrudan aracının get_live_weather_forecast aracını kullanmasını tetikliyor.

➡️ İşlem: get_live_weather_forecast işlevinin docstring'ini ve weather_agent ile ilgili talimatı okuyun. İkisi arasındaki doğrudan ilişkiye dikkat edin.

5. 3. Oturum: Araç olarak aracı 🧑🍳

roadmap3

Uzmanlardan oluşan bir ekip oluşturmak varken neden tek bir monolitik ajan oluşturmalısınız? Agent-as-a-Tool kalıbı, genellikle düzenleyici veya yönlendirici olarak adlandırılan birincil aracının görevleri diğer, daha odaklanmış aracılara devrettiği karmaşık sistemler oluşturmak için güçlü bir yöntemdir.

Bu kalıp, modüler ve yeniden kullanılabilir temsilciler oluşturmanıza olanak tanır. Örneğin, bir ajanınız veritabanı sorgularında, bir diğeri yaratıcı yazma konusunda uzman olabilir ve üçüncüsü de samimi bir resepsiyonist gibi davranabilir. Düzenleyicinin görevi, kullanıcının isteğini anlamak ve doğru uzmana yönlendirmektir.

➡️ Not defterinde nerede bulunur?

👉 Bu, 2.2 Araç Olarak Temsilci: Uzmana Danışma 🧑🍳 bölümündeki hücrelere karşılık gelir.🌟

seyahat verileri

Bu örnekte, gelişmiş ve çok katmanlı bir ajan sistemi oluşturuluyor:

  • Uzmanlar:
    • food_critic_agent: Yalnızca restoran önerileri sunan, son derece uzmanlaşmış bir aracı.
    • db_agent: Otel bilgileri için bir veritabanını sorguluyormuş gibi davranan sahte bir aracı.
    • concierge_agent: Kibar bir danışma görevlisi gibi davranan orta düzey bir temsilci. En önemlisi, food_critic_agent kendi aracı olarak kullanılıyor.
  • Düzenleyici (trip_data_concierge_agent): Kullanıcının etkileşimde bulunduğu üst düzey ajandır. Talimatları sayesinde "uzman seyahat planlayıcı" olan bu ajana, diğer aracıları çağıran iki araç verilir:
    • call_db_agent: db_agent işlevini çağıran bir işlev.
    • call_concierge_agent: concierge_agent işlevini çağıran bir işlev.
  • Akış: run_trip_data_concierge() içinde çalıştırılan test, tam temsilci zincirini gösterir.
    • Bir kullanıcı, düzenleyiciden otel ve yakındaki bir restoran hakkında bilgi istiyor.
    • Orkestratörün talimatları, otel verilerini almak için önce call_db_agent aracının kullanılmasını ister.
    • Ardından düzenleyici, öneri almak için call_concierge_agent aracını kullanır.
    • concierge_agent, isteği aldıktan sonra restoran önerisi almak için kendi aracı olan food_critic_agent'ı kullanır.

Yemek eleştirmeninin yanıtı, kibarca biçimlendirip düzenleyiciye geri gönderen konsiyerje iletilir. Düzenleyici de yanıtı kullanıcıya sunar.

➡️ İşlem: run_trip_data_concierge() bölümündeki test çalıştırmasında yürütme akışını izleyin. TOOL CALLED çıktılarının, düzenleyiciden uzmanlara kadar olan yetki devri zincirini nasıl gösterdiğini inceleyin. Bu, sıralı bir komuta zinciridir.

6. 4. Oturum: Aracı Belleği 🧠

roadmap4

Gerçekten akıllı bir temsilcinin, yalnızca tek seferlik sorgulara yanıt vermenin ötesine geçmesi gerekir. Görüşmeyi hatırlaması, bağlamı anlaması ve geri bildirimlere uyum sağlaması gerekir. Bu, uygun oturum yönetimiyle sağlanır. "Döngü ajanı"nı, hafızasıyla desteklenen ve sürekli bir sohbet döngüsüne giren bir ajan olarak düşünebilirsiniz.

Aynı oturum nesnesini birden fazla sıralı sorgu için kullandığınızda aracı, görüşmenin tüm geçmişini "görebilir". Bu sayede ek soruları yanıtlayabilir, geri bildirimlere göre kendini düzeltebilir ve çok adımlı görevleri planlayabilir.

➡️ Not defterinde nerede bulunur?

👉 Bu, Bölüm 3: Hafızalı Ajan - Uyarlanabilir Planlayıcı 🗺️ altındaki hücrelere karşılık gelir. 🌟

Ajan belleği

  • Agent Definition: create_multi_day_trip_agent() işlevi, bir geziyi aşamalı olarak planlamak için tasarlanmış bir ajanı tanımlar. Talimatlarında bağlamı hatırlama, geri bildirimleri ele alma ve her günü ayrı ayrı planlama vurgulanır.

3a senaryosu: Belleği OLAN ajan (✅)

Bu test, run_adaptive_memory_demonstration() işlevinde çalıştırılır.

  • Tek bir trip_session oluşturulur ve üç ardışık dönüş için yeniden kullanılır.
  • 1. dönüş: Kullanıcı, 2 günlük bir gezi planı başlatır.
  • 2. adım: Kullanıcı geri bildirimde bulunuyor ("Kaleleri pek sevmem"). Ajan, 1. dönüşün belleğine sahip olduğundan planın hangi bölümünün değiştirileceğini anlar ve alternatif bir plan sunar.
  • 3. tur: Kullanıcı değişikliği onaylar ve sonraki adımı sorar. Ajan her şeyi hatırlıyor ve 2. günü planlamaya devam ediyor.

3b senaryosu: Belleği OLMAYAN aracı (❌)

Bu test, run_memory_failure_demonstration() işlevinde çalıştırılır.

Bu, oturum yönetiminin kritik önemini göstermek için kasıtlı olarak yapılan bir hatadır. Her dönüş için yeni bir oturum oluşturulur.

  • 1. oturum: Kullanıcı, oturum_bir'de yolculuğu başlatır. Aracı doğru yanıt veriyor.
  • 2. dönüş: Kullanıcı 2. günü planlamayı ister ancak sorgu, yeni bir session_two oturumunda gönderilir. Bu yeni oturumun geçmişi olmadığından temsilci kafası karışıyor. Hafıza kaybı var! Hangi gezi planlandığını bilmiyor.

İşlem: run_adaptive_memory_demonstration() ve run_memory_failure_demonstration()'deki temsilci yanıtlarını karşılaştırın. Not defterindeki en önemli kavram şudur: Kesintisiz bir sohbet için kesintisiz bir oturum gerekir.

7. 5. Oturum: Yönlendirici Aracısı 🚏

roadmap5

Tek bir temsilci belirli miktarda iş yapabilir. Gerçekten karmaşık kullanıcı istekleriyle başa çıkmak için uzman temsilcilerden oluşan bir ekibe ihtiyacımız var. Ancak belirli bir sorgu için hangi aracıyı kullanacağımızı nasıl bilebiliriz? Yönlendirici aracısı bu noktada devreye girer.

Yönlendirici aracısı, "ana" aracı veya dağıtıcı olarak görev yapar. Tek amacı, gelen kullanıcı sorgusunu analiz etmek ve iş için en uygun uzman aracıyı (veya aracı iş akışını) belirlemektir. Sorguyu yanıtlamaz, yalnızca doğru alt akış aracısına yönlendirir.

Örneğin, "en iyi suşi" ile ilgili bir sorgu foodie_agent'a, "bu hafta sonu konserleri" ile ilgili bir soru ise weekend_guide_agent tarafından ele alınmalıdır.

➡️ Not defterinde bu bilgiyi nerede bulabilirsiniz?

👉 Bu kavram, not defterinin tamamı için merkezi bir öneme sahiptir ancak ilk olarak Bölüm 1: Çoklu Ajan Kaosu - Sıralı İş Akışları 🧠→🤖→🤖 bölümünde tanıtılmaktadır. 🌟

Yönlendirici Aracısı

  • Ajan Tanımları: Kod hücresi, birden fazla uzmanlık alanı ajanı (day_trip_agent, foodie_agent, transportation_agent) ve en önemlisi router_agent'ı tanımlar. router_agent için talimat istemine dikkat edin. Yalnızca iş için en iyi temsilcinin adını döndürmesi açıkça belirtilmiştir.
  • Yürütme Mantığı: run_sequential_app işlevi, önce bir karar (chosen_route) almak için router_agent'ı nasıl çağıracağınızı ve ardından uygun uzman aracıyı yürütmek için bu kararı bir if/elif bloğunda nasıl kullanacağınızı gösterir.

8. 6. Oturum: SequentialAgent ⛓️

roadmap6

Bazı görevler, belirli bir sırayla birden fazla adımın tamamlanmasını gerektirir. Örneğin, "Palo Alto'daki en iyi suşiyi bul ve oraya nasıl gideceğimi söyle." Bu iki adımlı bir işlemdir: Önce restoranı bulmanız, ardından yol tarifi almanız gerekir.

ADK, SequentialAgent ile bunu yönetmek için temiz ve güçlü bir yol sağlar. Bu, önceden tanımlanmış bir sırada bir alt ajan listesini yürüten özel bir iş akışı aracısıdır.

İşin sırrı, paylaşılan durumda yatar. Sıradaki bir aracının çıktısı, paylaşılan bir durum sözlüğüne otomatik olarak kaydedilebilir ve ardından bir sonraki aracı için giriş olarak kullanılabilir. Bu sayede, adımlar arasında bilgi aktarmak için karmaşık manuel kod yazma ihtiyacı ortadan kalkar.

➡️ Not defterinde bu bilgiyi nerede bulabilirsiniz?

👉 Bu konu, Bölüm 2 (ADK Yöntemi): SequentialAgent ile Çoklu Aracı Kaosu 🧠→⛓️→🤖 başlıklı makalede ele alınmaktadır. 🌟

Sıralı Ajan

  • Aracı Yeniden Düzenleme: Bu bölümün ilk kod hücresinde, foodie_agent ve transportation_agent ile ilgili önemli değişiklikleri inceleyin:
    • foodie_agent artık output_key="destination" sahibi. Bu, ADK'ya son yanıtını paylaşılan durumdaki destination adlı bir değişkene kaydetmesini söyler.
    • transportation_agent artık talimat isteminde {destination} yer tutucusunu içeriyor. ADK, paylaşılan durumdaki değeri otomatik olarak bu yer tutucuya yerleştirir.
  • İş Akışını Tanımlama: find_and_navigate_agent, SequentialAgent olarak tanımlanır ve sub_agents'ı [foodie_agent, transportation_agent] olarak ayarlanır. Bu sayede, alt aracılar tam olarak bu sırayla çalışır.
  • Basitleştirilmiş Yürütme: Bu bölümdeki run_sequential_app işlevine bakın. Karmaşık if/elif mantığı artık yok. find_and_navigate_agent artık tek bir çağrılabilir birim olarak kabul ediliyor ve ADK, dahili sıralı adımları otomatik olarak işliyor.

9. 7. Oturum: LoopAgent 🔁

roadmap7

Her sorunun basit ve tek seferlik bir çözümü yoktur. Bazen bir çözüm önerip eleştirmemiz ve belirli bir kısıtlamayı karşılayana kadar iyileştirmemiz gerekir.

ADK, bu amaçla LoopAgent sunar. Bu iş akışı aracısı, belirli bir koşul karşılanana kadar bir dizi alt aracıyı tekrar tekrar çalıştırır. Bu, kendi çalışmalarını planlayabilen, eleştirebilen ve iyileştirebilen "mükemmeliyetçi" temsilciler oluşturmak için idealdir.

Şemada önce Planner Agent plan oluşturma gösterilmektedir. Ardından LoopAgent aracına biniyoruz. Critic Agent planı kontrol eder. Kusurluysa Refiner Agent yeni bir sürüm oluşturur ve döngü tekrarlanır. Plan iyi ise Refiner Agent, exit_loop aracını çağırır ve son, doğrulanmış plan döndürülür.

Loop Agent

➡️ Not defterinde bu bilgiyi nerede bulabilirsiniz?

👉 Bu durum, LoopAgent ile yinelemeli fikirler 🧠→🔁→🤖 başlıklı makalede açıklanmaktadır. 🌟

  • Temel Ajanlar: İş akışında planner_agent, critic_agent ve refiner_agent kullanılır.
  • Loop Tanımı: refinement_loop, critic_agent, refiner_agent ve sets max_iterations=3'ı düzenleyen bir LoopAgent olarak tanımlanır.
  • Çıkış koşulu: critic_agent, planı onayladığında döngü sonlanır ve refiner_agent, özel exit_loop aracını çağırır.

10. 8. Oturum: ParallelAgent ⚡️

roadmap8

Verimlilik önemlidir. Kullanıcı aynı anda birbiriyle alakasız birden fazla bilgi isterse bu aramaları tek tek yapmak yavaş olur.

ParallelAgent çözümüdür. Bu iş akışı aracısı, bir alt aracılar listesini eşzamanlı olarak yürütür. Tüm paralel görevler tamamlandıktan sonra sonuçları toplanıp tek ve kapsamlı bir yanıtta sentezlenebilir.

Bu diyagramda, ParallelAgent tek bir sorgu alıp işi üç eşzamanlı parçaya ayırıyor. museum_finder, concert_finder ve restaurant_finder aynı anda çalışır. Üç görev de tamamlandıktan sonra, her birinin sonuçları (paylaşılan duruma kaydedilir) birleştirilir ve nihai Synthesis Agent'a iletilir. Bu sonuçlar, tek bir yanıt halinde birleştirilir.

➡️ Not defterinde bu bilgiyi nerede bulabilirsiniz?

👉 Bu iş akışı, ParallelAgent ile Paralel Güç 🧠→⚡️→🤖🤖🤖 bölümünde ayrıntılı olarak açıklanmaktadır. 🌟

Parallel Agent

  • Uzman aracıları: Her biri benzersiz bir output_key'e (ör. museum_result) sahip üç uzman aracı tanımlanır.
  • Paralel İş Akışı: parallel_research_agent, ParallelAgent olarak tanımlanır ve üç bulma aracısı, alt aracısı olarak listelenir.
  • Sentez adımı: Paralel adımdan sonra nihai bir synthesis_agent, yer tutucuları ({museum_result}, {concert_result} vb.) kullanarak paylaşılan durumdaki tüm bulguları toplar ve düzenli bir özet oluşturur.

11. Ek: ADK Web - 🍎 Mac/Linux için

roadmap9

Bu kılavuzda, ADK Day Trip Planning Agent'ı yerel makinenizde ayarlama ve çalıştırma adımları açıklanmaktadır.

Ön koşullar

  • Python 3.8 veya sonraki sürümler
    • Python 3.9 veya sonraki sürümler: google-adk==1.5.0 (tam özellikli en son sürüm) yüklenir.
    • Python 3.8: google-adk==0.3.0 (uyumlu sürüm) yüklenir.
  • Google AI Studio API anahtarı (yukarıdaki Kurulum adımından)
  • İnternet bağlantısı

1. adım: Depoyu klonlayın

Terminal'i açıp şu komutu çalıştırın:

git clone https://github.com/cuppibla/ADK_Basic.git
cd ADK_Basic

2. adım: Sanal ortamı ayarlayın ve bağımlılıkları yükleyin

A seçeneği: Otomatik kurulum (önerilir)

# Run the setup script
chmod +x setup_venv.sh
./setup_venv.sh

B seçeneği: Manuel kurulum

# Create virtual environment
python3 -m venv .adk_env

# Activate virtual environment
source .adk_env/bin/activate

# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt

3. adım: 🔥 ÖNEMLİ - Ortam değişkenleri oluşturun

⚠️ Bu adımı atlamayın. agent/ dizininde bir .env dosyası oluşturun:

# Create the .env file
touch agent/.env

# Open it in your default text editor
open agent/.env

Dosyaya şu satırları ekleyin:

GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_actual_api_key_here

🚨 KRİTİK: your_actual_api_key_here yerine Kurulum: API Anahtarınızı Alma adımındaki gerçek API anahtarınızı girin.

4. adım: Sanal ortamı etkinleştirin (henüz etkin değilse)

source .adk_env/bin/activate

Terminal isteminizin başında (.adk_env) simgesini görmeniz gerekir.

5. adım: ADK web arayüzünü çalıştırın

adk web

6. adım: Tarayıcınızı açın

  1. Tarayıcınızı açıp terminalde gösterilen URL'ye (genellikle http://localhost:8000) gidin.
  2. Sol üstteki açılır listede agent simgesini seçin.
  3. Günübirlik gezi planlama temsilcinizle sohbet etmeye başlayın.

Şuna benzer bir etkileşim görürsünüz: Örnek ADK Web Kullanıcı Arayüzü

Ortamı devre dışı bırakma

Projeyle çalışmayı bitirdiğinizde:

deactivate

Bu komut, hem Mac/Linux hem de Windows'da aynı şekilde çalışır. (.adk_env) önekini terminal isteminizden kaldırıldığını görürsünüz.

Mac'te Sorun Giderme

  • Python bulunamadı: python yerine python3 kullanın.
  • İzin reddedildi: Komut dosyasını çalıştırmadan önce chmod +x setup_venv.sh komutunu çalıştırın.

12. Ek: ADK Web - 🪟 Windows Kullanıcıları İçin

roadmap9

Bu kılavuzda, ADK Day Trip Planning Agent'ı yerel makinenizde ayarlama ve çalıştırma adımları açıklanmaktadır.

Ön koşullar

  • Python 3.8 veya sonraki sürümler
    • Python 3.9 veya sonraki sürümler: google-adk==1.5.0 (tam özellikli en son sürüm) yüklenir.
    • Python 3.8: google-adk==0.3.0 (uyumlu sürüm) yüklenir.
  • Google AI Studio API anahtarı (yukarıdaki Kurulum adımından)
  • İnternet bağlantısı

1. adım: Depoyu klonlayın

Komut İstemi'ni veya PowerShell'i açıp şu komutu çalıştırın:

git clone https://github.com/cuppibla/ADK_Basic.git
cd ADK_Basic

2. adım: Sanal ortamı ayarlayın ve bağımlılıkları yükleyin

A seçeneği: Otomatik kurulum (önerilir)

# Run the setup script in Command Prompt
setup_venv.bat

B seçeneği: Manuel kurulum

Komut istemi için:

# Create virtual environment
python -m venv .adk_env

# Activate virtual environment
.adk_env\Scripts\activate

# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt

PowerShell için:

# Create virtual environment
python -m venv .adk_env

# Activate virtual environment
.adk_env\Scripts\Activate.ps1

# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt

3. adım: 🔥 ÖNEMLİ - Ortam değişkenleri oluşturun

⚠️ Bu adımı atlamayın. agent/ dizininde bir .env dosyası oluşturun:

# Create the .env file
type nul > agent\.env

# Open it in Notepad
notepad agent\.env

Dosyaya şu satırları ekleyin:

GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_actual_api_key_here

🚨 KRİTİK: your_actual_api_key_here yerine Kurulum: API Anahtarınızı Alma adımındaki gerçek API anahtarınızı girin.

4. adım: Sanal ortamı etkinleştirin (henüz etkin değilse)

Komut istemi:

.adk_env\Scripts\activate

PowerShell:

.adk_env\Scripts\Activate.ps1

İsteminizin başında (.adk_env) simgesini görmelisiniz.

5. adım: ADK web arayüzünü çalıştırın

adk web

6. adım: Tarayıcınızı açın

  1. Tarayıcınızı açıp terminalde gösterilen URL'ye (genellikle http://localhost:8000) gidin.
  2. Sol üstteki açılır listede agent simgesini seçin.
  3. Günübirlik gezi planlama temsilcinizle sohbet etmeye başlayın.

Windows Sorun Giderme

  • PowerShell yürütme politikası hatası: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser komutunu çalıştırın.

Şuna benzer bir etkileşim görürsünüz: Örnek ADK Web Kullanıcı Arayüzü

Ortamı devre dışı bırakma

Projeyle çalışmayı bitirdiğinizde:

deactivate

Bu komut, hem Mac/Linux hem de Windows'da aynı şekilde çalışır. (.adk_env) önekini terminal isteminizden kaldırıldığını görürsünüz.