Bir portfolyo asistanının yararlı olması için her soruyu uzak bir dil modeline göndermesi gerekmez. İletişim bağlantısı, proje özeti, hizmet kapsamı veya sitede zaten bulunan bir bilgi sorulduğunda en güvenilir cevap çoğu zaman dar, deterministik ve denetlenebilir bir yoldan gelir. Local-first yaklaşım burada bir pazarlama etiketi değil; veriyi azaltmak, gecikmeyi düşürmek ve cevabın hangi kaynaktan üretildiğini daha açık hâle getirmek için alınmış mimari bir karardır.

Bu yazı SBE Asistan’ın mevcut kaynak kodunda görülebilen tasarımını anlatır. Bir kullanıcı ölçeği, başarı yüzdesi veya üretim ortamı performansı iddia etmez. Amaç; yönlendirme, dış kaynak güveni, sunucu fallback’i ve kalıcı sohbet geçmişi oluşturmama kararlarının birlikte nasıl çalıştığını açıklamaktır.

Problem: küçük bir arayüzde büyük bir güven sınırı

Sohbet kutusu basit görünür; fakat serbest metin girişi, dış kaynaklar ve bir model çağrısı aynı akışta birleştiğinde güven sınırı hızla genişler. Kullanıcı girdisi talimat gibi görünebilir, dışarıdan alınan içerik güvenilir olmayabilir ve model yanıtı doğrulanmış site verisiyle karışabilir. OWASP’ın prompt injection rehberi, yalnız ana girdiyi değil dolaylı kaynaklardan gelen içeriği de güvenilmeyen veri olarak ele almayı önerir.

Bu yüzden başlangıç sorusu “hangi modeli kullanalım?” değil, “hangi sorular için modele hiç ihtiyaç yok?” olmalıdır. SBE Asistan’da portfolyo, hizmet, iletişim ve temel teknik bilgi aileleri önce yerel kurallarla değerlendirilir. Böylece doğrulanmış içeriğin serbest üretimle gereksiz yere yeniden yazılması önlenir.

Mimari: önce yerel ve deterministik yönlendirme

Akışın ilk katmanı girdiyi uzunluk ve biçim sınırları içinde kabul eder. Ardından bilinen niyetler, güvenlik sınırları ve doğrulanmış portfolyo kayıtları üzerinden yerel eşleştirme yapılır. Bu katman ağ bağlantısı gerektirmez ve aynı sınıftaki sorular için öngörülebilir davranış üretir.

Yerel çözüm bulunamazsa, yalnız genel ve güvenli kapsamda kalan güncel soru sunucu tarafındaki sınırlı fallback’e taşınabilir. Tarayıcıda sağlayıcı anahtarı bulunmaz. İstek aynı origin üzerindeki API sınırından geçer; sunucu giriş boyutunu, izin verilen public proje referanslarını ve zaman aşımını yeniden doğrular. Bu iki aşamalı kontrol, istemci tarafındaki bir kararın tek güvenlik bariyeri hâline gelmesini engeller.

Yönlendirme sırası neden önemlidir?

  1. Doğrulanmış site bilgisi yerel veriyle cevaplanır.
  2. Riskli, gizli bilgi isteyen veya kullanıcı kontrollü URL içeren istek güvenli sınırda durdurulur.
  3. Canlı kur gibi dar ve belirli veri ihtiyacı, kendi doğrulanan servis yoluna yönlendirilir.
  4. Ancak geriye kalan genel soru, sunucu tarafı model fallback’i için değerlendirilebilir.

Bu sıra hem yanlış kaynağa gitme olasılığını azaltır hem de uzaktaki modele gönderilen veri miktarını sınırlar. Aynı zamanda “yerel cevap” ile “model cevabı” arasındaki sorumluluk ayrımını kodda görünür tutar.

Dış kaynaklar veri olarak kalmalı

Engineering Labs kayıtları için kullanılan public GitHub içeriği, model talimatı değildir. Kaynaklar izin verilen repo kimlikleri ve sınırlı alanlarla projeksiyondan geçirilir; dış içerik yalnız referans verisi olarak kullanılır. Bu ayrım prompt injection riskini tamamen ortadan kaldırmaz, fakat talimat ile kanıtı aynı güven seviyesinde ele alma hatasını azaltır.

