Skip to main content
CID222 Docs
GeliştirmeAPI başvurusu

İçerik tespiti

CID222 tespit hattını POST /api/v1/guardrails/detect ile herhangi bir metin üzerinde çalıştırın; döndürdüğü varlıkları, eylemleri ve maskelenmiş metni okuyun.

  • Sürüm: 0.4
  • Rol: admin_user, normal_user, viewer
  • Tür: başvuru

CID222 tespit motorunu doğrudan sunar; böylece herhangi bir metni bir modele göndermeden KKV, sırlar, toksisite ve prompt enjeksiyonu açısından tarayabilirsiniz. Aynı motor her sohbet isteğinde çalışır.

İçerik tespit etme

POST /api/v1/guardrails/detect

Tam tespit hattını — KKV, sırlar, toksisite, jailbreak ve enjeksiyon — bir metin bloğu üzerinde çalıştırır; bulunan varlıkları, kararlaştırılan eylemi ve metnin maskelenmiş bir kopyasını döndürür.

Ağ geçidinde /api/v1 ön ekini taşıyan tek yüzey budur. Diğer tüm uç noktalar kökte yer alır, örneğin /chat/completions ve /models.

Uç nokta 201 değil 200 döndürür. Bir JWT ya da bir ağ geçidi API anahtarı (Authorization: Bearer cid_key_<64 hex>) kabul eder. Geri döngü (loopback) veya bir RFC1918 adresinden gelen kimlik doğrulamasız istek, kiracı bağlamı olmadan kabul edilir; pakete dahil kırmızı takım hizmeti uç noktaya bu şekilde ulaşır. Kiracı bazlı filtre geçersiz kılmaları bu çağrılara uygulanmaz.

İstek gövdesi

ParametreTürGerekliAçıklama
textstringEvetAnaliz edilecek metin, 1–50.000 karakter
check_typestringHayırprompt (varsayılan) veya response
hap_versionnumberHayırToksisite modeli sürümü, 1 veya 2 (varsayılan 2)
filterstringHayırDTO tarafından kabul edilir ve ardından atılır — aşağıdaki nota bakın

Warning

filter doğrulanır ve sonra düşürülür: denetleyici bunu tespit servisine iletmez, dolayısıyla burada bir filtre adı vermek hiçbir şeyi değiştirmez. Bir filtrenin davranışını bunun yerine kiracı bazlı filtre geçersiz kılmasıyla kapsamlandırın.

Bilinmeyen alanlar reddedilmez, sessizce çıkarılır; çünkü ağ geçidi whitelist: true ile küresel bir doğrulama katmanı çalıştırır. Yanlış yazılmış bir alan adı hiçbir hata üretmez.

Örnek istek

curl -X POST https://<appliance-fqdn>/api/v1/guardrails/detect \
  -H "Authorization: Bearer cid_key_0123456789abcdef" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "My name is John Smith and my email is john@example.com",
    "check_type": "prompt"
  }'

Yanıt

Yanıt; genel eylemi, bir sayımı, tespit edilen varlıkların listesini ve girdinin maskelenmiş bir kopyasını bildirir.

{
  "action": "mask",
  "detectionCount": 2,
  "maskedText": "My name is [PERSON_NAME] and my email is [EMAIL]",
  "detectedEntities": [
    {
      "type": "PERSON_NAME",
      "value": "[PERSON_NAME]",
      "action": "mask",
      "confidence": 0.95,
      "source": "ml",
      "filterName": "ML Detector (ONNX NER)",
      "start": 11,
      "end": 21
    },
    {
      "type": "EMAIL",
      "value": "[EMAIL]",
      "action": "mask",
      "confidence": 0.95,
      "source": "regex",
      "filterName": "Regex Detector",
      "start": 39,
      "end": 55
    }
  ],
  "processingTimeMs": 142,
  "normalization": { "applied": [], "originalText": "" }
}

