
# Gerçek Zamanlı Uyumluluk Skor Kartı Panosu – Retrieval‑Augmented Generation ile Güçlendirilmiş

## Giriş  

Güvenlik anketleri, denetim kontrol listeleri ve yasal değerlendirmeler büyük miktarda yapılandırılmış ve yapılandırılmamış veri üretir. Takımlar, yanıtları kopyalamak, kanıtları eşlemek ve uyumluluk skorlarını manuel olarak hesaplamak için sayısız saat harcar. **Gerçek Zamanlı Uyumluluk Skor Kartı Panosu**, üç güçlü bileşeni birleştirerek bu sürtüşmeyi ortadan kaldırır:

1. **Retrieval‑Augmented Generation (RAG)** – En alakalı kanıtı bir bilgi tabanından çekip yanıt üreten LLM‑destekli sentez.  
2. **Dinamik Bilgi Grafiği** – Politikalar, kontroller, kanıt varlıkları ve anket öğelerini birbirine bağlayan sürekli güncellenen bir grafik.  
3. **Mermaid‑tabanlı Görselleştirmeler** – Ham grafik verilerini sezgisel ısı haritalarına, radar grafiğine ve akış diyagramlarına dönüştüren canlı, etkileşimli diyagramlar.

Sonuç, paydaşların **risk maruziyeti, kanıt kapsamı ve yanıt güveni** gibi bilgileri anında görebileceği tek bir cam tabakadır; her bir anket öğesi için tüm yasal çerçeveler ( [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2), [ISO 27001](https://www.iso.org/standard/27001), [GDPR](https://gdpr.eu/), vb.) boyunca.  

Bu makalede şunları inceleyeceğiz:

* Skor kartı motorunun uçtan uca mimarisi.  
* En güvenilir kanıtı ortaya çıkaran RAG istemlerinin (prompt) nasıl tasarlanacağı.  
* Kaynak belgelerle senkronize kalan bir bilgi‑grafiği boru hattının oluşturulması.  
* Gerçek zamanlı güncellenen Mermaid görselleştirmelerinin oluşturulması.  
* Ölçeklendirme hususları, güvenlik en iyi uygulamaları ve üretim dağıtımı için kısa bir kontrol listesi.  

> **Generatif Motor Optimizasyonu ipucu** – RAG istemlerinizi *kısa, bağlam‑zengin ve benzersiz bir kanıt tanımlayıcısı ile sabitlenmiş* tutun. Bu, token verimliliğini artırır ve yanıt doğruluğunu iyileştirir.

---

## 1. Sistem Genel Bakış  

Aşağıda, gelen anketlerden canlı skor kartı UI’sine kadar veri akışını gösteren yüksek seviyeli bir Mermaid diyagramı yer alıyor.

```mermaid
graph LR
    subgraph "Input Layer"
        Q[ "Questionnaire Forms" ]
        D[ "Document Repository" ]
    end

    subgraph "Processing Core"
        KG[ "Dynamic Knowledge Graph" ]
        RAG[ "RAG Engine" ]
        Scorer[ "Compliance Scorer" ]
    end

    subgraph "Output Layer"
        UI[ "Scorecard Dashboard" ]
        Alerts[ "Real‑Time Alerts" ]
    end

    Q -->|Ingest| KG
    D -->|Parse & Index| KG
    KG -->|Context Retrieval| RAG
    RAG -->|Generated Answers| Scorer
    Scorer -->|Score & Confidence| UI
    Scorer -->|Threshold Breach| Alerts
```

**Temel bileşenler**

| Bileşen | Amaç |
|-----------|---------|
| **Questionnaire Forms** | Tedarikçilerin, satış ekiplerinin veya denetçilerin gönderdiği JSON ya da CSV dosyaları. |
| **Document Repository** | Politikalar, kontrol kılavuzları, denetim raporları ve kanıt PDF’lerinin merkezi deposu. |
| **Dynamic Knowledge Graph** | *Soru ↔ Kontrol ↔ Kanıt ↔ Regülasyon* ilişkilerini modelleyen Neo4j (veya benzeri) grafik. |
| **RAG Engine** | Retrieval katmanı (vektör DB) + LLM (Claude, GPT‑4‑Turbo). |
| **Compliance Scorer** | Her soru için sayısal uyumluluk skoru, güven aralığı ve risk derecesi hesaplar. |
| **Scorecard Dashboard** | Mermaid diyagramları ve sayısal widget’ları render eden React‑tabanlı UI. |
| **Real‑Time Alerts** | Politikaların alt eşiklerine düşen öğeler için Slack/E‑posta webhook’u. |

---

## 2. Bilgi Grafiğini Oluşturma  

### 2.1 Şema Tasarımı  

Kompakt ama ifade gücü yüksek bir şema, sorgu gecikmesini düşük tutar. Çoğu SaaS sağlayıcısı için aşağıdaki düğüm/kenar tipleri yeterlidir:

```mermaid
classDiagram
    class Question {
        <<entity>>
        string id
        string text
        string framework
    }
    class Control {
        <<entity>>
        string id
        string description
        string owner
    }
    class Evidence {
        <<entity>>
        string id
        string type
        string location
        string hash
    }
    class Regulation {
        <<entity>>
        string id
        string name
        string version
    }
    Question --> "requires" Control
    Control --> "supported_by" Evidence
    Control --> "maps_to" Regulation
```

### 2.2 Ingestion (Alım) Boru Hattı  

1. **Parse** – Document AI (OCR + NER) kullanarak kontrol başlıklarını, kanıt referanslarını ve regülasyon eşlemelerini çıkarın.  
2. **Normalize** – Her varlığı yukarıdaki kanonik şemaya dönüştürün; hash ile çoğaltmaları önleyin.  
3. **Enrich** – Her düğümün metin alanları için gömme (embedding) oluşturun (ör. `text‑embedding‑3‑large`).  
4. **Load** – Düğümleri ve ilişkileri Neo4j’e upsert edin; gömmeleri bir vektör DB’de (Pinecone, Weaviate) saklayın.  

Bu adımları her **15 dk**’da bir çalıştıran hafif bir Airflow DAG’i, neredeyse gerçek zamanlı tazeliği garanti eder.

---

## 3. Retrieval‑Augmented Generation  

### 3.1 İstem (Prompt) Şablonu  

İstem üç bölümü içermelidir:

1. **Sistem talimatı** – Modelin rolünü tanımlayın (Uyumluluk Asistanı).  
2. **Getirilen bağlam** – Bilgi grafiğinden kesin alıntılar (en fazla 3 satır).  
3. **Kullanıcı sorusu** – Yanıtlanacak anket maddesi.

```text
You are a Compliance Assistant tasked with providing concise, evidence‑backed answers for security questionnaires.

Context:
{retrieved_snippets}
--- 
Question: {question_text}
Provide a short answer (<120 words). Cite the evidence IDs in brackets, e.g., [EVID‑1234].
If confidence is low, state the uncertainty and suggest a follow‑up action.
```

### 3.2 Retrieval (Getirme) Stratejisi  

- **Hybrid search**: BM25 anahtar kelime eşleşmesini vektör benzerliğiyle birleştirerek hem kesin politika dilini hem de anlamsal olarak ilgili kontrolleri ortaya çıkarın.  
- **Top‑k = 3**: Token kullanımını düşük tutmak ve izlenebilirliği artırmak için kanıt sayısını üçle sınırlayın.  
- **Score threshold**: Benzerlik < 0.78 ise alıntıları atarak gürültülü çıktıları önleyin.

### 3.3 Güven Skoru  

Üretimden sonra aşağıdaki formülle **güven skoru** hesaplanır:

```
confidence = (avg(retrieval_score) * 0.6) + (LLM token log‑probability * 0.4)
```

`confidence < 0.65` olduğunda Scorer, yanıtı insan incelemesi için işaretler.

---

## 4. Uyumluluk Skorlama Motoru  

Scorer, yanıtlanan her soruyu **0‑100 ölçeğinde** sayısal bir değere çevirir:

| Metrik | Ağırlık |
|--------|--------|
| Yanıt bütünlüğü (gerekli alanların varlığı) | %30 |
| Kanıt kapsamı (benzersiz kanıt kimlik sayısı) | %25 |
| Güven (RAG güveni) | %30 |
| Regülasyon etkisi (yüksek riskli çerçeveler) | %15 |

Ağırlıklı toplam nihai skoru verir. Risk derecelendirmesi ise:

* **0‑49** → Kırmızı (Kritik)  
* **50‑79** → Amber (Orta)  
* **80‑100** → Yeşil (Uyumlu)

Bu derecelendirmeler doğrudan görsel göstergeye aktarılır.

---

## 5. Canlı Skor Kartı Panosu  

### 5.1 Mermaid Isı Haritası  

Kapsamı çerçeveler üzerinden anında göstermek için ısı haritası örneği:

```mermaid
graph TB
    subgraph "SOC 2"
        SOC1["Trust Services: Security"]
        SOC2["Trust Services: Availability"]
        SOC3["Trust Services: Confidentiality"]
    end
    subgraph "ISO 27001"
        ISO1["A.5 Information Security Policies"]
        ISO2["A.6 Organization of Information Security"]
        ISO3["A.7 Human Resource Security"]
    end
    SOC1 -- 85% --> ISO1
    SOC2 -- 70% --> ISO2
    SOC3 -- 60% --> ISO3
    classDef green fill:#c8e6c9,stroke:#388e3c,stroke-width:2px;
    classDef amber fill:#fff9c4,stroke:#f57f17,stroke-width:2px;
    classDef red fill:#ffcdd2,stroke:#d32f2f,stroke-width:2px;
    class SOC1 green;
    class SOC2 amber;
    class SOC3 red;
```

Dashboard, Mermaid kodunu **React‑Flow** ile gömmektedir. Arka uç bir skor güncellediğinde, UI Mermaid dizgesini yeniden üretir ve diyagramı yeniden çizer; bu, kullanıcıya **sıfır gecikmeli** uyumluluk durumu sunar.

### 5.2 Risk Dağılımı için Radar Grafiği  

```mermaid
radar
    title Risk Distribution
    categories Security Availability Confidentiality Integrity Privacy
    A: 80, 70, 55, 90, 60
```

Radar grafiği, Scorer’dan gelen sayısal dizileri **WebSocket** kanalı üzerinden iterek anlık güncellenir.

### 5.3 Etkileşim Kalıpları  

| Eylem | UI Öğesi | Backend Çağrısı |
|--------|------------|-----------------|
| **Detaya in** | Isı haritası düğümüne tıklama | O kontrol için ayrıntılı kanıt listesini getir |
| **Üzerine yazma** | Satır içi düzenleme kutusu | Denetim izniyle bilgi grafiğine yaz‑yaz (audit trail) |
| **Uyarı ayarı** | Risk eşiği kaydırıcısı | Alerts mikro‑servisindeki kuralı güncelle |

---

## 6. Güvenlik ve Yönetişim  

1. **Kanıt doğrulaması için sıfır‑bilgi kanıtı (ZKP)** – Her kanıt dosyasının SHA‑256 hash’i saklanır; dosya erişildiğinde içeriği ifşa etmeden bütünlük kanıtı sağlamak için ZKP üretilir.  
2. **Rol‑bazlı erişim kontrolü (RBAC)** – Kimlerin skoru düzenleyebileceğini, kimlerin sadece görebileceğini sınırlamak için OPA politikaları kullanılır.  
3. **Denetim günlüğü** – Her RAG çağrısı, güven skoru hesaplaması ve skor güncellemesi, değiştirilemez bir ek‑eklemeli günlük (ör. Amazon QLDB) üzerine yazılır.  
4. **Veri ikametgahı** – Vektör DB ve Neo4j, GDPR uyumluluğu için EU‑West‑1’de dağıtılabilir; LLM de bölge‑kısıtlı, özel uç nokta üzerinden çalıştırılır.

---

## 7. Motorun Ölçeklendirilmesi  

| Zorluk | Çözüm |
|-----------|----------|
| **Yüksek anket hacmi** (günde 10 k+) | RAG’i **sunucusuz konteyner** olarak API‑gateway arkasına koyun; istek gecikmesine göre otomatik ölçeklendirin. |
| **Gömme (embedding) güncellenmesi** (her saat yeni politika) | Artımlı gömme güncellemesi: sadece değişen belgeler için vektörleri yeniden hesaplayın, geri kalanları önbellekte tutun. |
| **Pano gecikmesi** | Güncellemeleri **Server‑Sent Events** ile iterek; framework‑bazlı Mermaid dizgelerini önbelleğe alarak hızlı yeniden render elde edin. |
| **Maliyet yönetimi** | **Kuantize edilmiş gömmeler** (8‑bit) ve toplu LLM çağrıları (en fazla 20 soru) kullanarak istek başı maliyeti düşürün. |

---

## 8. Uygulama Kontrol Listesi  

- [ ] Bilgi‑grafiği şemasını tanımlayın ve başlangıç politika veri havuzunu alın.  
- [ ] Vektör veri tabanı ve hibrit arama boru hattını kurun.  
- [ ] RAG istem şablonını oluşturun ve seçtiğiniz LLM ile entegre edin.  
- [ ] Güven skoru formülünü ve eşiklerini uygulayın.  
- [ ] Ağırlıklı metriklerle uyumluluk skorlama motorunu inşa edin.  
- [ ] Mermaid bileşenleri (ısı haritası, radar, akış) içeren React tabanlı göstergeyi tasarlayın.  
- [ ] Gerçek‑zamanlı güncellemeler için WebSocket/SSE kanallarını yapılandırın.  
- [ ] RBAC ve denetim‑günlüğü ara katmanlarını ekleyin.  
- [ ] Staging ortamında dağıtın; 5 k QPS için yük testi yapın.  
- [ ] Politika eşik ihlallerinde Slack/Teams webhook’u aracılığıyla uyarıların etkinliğini kontrol edin.  

---

## 9. Gerçek Dünya Etkisi  

Orta ölçekli bir SaaS şirketinde gerçekleştirilen son pilot, anket yanıtlamaya harcanan sürede **%70 azalma** sağladı. Canlı skor kartı, sadece üç yüksek riskli eksikliği ortaya koyarak güvenlik ekibinin kaynaklarını verimli bir şekilde yönlendirmesine imkan tanıdı. Ayrıca, güven‑puanuna dayalı uyarı sistemi, planlı bir denetimden **48 saat** önce eksik bir [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2) kanıtı tespit ederek olası bir uyumsuzluk krizini önledi.

---

## 10. Gelecek Geliştirmeler  

1. **Federated RAG** – Veri hareketi olmadan ortak kuruluşlardan kanıt çekmek için güvenli çok‑taraflı hesaplama.  
2. **Üretken UI** – LLM’nin doğal dil komutlarından doğrudan Mermaid diyagramları üretmesi (örn. “[ISO 27001] kapsamının bir ısı haritasını göster”).  
3. **Tahmini Skorlama** – Geçmiş skorları zaman serisi modeliyle besleyerek yaklaşan uyumluluk boşluklarını öngörme.  

---

## İlgili Bağlantılar  

- [Retrieval‑Augmented Generation: A Practical Guide – LangChain Docs](https://python.langchain.com/docs/use_cases/retrieval_qa)  
- [Mermaid Live Editor & Documentation](https://mermaid-js.github.io/mermaid/#/)