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

1. Öğrenecekleriniz

ADK Master Class - Çok Temsilcili Sistemlere Yolculuğunuza Hoş Geldiniz

Yapay zeka temsilcilerinin heyecan verici dünyasına adım atmak üzeresiniz. Yalnızca 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)'ya odaklanıyoruz.

Kursun Yol Haritası

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

  • İlk Yapay Zeka Temsilcinizi 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 temsilci oluşturun.
  • Özel Araçlarda Uzmanlaşın: Aracıları kendi özel işlevlerinize ve API'lerinize bağlayarak gerçek güçlerini ortaya çıkarın. Aracınıza, anlık hava durumu tahminleri gibi gerçek zamanlı verileri getirmeyi öğreteceksiniz.
  • Çok Temsilcili Sistemler Oluşturma: Temsilcilerin görevleri diğer uzmanlaşmış temsilcilere devrettiği ve birlikte çalışan bir yapay zeka uzmanları ekibi oluşturduğu devrim niteliğindeki bir kavram olan "Araç Olarak Temsilci" modelini öğrenin.
  • Karmaşık İş Akışlarını Düzenleme: Basit görev atamanın ö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 Verme: Temsilcilerinizin ek soruları yanıtlamasına, geri bildirimlerden öğrenmesine ve çok adımlı görevleri sorunsuz bir şekilde yönetmesine olanak tanıyan sohbet hafızasının kritik rolünü anlayın.

Haydi, başlayalım. 🚀

2. GCP ve Gemini API anahtarını ayarlama

GCP Projenizi ve Gemini API Anahtarınızı Ayarlama

Yapay zeka aracılarımızı desteklemek için iki şeye ihtiyacımız var: temel işlevleri sağlamak üzere bir Google Cloud projesi ve Google'ın güçlü modellerine erişmek için bir Gemini API anahtarı.

1. adım: Faturalandırma hesabını etkinleştirin

  • 5 ABD doları krediyle faturalandırma hesabınızı talep edin. Bu hesabı dağıtımınız için kullanmanız gerekir. Gmail hesabınızda oturum açtığınızdan emin olun.

2. adım: Yeni bir GCP projesi oluşturun

  • Google Cloud Console'a gidip yeni bir proje oluşturun.

yeni bir GCP hesabı oluşturabilirsiniz

  • Google Cloud Console'a gidip yeni bir proje oluşturun.
  • Sol paneli açın, Billing simgesini tıklayın ve faturalandırma hesabının bu GCP hesabına bağlı olup olmadığını kontrol edin.

Faturalandırma hesabını GCP hesabına bağlama

Bu sayfayı görüyorsanız manage billing account seçeneğini işaretleyin, Google Cloud deneme sürümünü seçin ve bu sürüme bağlanın.

3. adım: Gemini API anahtarınızı oluşturun

Anahtarı güvence altına alabilmek için önce anahtarınızın olması gerekir.

  • Google AI Studio'ya gidin.
  • Gmail hesabınızla oturum açın.
  • Genellikle soldaki gezinme bölmesinde veya sağ üst köşede bulunan "API anahtarı al" düğmesini tıklayın.
  • "API anahtarları" iletişim kutusunda "Yeni projede API anahtarı oluştur"u tıklayın. Yeni projede API anahtarı oluşturma
  • Faturalandırma hesabı ayarlanmış olan yeni projenizi seçin. Yeni projeyi seçin
  • Sizin için yeni bir API anahtarı oluşturulur. Bu anahtarı hemen kopyalayın ve geçici olarak güvenli bir yerde (ör. şifre yöneticisi veya güvenli not) saklayın. Bu, sonraki adımlarda kullanacağınız değerdir.

3. 1. Oturum: Runner ile İlk Aracınız

roadmap1

