Skip to content

ardamoustafa1/TrustMask

Repository files navigation

TrustMask AI

License: MIT Python Flask NER KVKK

Kurumsal ekipler icin tasarlanmis, Turkce odakli, hibrit (kural + yapay zeka) bir veri anonimlestirme motoru.

TrustMask AI; metinlerdeki kisiyi tanimlayici verileri tespit eder, cakisan bulgulari onceliklendirme ile cozer ve guvenli placeholder'lara donusturur. Hem API hem CLI olarak calisabilir.


Neden TrustMask AI?

  • Hibrit tespit motoru: Regex tabanli net formatlar (TC, IBAN, kart, e-posta vb.) + BERT tabanli NER birlikte calisir.
  • Turkce odakli NLP: savasy/bert-base-turkish-ner-cased modeli ile kisi/kurum/lokasyon gibi varliklar baglama duyarli ele alinir.
  • Cakisma cozumleme: Ayni metin araligina denk gelen birden fazla bulgu, oncelik ve guven skoruna gore tekilleştirilir.
  • Production hazir servis: Flask API, CORS destegi ve Waitress ile coklu thread servisleme.
  • Kolay entegrasyon: Python kutuphanesi, REST API ve CLI akislari tek kod tabani uzerinden yonetilir.

Mimari Genel Bakis

flowchart LR
    A[Client: Web / Mobile / Bot / CLI] --> B[Flask Routers]
    B --> C[Security Layer\nValidation + CORS + Error Handling]
    C --> D[Hybrid Orchestrator\nKVKKAnonymizer]

    D --> E[Rule Detectors\nTC / Phone / Email / IBAN / Card / Address]
    D --> F[NLP Name Detector]
    D --> G[AI NER Service\nBERT Turkish NER]

    E --> H[Entity Pool]
    F --> H
    G --> H

    H --> I[Confidence Filter]
    I --> J[Overlap Resolver]
    J --> K[Masking Engine\nPlaceholder Replacement]
    K --> L[Sanitized Output + Metadata]

    M[(HF Model Cache)] -. lazy load .-> G
    N[(Optional API Gateway)] -. production .-> C
Loading

Katmanlar

Katman Sorumluluk Dosyalar
Presentation HTTP endpointleri ve CLI girisi api.py, main.py
Security & Validation Input dogrulama, CORS, hata sinirlama api.py
Orchestration Tum detector'lari calistirma, pipeline yonetimi anonymizer.py
Detection (Rule-based) Format tabanli PII tespiti detectors/
Detection (NLP/AI) Baglam tabanli isim/varlik tespiti nlp/name_detector.py, nlp/ai_ner.py
Domain Model Entity ve sonuc veri modelleri entities.py, config.py
Runtime Production server ve deploy routing run_production.py, vercel.json

Cekirdek Bilesenler

  • anonymizer.py
    • KVKKAnonymizer sinifi tum detector'lari orkestre eder.
    • anonymize(text, min_confidence) ile sonuc nesnesi uretir.
    • _resolve_overlaps() ile cakisan varliklari cozer.
    • _apply_anonymization() ile yer degistirme (masking) uygular.
  • detectors/
    • Kural tabanli detector katmani.
    • Her detector BaseDetector soylesmesine uygun calisir.
  • nlp/
    • NameDetector: sozluk + baglam + unvan tabanli isim tespiti.
    • AINERDetector: BERT pipeline ile NER, lazy-load yaklasimi.
  • api.py
    • REST endpointleri: /anonymize, /anonymize/batch, /stats, /health, /info.
  • main.py
    • Tek metin, dosya, stdin ve interaktif CLI kullanimini yonetir.
  • run_production.py
    • Waitress ile production servis baslatir (0.0.0.0:5000, threads=8).

Tespit Edilen Veri Kategorileri