normalization.applied, girdi üzerinde çalışan kaçınma çözücülerini listeler — rot13, base64, leetspeak, unicode, case — ve hiçbiri uygulanmadığında boş bir dizidir. normalization.originalText her zaman boş bir dizedir: denetleyici bu alanı boşaltır, böylece ham girdi asla geri verilmez.

Warning

Ham değerler asla döndürülmez. detectedEntities[].value, varlığın yer tutucusunu taşır; tespit motoru bir yer tutucu üretmediğinde [REDACTED] gelir. Orijinal hassas metin yanıtın hiçbir yerinde görünmez.

Tespit edilen varlık alanları

AlanTürAçıklama
typestringTespit kategorisi, örneğin EMAIL, PERSON_NAME, violence, jailbreak
valuestring[EMAIL] gibi bir yer tutucu veya [REDACTED] — asla ham değer değil
actionstringallow, flag, mask veya reject
confidencenumber0–1. Regex tespitleri sabit olarak 0.95
sourcestringTespiti hangi motorun ürettiği, aşağıdaki tabloya bakın
filterNamestringTespit motoru veya filtre grubu kimliği; tek tek kural değil
start, endnumberGirdideki karakter konumları; metnin tamamına ilişkin güvenlik tespitlerinde bulunmaz

source şu değerlerden birini alır:

sourceÜreten
regexGirdi filtresi satırlarından yüklenen regex desenleri
mlONNX NER modeli
hap_detector13 etiketli toksisite modeli
jailbreak_detectorONNX jailbreak ve enjeksiyon modeli
injection_scanDeterministik SQLi ve XSS taraması
code_rule_detectorKod Güvenliği regex kuralları
code_ml_detectorKod Güvenliği denetleyicisi, bildirilen her CWE için bir kayıt
mrzGörüntü yolundaki pasaport MRZ ayrıştırıcısı
identity_layoutGörüntü yolundaki kimlik belgesi yerleşim çıkarıcısı

filterName, tetiklenen kuralı değil, tespit motorunu veya filtre grubunu bildirir. Bir regex tespiti Regex Detector bildirir ve tohum kuralının adını dahili olarak taşır; bir toksisite tespiti filtre grubunu bildirir, örneğin Content Safety (HAP Model - 13 Categories).

Tespit eylemleri

EylemAnlamı
allowEylem yok. İçerik temiz veya eşiğin altında
flagTespit kaydedilir; içerik değiştirilmeden geçer
maskVarlık yer tutucusuyla değiştirilir ve istek devam eder
rejectİçerik engellenir

Note

Birden çok varlık eşleştiğinde en güçlü eylem kazanır: reject, mask'ı yener; mask, flag'i yener; flag, allow'u yener.

Sohbet yüzeyinde bir reddetme HTTP hatası değildir. Akış, engellenen bir prompt için {"type":"content_rejected"}, engellenen bir yanıt için {"type":"output_content_rejected"} yayınlar ve ardından [DONE] gelir.

KKV varlık türleri

Tohumlanan KKV filtre grubu 17 kural içerir. ONNX NER modeli 21 yerel etiket üretir; regex katmanı modelin taşımadığı Türkçe formatları ve doğrulayıcıları ekler. İkisi aynı aralıkta tetiklendiğinde tespitler birleştirilir.

