iToverDose/Yazılım· 13 HAZIRAN 2026 · 08:02

BoxAgnts Aracı Sistemi: Çoklu Sağlayıcı Uyumu ve Akıllı Sorgulama Döngüsü

BoxAgnts’in çoklu sağlayıcı uyumlu mimarisi, farklı AI modeli API’leri arasındaki biçim farklılıklarını nasıl yönetiyor? Yapay zeka araç çağrılarını standartlaştıran Provider soyutlama katmanı ve sorgulama döngüsü inceleniyor.

DEV Community3 dk okuma0 Yorumlar

Yapay zeka modeli API’lerinin istek biçimlerinden yanıt formatlarına kadar standartlaşmamış yapıları, geliştiricilerin karşılaştığı en büyük zorluklardan biri. Anthropic, OpenAI ve Google gibi farklı sağlayıcıların sistem istemlerini (system prompts), mesaj rollerini ve akış protokollerini farklı şekillerde ele alması, kod tabanında karmaşıklığa yol açıyor. BoxAgnts’in sunduğu Provider soyutlama katmanı ve Akıllı Sorgulama Döngüsü (Agent Query Loop) ise bu sorunu kökten çözmeyi hedefliyor.

Farklı API Biçimlerine Karşı Standartlaştırılmış Bir Model

Her yapay zeka sağlayıcısının API’si, istek gövdesinin yapısından hata yönetimine kadar birbirinden oldukça farklı. Örneğin:

  • Anthropic’in sistem istemi (system alanı) ayrı bir alan olarak yer alırken, OpenAI’de role: "system" mesajı olarak tanımlanıyor.
  • Google Gemini ise sistemi system_instruction adıyla üst düzey bir alana yerleştiriyor.
  • Hata yanıtları bile sağlayıcıdan sağlayıcıya değişiklik gösteriyor: Bazıları HTTP durum kodlarını kullanırken, diğerleri özel hata mesajları döndürüyor.

BoxAgnts’in çözümü, bu çeşitliliği üç katmanlı bir soyutlama sistemiyle yönetiyor. İlk katmanda, tüm sağlayıcılar için ortak bir ProviderRequest ve ProviderResponse veri modeli tanımlanıyor. Bu yapı, sistem isteminden araç tanımlarına kadar tüm bileşenleri standart bir formatta tutuyor. Böylece geliştiriciler, hangi sağlayıcıyı kullandıklarını dikkate almadan kod yazabiliyor.

İkinci katmanda, LlmProvider adında bir trait (arayüz) sunuluyor. Bu trait, tüm sağlayıcıların ortak özelliklerini tanımlıyor ve her birinin asenkron akışlar aracılığıyla yanıt üretmesini sağlıyor. Üçüncü katmanda ise Transformer adı verilen fonksiyonlar yer alıyor. Bu fonksiyonlar, standart ProviderRequest yapısını alıp, doğrudan sağlayıcıya özel istek formatına dönüştürüyor. Örneğin, to_anthropic_request fonksiyonu, standart bir istek yapısını Anthropic’in anlayacağı biçime çeviriyor.

Akış Protokollerindeki Farklılıkların Yönetimi

Yapay zeka modelleriyle gerçek zamanlı etkileşimler genellikle Server-Sent Events (SSE) protokolü üzerinden gerçekleşiyor. Ancak her sağlayıcı, bu akışları farklı şekillerde yönetiyor:

  • Anthropic, içerik bloklarını üç aşamalı olay hiyerarşisiyle (başlangıç, delta, durdurma) takip ediyor. Örneğin, bir metin bloğunun oluşumu sırasında content_block_start, ardından content_block_delta olayları geliyor ve son olarak content_block_stop ile tamamlanıyor.
  • OpenAI ise daha basit bir yaklaşım benimsiyor ve tüm değişiklikleri choices[0].delta adı altında tek bir olayda topluyor.
  • Google Gemini ise gRPC-web protokolünü kullanıyor ve akış formatı tamamen farklı.

BoxAgnts’in stream_parser modülü, tüm bu farklılıkları tek bir StreamEvent enum’una indirgiyor. Bu enum, metin değişimlerinden araç kullanımına, düşünme akışından kullanım istatistiklerine kadar tüm olayları standart bir yapıda temsil ediyor. Örneğin:

