Skip to main content
CID222 Docs

Mimari

CID222'nin oluştuğu bileşenler, bir isteğin bunların içinden geçtiği yol ve her birinin neye karar vermeye yetkili olduğu.

  • Sürüm: 0.4
  • Rol: admin_user, normal_user, viewer

CID222, uygulamalarınız ile model sağlayıcıları arasında durur. Sağlayıcı kimlik bilgisini o tutar, her iki yöndeki trafiği inceler ve kararı kayda geçirir — çağıran uygulamadan, temel URL'yi değiştirmenin ötesinde bir değişiklik istemeden.

Sorun

Bir model sağlayıcısı, bir uygulamanın kendisine gönderdiği her şeyi görür. Bir prompt ağdan çıktıktan sonra geri çağırma, redaksiyon veya denetim izi yoktur: o prompt'taki müşteri kaydı, özel anahtar ya da iç mimari artık başkasının günlüklerindedir. Sağlayıcıyı tamamen engellemek işi durdurur; tamamen serbest bırakmak yönetişimi durdurur. Bir şeyin trafiği okuması, karar vermesi ve kayıt bırakması gerekir — hem de istek yolunda ve kimsenin etrafından dolaşmayacağı bir hızda.

CID222 bunu nasıl yapar

Bileşenler

  • API ağ geçidi. 3000 portunda, 0.0.0.0 adresine bağlı, küresel yol ön eki olmayan hizmet. Uç noktalar kendi temel yollarını bildirir; bu yüzden /chat/completions ve /models kökte dururken tespit uç noktası /api/v1/guardrails/detect adresindedir. Çağıranın kimliğini doğrular, kiracıyı çözümler ve aşağıdaki her şeyi düzenler.
  • Tespit hattı. Aynı normalleştirilmiş metin üzerinde paralel çalışan beş tespit motoru, bir doğrulama katmanı ve çıktılarını tek bir eyleme dönüştüren bir karar verici.
  • Sağlayıcı bağlayıcıları. Model üreticisi başına bir bağlayıcı; böylece aynı istek OpenAI'ye de Anthropic'e de değişmeden ulaşır. Kimlik bilgileri çağrı anında kiracı bazında çözümlenir.
  • Oturum yöneticisi. Konuşma bağlamı ve token muhasebesi, PostgreSQL'de JSONB olarak tutulur.
  • Denetim izi. Her tespit, her eylem ve her yönetimsel değişiklik veritabanına düşer ve yönetim API'si ile kontrol panelinden sorgulanabilir.

Tespit hizmetleri

Tespit, ağ geçidinin dışında çalışır: her model kendi konteynerindedir ve HTTP üzerinden çağrılır; böylece bir tespit motorunu diğerlerini rahatsız etmeden başlatabilir, durdurabilir, yeniden başlatabilir ve tanılayabilirsiniz.

HizmetÇalıştırdığıPort
ml-detectorKKV için ONNX NER, çok dilli DistilBERT, 21 yerel varlık etiketi8001
hap-guard-v2ONNX mDeBERTa toksisite, 13 etiket, 8 dil8004
attack-guardONNX mDeBERTa jailbreak ve enjeksiyon ile deterministik libinjection SQLi ve XSS taraması8003
language-detectorTespit motorlarından önce dil belirleme8008
hallucination-guardLettuceDetect, RAG bağlamı olan yanıtlarda arka plan denetimi8022
ocr-service, document-parser, redactorGörüntü ve belgelerden metin çıkarma, redakte edilmiş kopya üretme8009, 8012, 8013

İstek akışı

Bir sohbet isteği şu aşamalardan geçer:

  1. Kimlik doğrulama. Bir JWT veya bir ağ geçidi API anahtarı kiracıyı belirler. Rol her istekte veritabanından yeniden okunur; bu yüzden bir yetki düşürmesinden önce üretilmiş bir token eski rolü korumaz.
  2. Normalleştirme. Kaçınma çözücüleri önce çalışır — ROT13, base64, leetspeak, Unicode homoglifleri, büyük/küçük harf — böylece bir tespit motoru gizlenmiş metni değil çözülmüş metni görür.
  3. Paralel tespit. KKV, toksisite, jailbreak ve enjeksiyon ile kod güvenliği aynı anda, normalleştirilmiş metin üzerinde çalışır.
  4. Doğrulama ve karar. Sağlama toplamı ve bağlam kuralları her tespiti doğrular veya zayıflatır; karar verici bunları tek bir eyleme katlar. En güçlü eylem kazanır: reject, mask'ı; mask, flag'i yener.
  5. Sağlayıcı çağrısı. Hayatta kalan metin — maskeleme uygulandıysa maskelenmiş hâliyle — kiracının kendi kimlik bilgisiyle sağlayıcıya gider.
  6. Yanıt filtreleme. Yanıt, herhangi bir bölümü istemciye ulaşmadan önce gerçek zamanlı olarak KKV ve toksisite açısından taranır.
  7. Kayıt. Tespitler, token kullanımı ve maliyet oturuma yazılır.

