- Genkit'in ara yazılımı, model kancaları, araçlar ve genel akış kullanarak yapay zeka oluşturma döngüsünü kesmenize ve değiştirmenize olanak tanır.
- Otomatik yeniden deneme, modeller arasında geçiş, dosya kontrolü ve insan tarafından araç onayı gibi yerleşik özellikler içerir.
- TypeScript, Go ve Dart ile uyumlu olması, iş mantığını değiştirmeden güvenlik ve gözlemlenebilirlik katmanları oluşturmayı kolaylaştırır.
Yapay zeka uygulamaları geliştiriyorsanız, her şeyin mükemmel bir komut yazmaktan ibaret olmadığını bilirsiniz. Bir prototipten üretimde gerçekten çalışan bir şeye geçtiğinizde, API zaman aşımı, kota sınırları veya kritik eylemlerin insan tarafından doğrulanması ihtiyacı gibi engellerle karşılaşırsınız. İşte burada Genkit Middleware devreye giriyor ; geliştiricilerin tüm ajan kodlarını yeniden yazmak zorunda kalmadan kontrol katmanları eklemelerine olanak tanıyan bir Google çözümü.
Temelde, her bir fonksiyonu ayrı ayrı sarmak yerine, üretim çağrılarının etrafına yerleştirilen bir dizi müdahale mekanizmasından bahsediyoruz. generate() Manuel kontrol bloğunda, isteğin geçmesi gereken bir dizi adım tanımlayabilirsiniz. Bu, aracılarınızın mimarisinin şu şekilde olmasını sağlar... çok daha temiz ve daha modülerBu, uygulama mantığını sistem güvenliği, gözlemlenebilirlik ve dayanıklılık gibi kesişen konulardan ayırmak anlamına gelir.
Engelleme sistemi tam olarak nasıl çalışıyor?

Bunu daha iyi anlamak için, Genkit'teki bir isteğin yaşam döngüsünü düşünün. Tipik olarak, model bir yanıt oluşturur, bir araç kullanması gerekip gerekmediğine karar verir, o aracı çalıştırır ve sonucu yeniden işler. Genkit'in ara yazılımı sadece bir darboğaz değildir; bu sürece müdahale etmek için üç farklı dayanak noktası sunar:
- Kanca Oluştur: Bu sistem, üretim döngüsü başına yalnızca bir kez çalışır. İdeal bir konumdur. Sisteme talimatlar enjekte et veya mesajlar gönderilmeye başlamadan önce bunları değiştirin.
- Model tarafından üretilen kanca: Bu, modelin API'sine yapılan doğrudan çağrıyı sarmalar. Yönetim için gereklidir. otomatik tekrar denemelerÖnbellekleme uygulayın veya LLM'nin yanıt verme süresini kaydedin.
- Kanca Aleti: Tıpkı bir aracın çalışmaya başlamak üzere olması gibi davranır. Yaratım için mükemmeldir. onay sistemleri Burada, bir temsilcinin dosyayı silmeden veya ödeme yapmadan önce bir insandan onay alması gerekiyor.
Bu yapı, Express veya Koa gibi çerçevelerde bulunan ara katman yazılımlarına benzer şekilde, bir soğan gibi çalışır: istek dış katmandan girer, merkeze (modele) ulaşır ve ardından katmanları ters sırada dolaşarak tekrar çıkar. En iyi yanı, birden fazla ara katman yazılımını bir dizi halinde istifleyebilmeniz ve böylece tam yürütme sırasını tanımlayabilmenizdir.
Önceden yüklenmiş ara yazılımların kataloğu

