« Tüm yayınlar

Firebase Genkit ve Angular Signals ile Canlı AI Telemetrisi

Firebase Genkit ve Gemini ile çok adımlı AI pipeline'larında ara durumları veritabanına yazmadan, doğrudan Angular Signals'a akıtarak canlı ilerleme arayüzü kurma yöntemi.

Bu kaynak, çok adımlı LLM tabanlı özelliklerde kullanıcıyı uzun süre jenerik bir yükleme animasyonuyla bekletmek yerine, işlemin her aşamasını canlı olarak arayüze yansıtan bir mimari öneriyor. Örnek olarak metin ayrıştırma, biçim kontrolü ve öneri üretimi gibi adımlardan oluşan bir özgeçmiş optimizasyon motoru kullanılıyor. Firebase Genkit'in onCallGenkit sarmalayıcısı ile pipeline güvenli, tip-güvenli bir Callable Cloud Function olarak dışa açılıyor; Gemini modeline yapılan ardışık çağrılar sırasında streamingCallback üzerinden durum anahtarları (ör. parsing_structure, analyzing_impact) istemciye gönderiliyor. Zod ile tanımlanan şema, son model çağrısının frontend'in beklediği JSON yapısına tam uymasını garanti ediyor.

Angular tarafında ise httpsCallable'ın döndürdüğü asenkron iterable stream, for await...of döngüsüyle tüketilerek salt-okunur Signals güncelleniyor. Bu sayede RxJS'in karmaşık map/pipe zincirlerine veya async pipe kullanımına gerek kalmadan, @switch ve @for gibi modern Angular kontrol akışı blokları ile tamamen deklaratif bir arayüz oluşturuluyor. Yaklaşımın temel avantajı, ara durumları bir veritabanı koleksiyonuna yazıp okumak yerine bellekten istemciye doğrudan akış sağlamak; bu da hem gecikmeyi hem de mimari karmaşıklığı azaltıyor.

Üretim ortamına geçerken dikkat edilmesi gereken bir nokta da serverless fonksiyonların soğuk başlangıç (cold start) gecikmeleri. Kaynak, başlangıç durumunu 'motor ısınıyor' gibi bir mesajla göstermeyi öneriyor ki kullanıcılar sistemin donduğunu değil, henüz başladığını anlasın. Bu desen; mühendisler için, karmaşık AI pipeline'larını kullanıcı deneyimini bozmadan, minimal ek altyapı yüküyle şeffaf hale getirmenin somut bir yolunu gösteriyor.