Note

Girdi hattı yaklaşık 150 ms ekleyecek biçimde tasarlanmıştır. Gerçekte ne eklediği metin uzunluğuna, dile ve bir filtre yapılandırmasının kaç tespit motorunu etkinleştirdiğine bağlıdır — bkz. performans ve doğruluk.

İstemcinin gördüğü

Sohbet yüzeyi her zaman text/event-stream'dir; akışsız bir mod yoktur. Akış, sağlayıcının değil CID222'nin kendi sözleşmesidir. CID222 sağlayıcının token parçalarını tüketir, yanıtın tamamını biriktirir, üzerinde çıktı filtrelemesi çalıştırır ve sonucu tek bir içerik olayı olarak yayınlar. Bir istemci; isteğe bağlı denetim olaylarını, ardından model üretirken bir duraklamayı, ardından tek bir büyük içerik olayını, ardından [DONE] görür.

Depolama ve önbellek

PostgreSQL; kiracıları, kimlik bilgilerini, filtre kurallarını, oturumları, tespitleri ve denetim izini tutar. Oturum bağlamı ve token kullanımı, oturum satırındaki JSONB sütunlarıdır. Redis; kuyrukları, dağıtık kilitleri ve kayan pencereli hız sınırlayıcıyı destekler.

Arka plan işleri

Kuyruklar, istek yolunda beklememesi gereken işleri taşır: asenkron belge redaksiyonu, SIEM ve webhook dışa aktarımı, depo izleme, yanıt riski incelemesi ve LLM inceleme hattı. İnceleme hattı mesaj başına bir iş değildir — yinelenen jailbreak ve enjeksiyon tespitleri kullanıcı başına bir kayan pencereyi doldurur ve pencerenin aşılması, yerel risk analisti hizmetinde tek bir inceleme açar.

Dağıtım

CID222, sizin denetiminizdeki altyapıya kurulur. Bir Docker Compose yığını olarak ve her modeli imajın içinde taşıyan bir cihaz imajı (OVA ve ISO) olarak gelir; böylece hiç dış bağlantı olmadan kurulabilir. Barındırılan bir denetim düzlemi yoktur: hava boşluklu bir cihaz, lisans doğrulaması dahil tam işlevseldir.

Sınırlar ve bilinen boşluklar

  • Ters vekil sunucu, ileri vekil sunucu değildir. CID222'yi uygulamanızın önüne koymak, o uygulamanın ne gönderdiğini yönetir. Doğrudan bir sağlayıcının web sitesine giden bir tarayıcıyı yakalamaz. Bunun için oturumu kendi CA'sıyla çözen satır içi vekil veya uç nokta dağıtımı gerekir.
  • Neredeyse hiçbir şeyin hız sınırı yoktur. Kayan pencereli sınırlayıcı; oturum açmayı, parola sıfırlamayı, yardım asistanını, uzantı kanıtlamasını ve depo webhook'unu korur. /chat/completions, /api/v1/guardrails/detect, /sessions/*, /image-analysis/*, /document-analysis/* ve /models için hiçbir sınır yoktur. Kiracı kotası uygulanmış bir denetim değildir; bunu yük dengeleyicide planlayın.
  • Akış artımlı değildir. Çıktı filtrelemesi yanıtın tamamı üzerinde çalıştığı için istemci tüm üretimi bekler ve sonra hepsini birden alır. Token token görüntüleme bekleyen bir arayüz önce donmuş görünür, sonra sıçrar. Bu, yanıtı kullanıcı okumadan önce filtrelemenin bedelidir.
  • Parçalı ve sürdürülebilir yüklemeler incelenmez, reddedilir. Hiçbir yol bir gövdeyi istekler arasında tamponlamaz; bu yüzden parçalanmış bir yükleme yeniden birleştirilip taranamaz. Tüm yollar, incelenmemiş baytları geçirmek yerine varsayılan olarak bunları reddeder.
  • Bilinmeyen istek alanları sessizce düşürülür. İstek doğrulaması, uç noktanın bildirmediği her alanı reddetmek yerine çıkarır; bu yüzden yanlış yazılmış bir alan, niyetinizi göz ardı etmiş başarılı bir istek üretir.
  • Hata zarfı tek biçimli değildir. Yapılandırılmış hatalar {statusCode, code, message} taşır, ancak düz çerçeve istisnaları code alanı olmadan {statusCode, message, error} döner. code alanının her zaman bulunduğunu varsayan bir istemci yazmayın.
  • Saklama süresi bir ürün varsayılanı değil, yapılandırmadır. Temiz trafiğin ne kadar tutulacağı dağıtım başına çalışma zamanında ayarlanır. Redakte edilmiş ve engellenmiş olaylar, politika kanıtı olarak her hâlükârda saklanır.

İlgili sayfalar

Son güncelleme

Bu sayfada