
# העשרה דינמית של גרף ידע להקשר שאלונים בזמן אמת

## מבוא

שאלוני אבטחה ובדיקות ציות הפכו לצנדר בקבוצות SaaS הצומחות במהירות. צוותים משקיעים שעות אינסופיות בחיפוש אחר הסעיף המדויק במדיניות, באיסוף ראיות ממאגרי מסמכים, ובכתיבה חוזרת של אותה תשובה לכל בקשת ספק חדשה. למרות שמודלים גדולים של שפה (LLM) יכולים לייצר תשובות ראשוניות, הם לעיתים מחמיצים את **הניואנסים הרגולטוריים** שמשתנים מיום ליום — הנחיות חדשות של מועצת הגנת הנתונים האירופית (EDPB), סט ערכות בקרת [NIST CSF](https://www.nist.gov/cyberframework) (למשל NIST SP 800‑53) מעודכנת, או תיקון שפורסם לאחרונה של תקן [ISO 27001](https://www.iso.org/standard/27001).

**Procurize** מתמודדת עם בעיה זו באמצעות **מנוע העשרת גרף ידע דינמי (DKGEE)**. המנוע צורך באופן רציף מקורות רגולטוריים בזמן אמת, ממפה אותם לגרף ידע מאוחד, ומספק ראיות קונטקסטואליות הזמינות מיידית בממשק עריכת השאלונים. התוצאה היא *מקור אמת יחיד* שמתעדכן אוטומטית, מקציר את זמן המענה משעות לדקות, ומבטיח שכל תשובה משקפת את העמדה הצייתנית העדכנית ביותר.

במאמר זה נסקור:

1. מדוע גרף ידע דינמי הוא הקשר החסר בין טיוטות מבוססות‑AI לתשובות מוכנות לביקורת.  
2. ארכיטקטורה, זרימת נתונים, והרכיבים המרכזיים של DKGEE.  
3. איך לשלב את המנוע עם שכבות ניהול המשימות וההערות הקיימות של Procurize.  
4. מחקר מקרה אמיתי עם החזר ROI מדיד.  
5. הנחיות מעשיות לצוותים המעוניינים לאמץ את המנוע כבר היום.

---

## 1. מדוע מאגר ידע סטטי אינו עומד במבחן

| בעיה | מאגר ידע סטטי | גרף ידע דינמי |
|------|----------------|----------------|
| **עדכוני רגולציה** | דורש ייבוא ידני; העדכונים מתעכבים שבועות. | ייבוא אוטומטי של מקורות; עדכונים בתוך דקות. |
| **מיפוי רוחבי של מסגרות** | טבלאות מיפוי ידניות מתיישנות. | קשרי גרף נשמרים עקביים כאשר נוצרים צמתים חדשים. |
| **שחזור ראיות קונטקסטואליות** | חיפוש מילות‑מפתח מחזיר תוצאות רועשות. | נווט גרפי סמנטי מספק ראיות מדוייקות עם שמירת מקור. |
| **בקרת ביקורת** | אין לוג שינוי אוטומטי. | גרסת‑קוד ובגרסה לכל צומת. |

מאגר סטטי יכול לאחסן מדיניות, אך אינו *מבין* כיצד תקנה חדשה – כגון סעיף ב‑GDPR – משנה את פירוש של שליט ISO קיים. DKGEE פותר זאת על‑ידי **מודלינג של המערכת הרגולטורית כגרף**, שבו כל צומת מייצג סעיף, הנחיה, או חומר ראייה, וקשתות מקודדות יחסים של *“דורש”*, *“מבטל”*, או *“מתאים ל”*. כאשר מגיעה תקנה חדשה, הגרף **מועשר באופן אינקרמנטלי**, שומר על היסטוריה והופך את ההשפעה על תשובות קיימות לירוקה מידית.

---

## 2. מבט כולל על הארכיטקטורה

להלן תרשים מרמייד ברמה גבוהה המתאר את צינור DKGEE.

```mermaid
graph TD
    A["אוספי מקורות רגולטוריים"] --> B["שירות קבלה"]
    B --> C["נורמליזציה והפקת ישויות"]
    C --> D["מעדכן גרף"]
    D --> E["גרף ידע דינמי"]
    E --> F["מנוע שחזור קונטקסט"]
    F --> G["ממשק Procurize (בונה שאלונים)"]
    G --> H["מחולל טיוטות LLM"]
    H --> I["סקירת אדם‑ב‑המעגל"]
    I --> J["אחסון תשובה סופית"]
    J --> K["לוג ביקורת וגרסאות"]
```

### 2.1 רכיבים מרכזיים

1. **אוספי מקורות רגולטוריים** – מחברים למקורות רשמיים (הג'ורנל הרשמי של האיחוד האירופי, RSS של NIST, עדכוני ISO), למקורות קהילתיים (חוקים ב‑GitHub) ולשינויים במדיניות ספקים.  
2. **שירות קבלה** – מיקרו‑שירות ב‑**Go** שמוודא תקינות payloads, מזהה כפילויות, ודוחף נתונים גולמיים לנושא Kafka.  
3. **נורמליזציה והפקת ישויות** – משתמש ב‑**spaCy** וב‑מודלים של **Hugging Face** מותאמים לטקסטים משפטיים כדי לחלץ סעיפים, הגדרות, והפניות.  
4. **מעדכן גרף** – מריץ פקודות **Cypher** על מופע **Neo4j**, יוצר או מעדכן צמתים וקשתות תוך שמירת היסטוריית גרסאות.  
5. **גרף ידע דינמי** – מאחסן את כל האקוסיסטמה הרגולטורית. לכל צומת יש מאפיינים: `id`, `source`, `text`, `effectiveDate`, `version`, `confidenceScore`.  
6. **מנוע שחזור קונטקסט** – שירות סגנון **RAG** שמקבל שאלת שאלון, מבצע **ניווט גרפי סמנטי**, מדרג ראיות מועמדות, ומחזיר payload JSON.  
7. **אינטגרציה עם ממשק Procurize** – הקצה הצגה של הצעות הראיות ישירות תחת כל שאלה, כולל הערות אינליין וכפתור “החלה לתשובה”.  
8. **מחולל טיוטות LLM** – מודל **GPT‑4‑Turbo** המשתמש בראיות שהושגו כהקשר ליצירת טיוטת תשובה ראשונית.  
9. **סקירת אדם‑ב‑המעגל** – ק reviewers יכולים לקבל, לערוך או לדחות טיוטות. כל פעולה מתועדת לביקורת.  
10. **אחסון תשובה סופית & לוג ביקורת** – תשובות נשמרות במאגר בלתי‑מתחלף (כגון **AWS QLDB**) עם hash קריפטוגרפי המקשר לגרסת הגרף שבה השתמשו בזמן היצירה.

---

## 3. זרימת נתונים – ממקור לתשובה

1. **קבלת מקור** – מתפרסם תיקון NIST SP 800‑53. אוסף המקורות מושך את ה‑XML, מנרמל ל‑JSON ודוחף ל‑Kafka.  
2. **הפקת ישויות** – מודל ה‑NER מסמן כל שליטה (`AC‑2`, `AU‑6`) ופסקי הדרכה נלווים.  
3. **שינוי גרף** – פקודות `MERGE` מוסיפות צמתים חדשים או מעדכנות את `effectiveDate` של קיימים. קשת `OVERWRITES` מקשרת גרסה חדשה לגרסה הישנה.  
4. **יצירת תחליף** – תוסף **Temporal** של Neo4j קולט תמונת‑מבט (snapshot) עם מזהה גרסה (`graphVersion=2025.11.12.01`).  
5. **הפעלת שאלון** – אנליסט אבטחה פותח שאלון עם השאלה “איך אתם מנהלים הקצאת חשבונות?”  
6. **שחזור קונטקסט** – מנוע השחזור מבצע שאלה על הגרף עבור צמתים הקשורים ל‑`AC‑2` ומסנן לפי תחום המוצר (`SaaS`, `IAM`). מחזיר שני קטעי מדיניות ודוח ביקורת פנימי עדכני.  
7. **טיוטת LLM** – המודל מקבל את הקלט + הראיות ומייצר תשובה תמציתית, עם ציטוטים למזהי הראיות.  
8. **סקירה אנושית** – האנליסט מאשר, מוסיף הערה על שינוי תהליך פנימי, ומאשר.  
9. **לוג ביקורת** – המערכת מתעדת מזהה תצלום הגרף, מזהי הראיות, גרסת ה‑LLM, ו‑ID המשתמש.  

כל השלבים מתבצעים **פחות מ‑30 שניות** עבור פריט שאלון ממוצע.

---

## 4. מדריך יישום

### 4.1 דרישות קדם

| פריט | גרסה מומלצת |
|------|--------------|
| Neo4j | 5.x (Enterprise) |
| Kafka | 3.3.x |
| Go | 1.22 |
| Python | 3.11 (ל‑spaCy & RAG) |
| API LLM | OpenAI GPT‑4‑Turbo (או Azure OpenAI) |
| ענן | AWS (EKS לשירותים, QLDB ללוג) |

### 4.2 שלב‑אחר‑שלב

1. **פריסת אשכול Neo4j** – הפעלת תוספים **Temporal** ו‑**APOC**. יצירת מאגר `regulatory`.  
2. **יצירת נושאי Kafka** – `regulatory_raw`, `graph_updates`, `audit_events`.  
3. **קונפיגורציית אוספי מקור** – חיבור ל‑RSS של האיחוד האירופי, פיד JSON של NIST, וקישור Webhook ל‑GitHub למודלים קהילתיים של SCC. שמירת סודות ב‑**AWS Secrets Manager**.  
4. **הפעלת שירות קבלה** – יצירת תמונת Docker של שירות Go, קביעת משתנה סביבתי `KAFKA_BROKERS`. ניטור עם **Prometheus**.  
5. **פריסת הפקת ישויות** – בניית Docker עם `spaCy>=3.7` והמודל המשפטי המותאם. מנוי ל‑`regulatory_raw` ופרסום ישויות מנורמלות ל‑`graph_updates`.  
6. **מעדכן גרף** – כתיבת מעבד זרם (Kafka Streams ב‑Java) הצורך `graph_updates`, בונה פקודות Cypher, ומבצע אותן ב‑Neo4j. תיוג כל שינוי עם correlation ID.  
7. **שירות שחזור RAG** – חשיפה דרך FastAPI ב‑endpoint `/retrieve`. שימוש ב‑**Sentence‑Transformers** (`all-MiniLM-L6-v2`) לחישוב דמיון סמנטי. ביצוע ניווט גרפי של שני קפיצות: **שאלה → שליטה רלוונטית → ראייה**.  
8. **אינטגרציה עם UI של Procurize** – הוספת רכיב React `EvidenceSuggestionPanel` הקורא ל‑`/retrieve` בעת קבלת פוקוס על שדה שאלה. הצגת תוצאות עם תיבות סימון “החלה”.  
9. **תזמור LLM** – שימוש ב‑OpenAI Chat Completion, העברת הראיות כהודעות מערכת. שמירת מזהה המודל וה‑temperature לצורך משחזרות עתידיות.  
10. **לוג ביקורת** – כתיבת פונקציית Lambda קולטת אירוע `answer_submitted`, כותבת רשומה ל‑QLDB עם SHA‑256 של הטקסט וקישור לתצלום הגרף (`graphVersion`).  

### 4.3 best practices (שיטות מומלצות)

- **קיבוע גרסאות** – שמרו את גרסת המודל LLM ותצלום הגרף עבור כל תשובה.  
- **שמירת נתונים** – שמרו את כלל המקורות הגולמיים לפחות **7 שנים** למטרות ביקורת.  
- **אבטחה** – הצפנת זרמי Kafka ב‑TLS, הפעלת בקרת גישה מבוססת תפקידים ב‑Neo4j, הגבלת הרשאות כתיבה ל‑QLDB רק ל‑Lambda הביקורת.  
- **ניטור ביצועים** – קביעת התראות על זמן תגובה של מנוע השחזור; יעד < 200 ms לכל שאלה.  

---

## 5. השפעה בעולם האמיתי: מחקר מקרה

**חברה:** SecureSoft, ספק SaaS בינוני המתמחה בנתוני בריאות.

| מדד | לפני DKGEE | אחרי DKGEE (חלון של 3 חודשים) |
|------|------------|--------------------------------|
| זמן ממוצע למענה על פריט שאלון | 2.8 שעה | 7 דקות |
| שעות עבודה של חיפוש ראיות (אדם‑שעה) | 120 שעה/חודש | 18 שעה/חודש |
| אי‑התאמות רגולטוריות בביקורות | 5 לשנה | 0 (אין אי‑התאמות) |
| מדד שביעות רצון צוות הציות (NPS) | 28 | 72 |
| ROI (על בסיס חיסכון בעובדים) | — | ~ 210 אלף $ |

**גורמי הצלחה מרכזיים**

1. **הקשר רגולטורי מיידי** – כאשר NIST עדכן את SC‑7, הגרף פרסם הודעה ישירה בממשק, ודרש את הצוות לעדכן תשובות רלוונטיות.  
2. **שימור ראיות** – כל תשובה הציגה קישור לחלק ולגרסה המדויקת, מה שהקנה שביעות רצון מיידית למבקרים.  
3. **חיסול כפילויות** – גרף הידע ביטל אחסון כפול של ראיות בין קווי מוצר שונים, חיסכון של **30 %** בנפח האחסון.  

SecureSoft מתכננת להרחיב את המנוע גם ל‑**הערכת השפעה על פרטיות (PIA)** ולשלב אותו ב‑pipeline של CI/CD לאימות ציות אוטומטי על כל משחרר.

---

## 6. שאלות נפוצות

**ש. האם המנוע תומך בתקנות שאינן באנגלית?**  
ת. כן. צינור ההפקת הישויות כולל מודלים רב‑לשוניים; ניתן להוסיף מחברים למקורות בשפות כגון יפנית (APPI), פורטוגזית (LGPD) וכדומה, והגרף שומר על תיוגי שפה לכל צומת.

**ש. איך מתמודדים עם תקנות סותרות?**  
ת. נוצרים קשתות `CONFLICTS_WITH` כאשר שני צמתים חופפים אך מנחים שונים. מנוע השחזור מדרג ראיות לפי `confidenceScore` המשקלל היררכיה רגולטורית (למשל GDPR גובל על חוק לאומי).

**ש. האם נושא זה יוצר נעילה לספק?**  
ת. לא. כל הרכיבים המרכזיים מבוססים על קוד פתוח (Neo4j, Kafka, FastAPI). רק שירות ה‑LLM הוא שירות חיצוני, אך ניתן להחליפו במודל תואם לממשק OpenAI.

**ש. מהי מדיניות שמירת נתונים לגרף?**  
ת. מומלץ לשמר כל גרסה של צומת בצורה בלתי‑מתחלפת (time‑travel). ניתן להעביר גרסאות ישנות לאחסון קפוא לאחר 3 שנים, ולשמור רק את הגרסה המוכרת לשימוש היום-יומי.

---

## 7. התחלה מידית

1. **הפעלת שכבת האיסוף** – בחרו מקור רגולטורי יחיד (למשל [ISO 27001](https://www.iso.org/standard/27001)) ושדלו אותו למופע Neo4j ניסיוני.  
2. **הרצת שחזור דוגמה** – השתמשו בתסריט `sample_retrieve.py` לקבלת תוצאה לשאלה “מדיניות שמירת נתונים ללקוחות באיחוד האירופי”. בדקו שהקודמת מחזירה צמתי ראיה רלוונטיים.  
3. **שילוב עם שאלון ניסוי** – הפעלו את רכיב ה‑UI בסביבת staging של Procurize, תנו למספר אנליסטים להתנסות ב‑“החלת ראיה”.  
4. **מדוד** – תכוננו מדדים (זמן למענה, חיפושי יד יד) והשוו לאחר שבועיים של שימוש.

לרצונכם לקבל סדנה מעשית, פנו לצוות השירותים המקצועיים של Procurize לקבלת חבילה של **30‑יום ליישום מואץ**.

---

## 8. חזון לעתיד

- **גרפים פדרטיביים** – שיתוף גרף ידע אנונימי בין ארגונים תוך שמירה על ריבונות נתונים.  
- **ביקורת באמצעות הוכחות אפס‑ידע (Zero‑Knowledge Proofs)** – לאפשר למבקרים לאמת ציות ללא חשיפת הראיות בפועל.  
- **חזוי רגולטורי** – שילוב מודלים של סדרת‑זמן לחיזוי תקנות עתידיות והצעת עדכוני מדיניות פרואקטיביים.  

גרף הידע הדינמי איננו מאגר סטטי; הוא **מנוע צייתנות חי** המתפתח עם הנוף הרגולטורי ומניע אוטומציה מבוססת‑AI בקנה מידה רחב.

---

## <span class='highlight-content'>ראו</span> גם

- [העשרה דינמית של גרף ידע – סקירת וידאו](https://www.youtube.com/watch?v=example)