TürAçıklamaTespit edenVarsayılan eylem
EMAILE-posta adresleriRegex, NERmask
PHONETelefon numaraları — ABD, uluslararası, Türkiye mobil ve sabit hatRegex (6 desen), NERmask
PERSON_NAMEKişi adlarıNER ve Türk kimlik kartlarındaki büyük harfli adlar için bir regexmask
SSNABD Sosyal Güvenlik numarasıRegex, us.ssn sağlama toplamı, NERmask
TC_KIMLIK, ID_NUMBERT.C. kimlik numarasıRegex (OCR toleranslı dahil 5 desen), tr.tckimlik sağlama toplamı, NERmask
ID_DOCUMENT_NOTürk kimlik kartı belge ve seri numarasıRegexmask
CREDIT_CARDKart numaralarıRegex, Luhn ile marka ve uzunluk denetimimask
IBAN, ACCOUNT_NUMBERIBAN ve Türkiye yurt içi hesap numaralarıRegex, ISO 13616 mod-97mask
VKN, TAX_IDVergi kimlik numarasıRegex, tr.vkn sağlama toplamımask
PASSPORTPasaport numaraları — ABD, genel AB, TürkiyeRegex, NERmask
IP_ADDRESSIPv4 ve IPv6Regex, NERmask
LICENSE_PLATETürkiye araç plakalarıRegex, il aralığı denetimi, NERmask
CRYPTO_ADDRESSKripto cüzdan adresleriYalnızca NERmask
LOCATION, STREET_ADDRESS, CITY, ZIPCODEAdresler, şehirler, bölgeler, posta kodlarıNER ve bir Türkiye posta kodu regex'iflag
ORGANIZATIONŞirket ve kurum adlarıYalnızca NERflag
DATE_TIMETarih ve saatlerYalnızca NERflag
URLURL'lerYalnızca NERflag

Note

Varsayılan eylemler paketle gelen tohum satırlarından gelir. Bir yönetici bunları kural bazında değiştirir; kiracı veya grup bazlı bir geçersiz kılma ise kuralı hiç ellemeden tek bir departmanın eylemini değiştirebilir.

Sır ve kimlik bilgisi tespiti

Ayrı bir DLP filtre grubu sırları ve kimlik bilgilerini kapsar. Kurallarından dokuzu yalnızca regex tabanlıdır.

TürKapsamVarsayılan eylem
API_KEYOpenAI, Anthropic, AWS erişim ve gizli anahtarları, GitHub, Slack, Google, CID inceleme anahtarları ve genel bir desen — toplam 10 desenmask
password_assignment, db_password, secret_assignmentSatır içi parolalar ve gizli anahtar atamalarımask
rsa_private_key, private_key_generic, openssh_private_keyRSA ve OpenSSH özel anahtarlarımask
postgres_connection, mysql_connection, mongodb_connection, redis_connectionVeritabanı bağlantı URI'lerimask
jwt_token, bearer_token, google_refresh_token, refresh_token_assignmentJWT'ler, bearer token'lar ve yenileme token'larımask
webhook_secret, stripe_webhookWebhook imzalama sırlarımask
mac_colon, mac_hyphenMAC adreslerimask
mrn_labeled, mrn_formatTıbbi kayıt numaralarımask
cve_idCVE tanımlayıcılarıflag

Warning

Yalnızca API anahtarı kuralı bir model etiketi bildirir; dolayısıyla yalnızca o kural type: "API_KEY" döndürür. Diğer DLP kuralları hiçbir etiket bildirmez, bu yüzden type değerleri yukarıda görülen regex desen adıdır; value ise yer tutucuyu taşır — [PASSWORD], [RSA_PRIVATE_KEY], [MRN] gibi. Kararlı bir kategoriye ihtiyacınız varsa yer tutucuya göre eşleştirin.

Güvenlik kategorileri

KKV'nin ötesinde üç tespit motoru içeriği sınıflandırır: 13 etiketli bir toksisite modeli, 2 etiketli bir saldırı modeli ve deterministik bir enjeksiyon taraması.

