Gemini ve Temporal ile dayanıklı yapay zeka temsilcisi

Bu eğitimde, akıl yürütme için Gemini API'yi ve dayanıklılık için Temporal'ı kullanan bir ReAct tarzı agentic döngü oluşturma süreci adım adım açıklanmaktadır. Bu eğitimin tam kaynak kodunu GitHub'da bulabilirsiniz.

Aracı, hava durumu uyarılarını arama veya IP adresinin coğrafi konumunu belirleme gibi araçları çağırabilir ve yanıt vermek için yeterli bilgiye sahip olana kadar döngüye girer.

Bu demoyu tipik bir ajan demosundan farklı kılan özellik dayanıklılıktır. Her LLM çağrısı, her araç çağırma ve her aracı döngüsü adımı Temporal tarafından kalıcı hale getirilir. İşlem çökerse, ağ düşerse veya API zaman aşımına uğrarsa Temporal otomatik olarak yeniden dener ve son tamamlanan adımdan devam eder. Sohbet geçmişi kaybolmaz ve araç çağrıları yanlışlıkla tekrarlanmaz.

Mimari

Mimari üç bölümden oluşur:

  • İş akışı: Yürütme mantığını düzenleyen ajan tabanlı döngü.
  • Etkinlikler: Temporal'ın kalıcı hale getirdiği ayrı iş birimleri (LLM çağrıları, araç çağrıları).
  • Çalışan: İş akışlarını ve etkinlikleri yürüten süreç.

Bu örnekte, bu üç parçanın tamamını tek bir dosyaya (durable_agent_worker.py) yerleştirirsiniz. Gerçek dünyadaki bir uygulamada, çeşitli dağıtım ve ölçeklenebilirlik avantajlarından yararlanmak için bunları ayırırsınız. Aracıya istem sağlayan kodu ikinci bir dosyaya (start_workflow.py) yerleştirirsiniz.

Ön koşullar

Bu kılavuzu tamamlamak için ihtiyacınız olanlar:

  • Gemini API anahtarı. Google AI Studio'da ücretsiz olarak oluşturabilirsiniz.
  • Python 3.10 veya sonraki sürümler.
  • Yerel geliştirme sunucusu çalıştırmak için Temporal CLI.

Kurulum

Başlamadan önce, yerel olarak çalışan bir Temporal geliştirme sunucunuzun olduğundan emin olun:

temporal server start-dev

Ardından, gerekli bağımlılıkları yükleyin:

pip install temporalio google-genai httpx pydantic python-dotenv

Proje dizininizde Gemini API anahtarınızla bir .env dosyası oluşturun. Google AI Studio'dan API anahtarı alabilirsiniz.

echo "GOOGLE_API_KEY=your-api-key-here" > .env

Uygulama

Bu eğitimin geri kalanında, durable_agent_worker.py yukarıdan aşağıya doğru adım adım oluşturularak açıklanmaktadır. Dosyayı oluşturun ve adımları uygulayın.

İçe aktarma işlemleri ve korumalı alan kurulumu

Önceden tanımlanması gereken içe aktarma işlemleriyle başlayın. workflow.unsafe.imports_passed_through() bloğu, Temporal'ın iş akışı sanal alanına belirli modüllerin kısıtlama olmadan geçmesine izin vermesini söyler. Çeşitli kitaplıklar (özellikle httpx, urllib.request.Request'in alt sınıfıdır) korumalı alanın aksi takdirde engelleyeceği kalıplar kullandığından bu gereklidir.

from temporalio import workflow

with workflow.unsafe.imports_passed_through():
    import pydantic_core  # noqa: F401
    import annotated_types  # noqa: F401

    import