Temel bilgilerle başlayalım. Burada ilk basit aracımızı olan day_trip_agent aracını 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 gezi 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ı (karakteri 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 sağlar.
  • 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 Aracınız - Günübirlik Gezi Cin'i 🧞 altındaki hücrelere karşılık gelir.🌟

agent robot is reading

  • Aracı Tanımı: create_day_trip_agent() işlevini bulun. Temsilcinin tanımlandığı yerdir. 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. Aracı, uygun konumları 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 aracılarının 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ı, doküman dizisidir. 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 hava durumu tahminini 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. Aracını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şlevi ve weather_agent talimatı için doküman dizelerini okuyun. İkisi arasındaki doğrudan ilişkiye dikkat edin.

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

roadmap3

Uzmanlardan oluşan bir ekip oluşturabilecekken neden tek bir monolitik aracı oluşturuyorsunuz? 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 temsilciniz veritabanı sorgularında, bir diğeri yaratıcı yazma konusunda uzman olabilir ve üçüncüsü de samimi bir danışma görevlisi 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 Aracı: Uzmana Danışma 🧑‍🍳 bölümündeki hücrelere karşılık gelir.🌟

seyahat verileri

Bu örnekte, gelişmiş ve çok katmanlı bir temsilci 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 temsilci.
    • concierge_agent: Kibar bir kapı görevlisi gibi davranan orta düzey bir temsilci. En önemlisi, food_critic_agent kendi aracıdır.
  • Düzenleyici (trip_data_concierge_agent): Kullanıcının etkileşimde bulunduğu üst düzey aracıdır. Talimatları sayesinde "uzman seyahat planlayıcısı" olan bu araca, diğer aracıları çağıran iki araç veriliyor:
    • 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.
    • Düzenleyicinin 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ılarda, düzenleyiciden uzmanlara kadar olan yetki devri zincirinin nasıl gösterildiğine dikkat edin. Bu, sıralı bir komuta zinciridir.

6. 4. Oturum: Temsilci Belleği 🧠

roadmap4

Gerçekten akıllı bir temsilcinin, yalnızca tek seferlik sorgulara yanıt vermenin ötesine geçmesi gerekir. Konuşmayı hatırlaması, bağlamı anlaması ve geri bildirimlere uyum sağlaması gerekir. Bu, uygun oturum yönetimiyle sağlanır. "Döngü aracısı"nı, hafızasıyla desteklenen, sürekli bir sohbet döngüsüne girmiş bir aracı 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ı Temsilci - Uyarlanabilir Planlayıcı 🗺️ bölümündeki hücrelere karşılık gelir. 🌟

Aracı belleği

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

3a senaryosu: Belleği OLAN aracı (✅)

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. adım: Kullanıcı değişikliği onaylar ve sonraki adımı sorar. Tüm bilgileri hatırlayan ajan, 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 görüşme için kesintisiz bir oturum gerekir.

7. 5. Oturum: Yönlendirici Temsilcisi 🚏

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ı

  • Aracı Tanımları: Kod hücresi, birden fazla uzman aracı (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 işlem iki adımdan oluşur: önce restoranı bulma, ardından yol tarifi alma.

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 aracı 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. Böylece, 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ı Temsilci

  • 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 kullanıyor. 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, tam olarak bu sırayla çalışırlar.
  • 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.

Bu amaçla ADK, 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, Planner Agent önce plan oluşturma gösterilmektedir. Ardından LoopAgent değerini gireriz. 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 Aracılar: İş akışında planner_agent, critic_agent ve refiner_agent kullanılır.
  • Döngü Tanımı: refinement_loop, critic_agent, refiner_agent ve sets max_iterations=3 işlemlerini 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ümdü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 şemada, 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 aktarılır. Bu aracı, sonuçları tek bir yanıtta birleştirir.

➡️ 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ı bunun alt aracısı olarak listelenir.
  • Sentez Adımı: Paralel adımdan sonra nihai bir synthesis_agent, paylaşılan durumdaki tüm bulguları yer tutucular ({museum_result}, {concert_result} vb.) kullanarak toplayıp 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ı
  • İ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 .env dosyası oluşturma:

# 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 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ı
  • İ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 İstemi 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 .env dosyası oluşturma:

# 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 gerçek API anahtarınızı girin.

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

Komut İstemi:

.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.