EtiketTespit motoruKapsamVarsayılan eylem
violenceToksisiteİnsanlara veya hayvanlara yönelik yasa dışı şiddetreject
crimeToksisiteŞiddet içermeyen suçlar — finansal, mülkiyet, uyuşturucureject
sexual_crimeToksisiteRızaya dayanmayan cinsel eylemler, insan ticaretireject
child_exploitationToksisiteÇocuk istismarı materyalireject
defamationToksisiteİtibar zedeleyici asılsız iddialarreject
dangerous_adviceToksisiteTehlikeli uzmanlık tavsiyesireject
weaponsToksisiteKitle imha silahları, yasa dışı silahlarreject
hateToksisiteKorunan özellikleri hedef alan nefret söylemireject
self_harmToksisiteİntihar, kendine zarar verme, yeme bozukluklarıreject
cyber_crimesToksisiteHacking, zararlı yazılım, hizmet engellemereject
privacyToksisiteTakip, ifşa, kimlik hırsızlığıflag
intellectual_propertyToksisiteKorsanlık, intihal, taklitflag
sexual_contentToksisiteYetişkin cinsel içeriğiflag
jailbreakSaldırı modeliRol yapma saldırıları, sistem prompt'u sızdırmareject
injectionSaldırı modeliPrompt enjeksiyonu girişimlerireject
sql_injectionEnjeksiyon taramasıDeterministik olarak tespit edilen SQL enjeksiyonureject
xssEnjeksiyon taramasıDeterministik olarak tespit edilen siteler arası betik çalıştırmareject

Toksisite ve saldırı modellerinin her biri sekiz dili kapsar: en, tr, de, fr, es, ar, it ve nl. Enjeksiyon taraması dilden bağımsızdır — sınıflandırmak yerine dizeyi ayrıştırır — ve saldırı modelinden gelen düşük bir saldırı niyeti puanı, kararını reject'ten flag'e düşürür.

Toksisite eşikleri etiket başınadır, üç düzeylidir (block, flag, log-only) ve tek bir küresel değer yerine etiket bazında ayarlanmış olarak gelir. Saldırı modeli eşikleri de aynı şekilde etiket başına ve üç düzeylidir. Her iki küme de kendi servis imajına gömülüdür ve ortam değişkeniyle geçersiz kılınamaz; değiştirmek imajı yeniden derlemek demektir.

Güven puanları

Her tespit 0 ile 1 arasında bir güven taşır. Regex tespitleri sabit olarak 0.95'tir, çünkü derlenmiş bir desen ya eşleşmiştir ya da eşleşmemiştir. Model tespitleri modelin kendi puanını taşır.

Bir tespit, varlık türü için kayıtlı bir bağlam anahtar kelimesi aralığın 50 karakter yakınında göründüğünde 0.1 artırılır ve 1.0'da sınırlanır. Artırım bağlam anahtar kelimesine dayanır; iki tespit motorunun aynı fikirde olması için verilmez.

Doğrulanan bir varlık yalnızca nihai güveni 0.6'ya ulaştığında geçer. Hiç güven değeri olmadan gelen bir tespit 0.8 varsayılır.

Note

Doğruluk ve gecikme; metin uzunluğuna, dile, tespit motoruna ve filtre yapılandırmasına bağlıdır. Bir sayı aktarmadan önce performans ve doğruluk sayfasına bakın.

Kaydedilmiş tespitleri sorgulama

GET /admin/detections ve GET /admin/detections/stats, hattın kaydettiklerini okur. İkisi de admin_user veya auditor rolünü ve detections.view yetkisini gerektirir; ikisi de çağıranın zaten okuyabildiği kiracılarla sınırlıdır.

ParametreTürAçıklama
page, limitnumberSayfalama. Varsayılanlar 1 ve 10; limit en fazla 100
entity_typestringTespit kategorisine göre süzer, örneğin EMAIL
action_takenstringmasked, rejected veya flagged
message_rolestringuser, assistant veya system
tenant_idstringKiracıya göre süzer
group_idstring (UUID)Tek bir kiracı grubunun üyeleriyle daraltır; çağıranın sahibi olmadığı bir grup 404 döndürür
session_idstringOturuma göre süzer
start_date, end_datestringISO 8601 tarih aralığı
searchstringSerbest metin araması
curl -X GET "https://<appliance-fqdn>/admin/detections?entity_type=EMAIL&action_taken=masked" \
  -H "Authorization: Bearer <admin-jwt>"

Yanıt sayfalanmıştır:

{
  "data": [],
  "meta": { "total": 42, "page": 1, "limit": 10, "totalPages": 5 }
}

İlgili sayfalar

Son güncelleme

Bu sayfada