OWASP’ın agentic uygulama rehberi de araçlar, bellek ve dış sistemlerle kurulan her bağın ayrı bir yetki ve doğrulama kararı olduğunu vurgular. Bu sitedeki asistan serbestçe araç çalıştıran otonom bir ajan değildir. İzin verilen eylemler site içindeki sayfalara veya açıkça tanımlanmış haricî bağlantılara yönlendirme gibi sınırlı davranışlardır.

Kalıcı sohbet geçmişi oluşturmamak

SBE Asistan ham soru, cevap veya transcript’i localStorage ya da sessionStorage içinde saklamaz. Mesajlar açık sayfanın React durumunda yaşar ve sayfa oturumu sona erdiğinde kalıcı site verisine dönüşmez. Kalıcı tarayıcı depolaması yalnız tema, renk paleti ve locale gibi kullanıcı tercihleri için kullanılır.

Bir model fallback’i gerektiğinde güncel soru sunucuya iletilir; önceki konuşmanın tamamı otomatik olarak eklenmez. API isteğinde sağlayıcı tarafı kalıcı yanıt nesnesi oluşturmamak için store seçeneği kapalıdır. Bununla birlikte bu ayar, sağlayıcının hiçbir veriyi hiçbir koşulda işlemediği veya saklamadığı anlamına gelmez. Sağlayıcı politikaları, güvenlik ve kötüye kullanım izleme koşulları ayrıca değerlendirilmelidir. Gizli, hassas veya kişisel bilgi bu arayüzde paylaşılmamalıdır.

Çıktıyı güvenli göstermek

Model çıktısı HTML olarak yürütülmez. Yanıt düz metin olarak render edilir; kullanıcı girdisinden düzenli ifade veya çalıştırılabilir işaretleme üretilmez. Bu karar zengin biçimlendirme esnekliğini azaltır, ancak küçük bir portfolyo asistanında çıktı yüzeyini belirgin biçimde daraltır.

Hata ve zaman aşımı durumları da fail-soft ele alınır. Uzak servis yanıt vermezse doğrulanmamış bir sonuç uydurmak yerine kullanıcıya sınırlı bir hata durumu gösterilir. Yerel portfolyo ve navigasyon cevapları model servisinden bağımsız kalır.

Trade-off’lar

Buradaki amaç tüm riskleri ortadan kaldırdığını iddia etmek değil, her risk için daha küçük ve incelenebilir bir sınır kurmaktır.

Test edilebilir davranışlar

Bu mimaride iyi test yalnız doğru cevabı aramaz. Yerel bir sorunun gereksiz sunucu isteği üretmediği, riskli girdinin fallback’e ulaşmadığı, public kaynakların izin verilen alanlarla sınırlandığı, ham konuşmanın tarayıcı depolamasına yazılmadığı ve model çıktısının çalıştırılabilir HTML’e dönüşmediği de kontrol edilmelidir.

Güvenilirlik için bir başka önemli senaryo servis kesintisidir. Model endpoint’i kullanılamadığında asistanın tamamı çökmemeli; yerel yollar çalışmaya devam etmeli ve uzak cevabın yokluğu açıkça belirtilmelidir. Bu, “her durumda cevap üretme” yerine “kanıtlanabilir sınırda cevap verme” tercihidir.

Sonuç

Local-first bir asistan, yerel çalışan bir model demek değildir. Buradaki anlamı; doğrulanmış ve deterministik yolları öncelemek, uzak modele yalnız gerekli olduğunda başvurmak ve her veri geçişini ayrı bir güven kararı olarak ele almaktır. Gizlilik de tek bir ayarla tamamlanmaz: veri azaltma, dar kaynaklar, sunucu tarafı sırlar, güvenli render, açık sağlayıcı sınırları ve fail-soft davranış birlikte çalışmalıdır.

SBE Asistan’ın mevcut tasarımı bu ilkeleri küçük ve incelenebilir bir yüzeyde uygular. İlgili Engineering Labs projeleri guardrail, değerlendirme ve gizlilik yapılandırmalarının farklı parçalarını kaynak kodu üzerinden incelemek için tamamlayıcı örnekler sunar.