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

1. Öğrenecekleriniz

ADK Master Class - Çok Aracılı Sistemlere Yolculuğunuza Hoş Geldiniz

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ş, bağımsız sistemler oluşturmak amacıyla Agent Development Kit (ADK)'ya derinlemesine odaklanıyoruz.

Kursun Yol Haritası

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

  • İlk Yapay Zeka Aracı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 oluşturabilen, tamamen işlevsel bir aracı sıfırdan 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 anlık verileri getirmeyi öğreteceksiniz.
  • Çoklu aracı sistemleri oluşturma: Aracıların görevleri diğer uzmanlaşmış aracılara devrettiği ve birlikte çalışan bir yapay zeka uzmanları ekibi oluşturduğu devrim niteliğindeki "Araç olarak aracı" 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 Kazandırma: 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

  • Faturalandırma hesabınızı 5 ABD doları krediyle 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 Yapay Zeka Studio'ya gidin : https://aistudio.google.com/
  • 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ı (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 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ı (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 temsilci yanıtları) saklayarak kesintisiz bir diyalog sağlar.
  • Runner: Görevi yürüten motor. Bu işlev, 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. Temsilci 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. 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ı kendi benzersiz veri kaynaklarınıza, API'lerinize veya özel mantığınıza bağladığınızda gerçek potansiyellerini ortaya çıkarabilirsiniz. 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 hava durumu tahminini içeren bir sözlük döndürür.
  • Aracı Tanımı: 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şlevinin docstring'ini ve weather_agent talimatını okuyun. İkisi arasındaki doğrudan ilişkiye dikkat edin.

5. 3. Oturum: Araç olarak Agent 🧑‍🍳

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 aracılar 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 aracı.
    • concierge_agent: Kibar bir konsiyerj 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ç 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.
    • 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 ve sürekli bir sohbet döngüsüne giren 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ı 🗺️ altındaki hücrelere karşılık gelir. 🌟

Aracı belleği

  • Agent Definition: create_multi_day_trip_agent() işlevi, bir geziyi aşamalı olarak planlamak için tasarlanmış bir temsilciyi 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. adım: Kullanıcı, 2 günlük bir gezi planı başlatır.
  • 2. adım: Kullanıcı geri bildirimde bulunur ("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. 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. dönüş: 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ışır. Hafıza kaybı var! Hangi gezi planlandığını bilmiyor.

İşlem: Temsilcinin run_adaptive_memory_demonstration() ve run_memory_failure_demonstration() 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 ilgilenmek 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 birime 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'ı çağırmanın, ardından uygun uzman aracıyı yürütmek için bu kararı bir if/elif bloğunda kullanmanın nasıl yapılacağını gösterir.

8. 6. Oturum: SequentialAgent ⛓️

roadmap6

Bazı görevler, belirli bir sırayla birden fazla adım 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ı bulur, ardından yol tarifi alırsınız.

ADK, SequentialAgent ile bunu yönetmek için temiz ve güçlü bir yol sağlar. Bu, bir alt aracı listesini önceden tanımlanmış bir sırada 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ı 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" kullanıyor. 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, bu 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.

Bunun için 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 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 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ı 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çıklanmıştı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 listelenen üç bulucu aracı, alt aracı olarak kabul edilir.
  • 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ı
  • İ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 görüşme 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 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 .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 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 görüşme 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.