Asagidaki veri siniflari sistemde dogrudan desteklenir (detector + config katmani):

  • Kimlik: TC kimlik, musteri/abone/sozlesme/cagri kayit id bilgileri
  • Iletisim: Cep telefonu, sabit hat, e-posta
  • Finans: IBAN, kredi karti, banka bilgileri/banka adi
  • Kisi: Ad, soyad, tam ad, ebeveyn adi
  • Konum: Adres, il/ilce
  • Diger: Dogum tarihi/yili, plaka, IP adresi, cinsiyet gibi hassas alanlar

Maskelenen ciktilar placeholder formatinda doner (or. [TC_ID], [PHONE], [EMAIL], [ADDRESS]).


Proje Dizini

TrustMask-main/
├── anonymizer.py
├── api.py
├── main.py
├── run_production.py
├── config.py
├── entities.py
├── requirements.txt
├── vercel.json
├── detectors/
│   ├── base_detector.py
│   ├── tc_kimlik_detector.py
│   ├── phone_detector.py
│   ├── email_detector.py
│   ├── iban_detector.py
│   ├── credit_card_detector.py
│   ├── address_detector.py
│   ├── date_detector.py
│   ├── ip_detector.py
│   ├── plate_detector.py
│   ├── customer_id_detector.py
│   ├── partial_data_detector.py
│   └── extra_detectors.py
└── nlp/
    ├── name_detector.py
    └── ai_ner.py

Kurulum

1) Ortam Hazirlama

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

2) Production Sunucuyu Baslatma

python run_production.py

Varsayilan servis adresi: http://localhost:5000

3) Gelistirme Modu API

python api.py --host 0.0.0.0 --port 5000 --debug

API Dokumantasyonu

Base URL (lokal): http://localhost:5000

Method Endpoint Aciklama
GET /health Servis saglik kontrolu
GET /info API kabiliyetleri ve desteklenen alanlar
POST /anonymize Tek metin anonimlestirme
POST /anonymize/batch Toplu metin anonimlestirme
POST /stats Tespit istatistikleri

POST /anonymize ornek

curl -X POST http://localhost:5000/anonymize ^
  -H "Content-Type: application/json" ^
  -d "{\"text\":\"Musteri no: VOD-123456789, telefon: 0532 111 22 33\",\"min_confidence\":0.5}"

Ornek donus:

{
  "is_personal_data_detected": true,
  "detected_data_types": [
    "CUSTOMER_ID",
    "PHONE"
  ],
  "sanitized_text": "Musteri no: [CUSTOMER_ID], telefon: [PHONE]"
}

CLI Kullanimi

Tek metin

python main.py --text "Merhaba, ben Ahmet Yilmaz. Telefonum 0532 000 00 00"

Dosya isleme

python main.py --file input.txt --output output.txt

Interaktif mod

python main.py --interactive

Stdin

echo "TC: 12345678901" | python main.py --stdin

Isim tespitini kapatma

python main.py --text "Ayse Yilmaz" --no-names

Deployment Notlari

  • Waitress WSGI: run_production.py uzerinden production servisleme.
  • Vercel Destegi: vercel.json ile api.py serverless, index.html static route olarak yayinlanabilir.
  • Model yukleme: BERT modeli ilk ihtiyacta yuklenir (lazy loading), ilk istekte ekstra gecikme olabilir.

Guvenlik ve Operasyonel Notlar

  • Bu surumde API seviyesinde kimlik dogrulama (JWT/API key) bulunmaz; production'da gateway veya reverse-proxy ile koruma onerilir.
  • Hata yonetiminde 500 yanitlari error mesaji dondurur; kurumsal ortamlarda merkezi loglama + sanitize edilmis hata formati onerilir.
  • Model bagimliligi nedeniyle soguk baslangicta internet/model cache gereksinimleri planlanmalidir.

Gelistirme Yol Haritasi (Onerilen)

  • Otomatik test kapsami (pytest) arttirimi
  • Role-based API access / token tabanli erisim kontrolu
  • Dockerfile + healthcheck + observability (metrics/log tracing)
  • Daha ayrintili benchmark raporlari

Lisans

Bu proje MIT lisansi ile lisanslanmistir.

Releases

No releases published

Packages

 
 
 

Contributors