pub enum StreamEvent {
    TextDelta { text: String },
    ToolUseStart { id: String, name: String },
    ToolUseDelta { id: String, json: String },
    ToolUseEnd { id: String },
    ThinkingDelta { text: String },
    UsageUpdate { input_tokens: u32, output_tokens: u32 },
    MessageStop,
}

Her sağlayıcı için özel bir akış çözümleyici (parser) geliştiriliyor. Bu çözümleyiciler, sağlayıcıya özgü durum makineleri olarak çalışıyor. Örneğin, Anthropic’in akış çözümleyicisi, message_start olayından itibaren bir durum makinesi gibi davranarak, içerik bloklarının başlangıcını, değişimlerini ve sonunu takip ediyor. Tüm bu olaylar, standart StreamEvent yapısına dönüştürülerek, üst katmanlara iletiliyor.

Akıllı Sorgulama Döngüsü: Araç Çağrılarının Yönetimi

Standartlaştırılmış akış olayları elde edildikten sonra, BoxAgnts’in query::run_query_loop fonksiyonu devreye giriyor. Bu fonksiyon, mesaj geçmişini, sistem istemini ve araç tanımlarını bir araya getirerek yapay zeka modeline gönderiyor. Ardından, modelin yanıt akışını dinleyerek hem kullanıcı arayüzüne gerçek zamanlı geri bildirimler gönderiyor hem de araç çağrılarını yönetiyor.

Sorgulama döngüsü üç temel adımdan oluşuyor:

  1. İstek Oluşturma: CreateMessageRequest yapısı kullanılarak, model adı, maksimum token sayısı, mesaj geçmişi ve araç tanımları belirleniyor. Bu yapı, tüm sağlayıcılar için aynı şekilde oluşturuluyor.
  1. Akış Başlatma ve Olay İşleme: Yapay zeka modeline yapılan istek, akış başlatıyor. StreamAccumulator adı verilen bir yapı, tüm gelen olayları takip ediyor ve içerikleri bloklara ayırıyor. Örneğin, bir araç kullanımının başlangıcı (ToolUseStart) algılandığında, kullanıcı arayüzüne gerçek zamanlı olarak gönderiliyor. Benzer şekilde, metin değişimleri (TextDelta) ve kullanım istatistikleri (UsageUpdate) de izleniyor.
  1. Tamamlanan Mesajın İşlenmesi: Tüm içerik blokları tamamlandığında, MessageStop olayı tetikleniyor. StreamAccumulator, bu noktada tüm blokları birleştirerek tam bir mesaj oluşturuyor ve durdurma nedenini (stop_reason) ile birlikte geri döndürüyor.

Bu süreç, yapay zeka modelleriyle etkileşimi hem güvenilir hem de kullanıcı dostu hale getiriyor. Geliştiriciler, karmaşık API farklılıklarını yönetmek zorunda kalmadan, uygulamalarını kolayca farklı sağlayıcılarla entegre edebiliyor.

Geleceğe Yönelik Bakış

BoxAgnts’in çoklu sağlayıcı uyumlu mimarisi, yapay zeka araçlarının geliştirilmesini ve dağıtılmasını önemli ölçüde basitleştiriyor. Gelecekte, bu yaklaşımın daha fazla sağlayıcıyı desteklemesi ve geliştiricilerin farklı API’ler arasında geçiş yapmasını kolaylaştırması bekleniyor. Ayrıca, gerçek zamanlı araç izleme ve hata yönetimi gibi özelliklerin, kullanıcı deneyimini daha da iyileştirmesi öngörülüyor. Bu yenilikçi mimari, yapay zeka tabanlı uygulamaların geleceğini şekillendiren önemli bir adım olarak karşımıza çıkıyor.

Yapay zeka özeti

BoxAgnts’in çoklu yapay zeka sağlayıcı uyumu nasıl sağlıyor? Provider soyutlama katmanı ve Akıllı Sorgulama Döngüsü hakkında detaylı inceleme.

Yorumlar

00
YORUM BIRAK
ID #ITEQN1

0 / 1200 KARAKTER

İnsan doğrulaması

6 + 8 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.