Böylece tekerleği yeniden icat etmek zorunda kalmayalım, paket @genkit-ai/middleware Ürün, kullanıma hazır birçok araçla birlikte geliyor. Bunlardan en kullanışlılarından biri de... yeniden denemelerBu, titreşimli üstel geri adımlama algoritması kullanır. Bu, aşağıdaki gibi geçici hatalar olduğunda API'nin aşırı yüklenmesini önler: RESOURCE_EXHAUSTED o UNAVAILABLEbaşvuruyu yapmak çok daha sağlam Anlık arızalar durumunda.
Birincil modelinizin kotası tükendiğinde, yedek ara yazılım devreye girer. Bu yazılım, alternatif modellerin bir listesini yapılandırmanıza olanak tanır; böylece ilk model başarısız olursa, istek otomatik olarak daha küçük veya daha ucuz bir modele yönlendirilir ve son kullanıcının hata görmesi önlenir. Bu , yüksek talep ortamlarında hizmet sürekliliğini sağlamak için hayati bir stratejidir .
Güvenlik konusunda ise elimizde şu ara yazılım mevcut: alet onayıBu sistem, güvenli araçlardan oluşan bir beyaz liste oluşturur; bu listede olmayan herhangi bir işlem hataya neden olur. ToolInterruptErrorSistem, birisi işlemi onaylayana kadar beklemeye zorlanıyor. Bu durum, ara yazılım tarafından daha da karmaşık hale getiriliyor. dosya sistemiBu, modele yerel dosyalara erişim izni verir, ancak kesinlikle sınırlı Yapay zekanın yetkisiz yerlere erişmesini engellemek için kök dizine kaydedilir.

Son olarak, şu işlevselliğe sahibiz: becerileriBu ara yazılım klasörleri dosyalar için tarar. SKILL.md ve bunları sistem komut istemine enjekte eder. Bu, ajan bilgisini yönetmenin çok zarif bir yoludur ve ajanın şunları yapmasına olanak tanır: belirli becerileri yükle Ana metni gereksiz metinlerle doldurmadan, isteğe bağlı olarak.
Özel Ara Katman Yazılımı Oluşturma

Yerel seçenekler yetersiz kaldığında, Genkit, fonksiyonu kullanarak kendi müdahale edicilerimizi oluşturmamıza olanak tanır. generateMiddlewareBu araç, Zod kullanarak yapılandırma şemaları tanımlamamıza olanak tanır ve ilettiğimiz parametrelerin doğru olmasını sağlar. doğru ve yazılmışHer giriş ve çıkışı kaydeden basit kayıt sistemlerinden, hassas verileri (kişisel tanımlayıcı bilgiler) yazmak için karmaşık sistemlere kadar her şeyi oluşturabiliriz.
Çok güçlü bir kullanım örneği , içerik filtresi uygulamak olabilir . Yanıtı analiz eden ve yasaklı kelimeler veya dahili fiyatlandırma verileri tespit ederse, kullanıcıya ulaşmadan önce yanıtı engelleyen veya temizleyen bir model kancası oluşturabilirsiniz. Ayrıca, çağrının devam etmesine izin vermeden önce oluşturma kancasında bir veritabanını sorgulayarak kullanıcı başına kotaları yönetmek de mümkündür.
Uygulamalar ve ekosistem arasındaki farklılıklar

Kavram evrensel olsa da, dile bağlı olarak bazı nüanslar mevcuttur. TypeScript'te sistem oldukça dinamiktir ve ara yazılımların dosyalarda tanımlanmasına olanak tanır. .prompt alanın içinden useGo'da uygulama daha katıdır çünkü derlenmiş bir dildir ve bu da bir tür geliştirme süreci gerektirmiştir. ara yazılım kaydı Çalışma zamanında metin adlarını işlevsel nesnelere dönüştürebilmek.
Genkit'i Google'ın Agent Development Kit'i (ADK) ile karıştırmamak önemlidir. ADK, GCP altyapısı üzerinde oluşturulmuş karmaşık ve kaynak yoğun çoklu ajan sistemleri için tasarlanmışken, Genkit mevcut uygulamalara (web, mobil vb.) ajan yetenekleri eklemek için ideal bir seçenektir. Dahası, tüm ara katman akışı Genkit Geliştirici Arayüzünden izlenebilir ; bu sayede hangi kancanın isteği değiştirdiğini ve nihai sonuca ulaşmak için izlediği yolu tam olarak takip edebilirsiniz.
Bu sistemin gelişi, üretim fonksiyonunu gerçekten birleştirilebilir bir işlem hattına dönüştürüyor . Hata yönetimi, dosya güvenliği ve insan doğrulamasını ayrı bir katmana entegre ederek, ajan geliştirme çok daha profesyonel bir süreç haline geliyor ve üretimde felaket niteliğinde hatalara daha az eğilimli oluyor.