mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-26 00:46:22 +02:00
281 lines
13 KiB
Markdown
281 lines
13 KiB
Markdown
---
|
||
layout: default
|
||
title: "מפרט טכני לשירות אבחון נתונים מובנים"
|
||
parent: "Hebrew (Beta)"
|
||
---
|
||
|
||
# מפרט טכני לשירות אבחון נתונים מובנים
|
||
|
||
> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
|
||
|
||
## סקירה כללית
|
||
|
||
מפרט זה מתאר שירות חדש הניתן לביצוע לאבחון וניתוח נתונים מובנים בתוך TrustGraph. השירות שואב פונקציונליות מכלי שורת הפקודה הקיים `tg-load-structured-data` ומציג אותו כשירות בקשה/תגובה, ומאפשר גישה תכנותית ליכולות זיהוי סוג נתונים ויצירת תיאורים.
|
||
|
||
השירות תומך בשלוש פעולות עיקריות:
|
||
|
||
1. **זיהוי סוג נתונים**: ניתוח דוגמת נתונים כדי לקבוע את הפורמט שלה (CSV, JSON או XML)
|
||
2. **יצירת תיאור**: יצירת תיאור נתונים מובנים עבור דוגמת נתונים מסוימת וסוג
|
||
3. **אבחון משולב**: ביצוע גם זיהוי סוג וגם יצירת תיאור ברצף
|
||
|
||
## מטרות
|
||
|
||
**מודולריזציה של ניתוח נתונים**: העברת לוגיקת אבחון נתונים משורת הפקודה לרכיבי שירות הניתנים לשימוש חוזר
|
||
**אפשרות לגישה תכנותית**: מתן גישה מבוססת API ליכולות ניתוח נתונים
|
||
**תמיכה במספר פורמטים של נתונים**: טיפול בפורמטי נתונים של CSV, JSON ו-XML באופן עקבי
|
||
**יצירת תיאורים מדויקים**: יצירת תיאורי נתונים מובנים המתאימים בצורה מדויקת לנתוני המקור לתוך סכימות TrustGraph
|
||
**שמירה על תאימות לאחור**: הבטחה שפונקציונליות קיימת של שורת הפקודה תמשיך לעבוד
|
||
**אפשרות לחיבור שירותים**: לאפשר לשירותים אחרים לנצל יכולות אבחון נתונים
|
||
**שיפור יכולת בדיקה**: הפרדת לוגיקה עסקית מממשק שורת הפקודה לצורך בדיקות טובות יותר
|
||
**תמיכה בניתוח סטרימינג**: אפשרות לניתוח דוגמאות נתונים מבלי לטעון קבצים שלמים
|
||
|
||
## רקע
|
||
|
||
כיום, הפקודה `tg-load-structured-data` מספקת פונקציונליות מקיפה לניתוח נתונים מובנים ויצירת תיאורים. עם זאת, פונקציונליות זו קשורה הדוקות לממשק שורת הפקודה, מה שמגביל את יכולת השימוש החוזר בה.
|
||
|
||
מגבלות נוכחיות כוללות:
|
||
לוגיקת אבחון נתונים מוטמעת בקוד שורת הפקודה
|
||
אין גישה תכנותית לזיהוי סוג ויצירת תיאורים
|
||
קשה לשלב יכולות אבחון בשירותים אחרים
|
||
יכולת מוגבלת ליצור זרימות עבודה לניתוח נתונים
|
||
|
||
מפרט זה מתייחס לפערים אלה על ידי יצירת שירות ייעודי לאבחון נתונים מובנים. על ידי חשיפת יכולות אלה כשירות, TrustGraph יכולה:
|
||
לאפשר לשירותים אחרים לנתח נתונים באופן תכנותי
|
||
לתמוך בצינורות עיבוד נתונים מורכבים יותר
|
||
להקל על שילוב עם מערכות חיצוניות
|
||
לשפר את תחזוקת המערכת באמצעות הפרדת אחריות
|
||
|
||
## עיצוב טכני
|
||
|
||
### ארכיטקטורה
|
||
|
||
שירות האבחון של נתונים מובנים דורש את הרכיבים הטכניים הבאים:
|
||
|
||
1. **מעבד שירות אבחון**
|
||
מטפל בבקשות אבחון נכנסות
|
||
מתאם זיהוי סוג ויצירת תיאורים
|
||
מחזיר תגובות מובנות עם תוצאות אבחון
|
||
|
||
מודול: `trustgraph-flow/trustgraph/diagnosis/structured_data/service.py`
|
||
|
||
2. **מגַלֶּה סוג נתונים**
|
||
משתמש בגילוי אלגוריתמי כדי לזהות פורמט נתונים (CSV, JSON, XML)
|
||
מנתח מבנה נתונים, מפרידים ותבניות תחביר
|
||
מחזיר פורמט מזוהה וציוני אמון
|
||
|
||
מודול: `trustgraph-flow/trustgraph/diagnosis/structured_data/type_detector.py`
|
||
|
||
3. **יוצר תיאורים**
|
||
משתמש בשירות פרומפטים כדי ליצור תיאורים
|
||
מפעיל פרומפטים ספציפיים לפורמט (diagnose-csv, diagnose-json, diagnose-xml)
|
||
ממפה שדות נתונים לשדות סכימת TrustGraph באמצעות תגובות פרומפטים
|
||
|
||
מודול: `trustgraph-flow/trustgraph/diagnosis/structured_data/descriptor_generator.py`
|
||
|
||
### מודלים של נתונים
|
||
|
||
#### StructuredDataDiagnosisRequest
|
||
|
||
הודעת בקשה לפעולות אבחון נתונים מובנים:
|
||
|
||
```python
|
||
class StructuredDataDiagnosisRequest:
|
||
operation: str # "detect-type", "generate-descriptor", or "diagnose"
|
||
sample: str # Data sample to analyze (text content)
|
||
type: Optional[str] # Data type (csv, json, xml) - required for generate-descriptor
|
||
schema_name: Optional[str] # Target schema name for descriptor generation
|
||
options: Dict[str, Any] # Additional options (e.g., delimiter for CSV)
|
||
```
|
||
|
||
#### תגובת אבחון נתונים מובנים
|
||
|
||
הודעת תגובה המכילה תוצאות אבחון:
|
||
|
||
```python
|
||
class StructuredDataDiagnosisResponse:
|
||
operation: str # The operation that was performed
|
||
detected_type: Optional[str] # Detected data type (for detect-type/diagnose)
|
||
confidence: Optional[float] # Confidence score for type detection
|
||
descriptor: Optional[Dict] # Generated descriptor (for generate-descriptor/diagnose)
|
||
error: Optional[str] # Error message if operation failed
|
||
metadata: Dict[str, Any] # Additional metadata (e.g., field count, sample records)
|
||
```
|
||
|
||
#### מבנה תיאור
|
||
|
||
התיאור שנוצר עוקב אחר פורמט התיאור המובנה הקיים:
|
||
|
||
```json
|
||
{
|
||
"format": {
|
||
"type": "csv",
|
||
"encoding": "utf-8",
|
||
"options": {
|
||
"delimiter": ",",
|
||
"has_header": true
|
||
}
|
||
},
|
||
"mappings": [
|
||
{
|
||
"source_field": "customer_id",
|
||
"target_field": "id",
|
||
"transforms": [
|
||
{"type": "trim"}
|
||
]
|
||
}
|
||
],
|
||
"output": {
|
||
"schema_name": "customer",
|
||
"options": {
|
||
"batch_size": 1000,
|
||
"confidence": 0.9
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### ממשק שירות
|
||
|
||
השירות יחשוף את הפעולות הבאות באמצעות תבנית בקשה/תגובה:
|
||
|
||
1. **פעולת זיהוי סוג**
|
||
קלט: דוגמת נתונים
|
||
עיבוד: ניתוח מבנה הנתונים באמצעות זיהוי אלגוריתמי
|
||
פלט: סוג מזוהה עם ציון אמון
|
||
|
||
2. **פעולת יצירת תיאור**
|
||
קלט: דוגמת נתונים, סוג, שם סכימה יעד
|
||
עיבוד:
|
||
הפעלת שירות הפרומפט עם מזהה הפרומפט הספציפי לפורמט (diagnose-csv, diagnose-json או diagnose-xml)
|
||
העברת דוגמת הנתונים והסכימות הזמינות לפרומפט
|
||
קבלת התיאור שנוצר מתגובת הפרומפט
|
||
פלט: תיאור נתונים מובנים
|
||
|
||
3. **פעולת אבחון משולבת**
|
||
קלט: דוגמת נתונים, שם סכימה אופציונלי
|
||
עיבוד:
|
||
שימוש בזיהוי אלגוריתמי לזיהוי הפורמט תחילה
|
||
בחירת פרומפט ספציפי לפורמט בהתאם לסוג המזוהה
|
||
הפעלת שירות הפרומפט ליצירת תיאור
|
||
פלט: גם הסוג המזוהה וגם התיאור
|
||
|
||
### פרטי יישום
|
||
|
||
השירות יפעל בהתאם לקונבנציות של שירות TrustGraph:
|
||
|
||
1. **רישום שירות**
|
||
רישום כסוג שירות `structured-diag`
|
||
שימוש בנושאים סטנדרטיים של בקשה/תגובה
|
||
יישום מחלקת FlowProcessor בסיסית
|
||
רישום PromptClientSpec עבור אינטראקציה עם שירות הפרומפט
|
||
|
||
2. **ניהול תצורה**
|
||
גישה לתצורות סכימה באמצעות שירות התצורה
|
||
שמירת סכימות במטמון לביצועים
|
||
טיפול בעדכוני תצורה באופן דינמי
|
||
|
||
3. **שילוב פרומפט**
|
||
שימוש בתשתית קיימת של שירות הפרומפט
|
||
הפעלת שירות הפרומפט עם מזהי פרומפט ספציפיים לפורמט:
|
||
`diagnose-csv`: לניתוח נתוני CSV
|
||
`diagnose-json`: לניתוח נתוני JSON
|
||
`diagnose-xml`: לניתוח נתוני XML
|
||
הפרומפטים מוגדרים בתצורת הפרומפט, ולא מקודדים קשות בשירות
|
||
העברת סכימות ודוגמאות נתונים כמשתני פרומפט
|
||
ניתוח תגובות פרומפט לחילוץ תיאורים
|
||
|
||
4. **טיפול בשגיאות**
|
||
אימות דוגמאות נתונים
|
||
מתן הודעות שגיאה תיאוריות
|
||
טיפול מסודר בנתונים פגומים
|
||
טיפול בכשלים בשירות הפרומפט
|
||
|
||
5. **דגימת נתונים**
|
||
עיבוד גדלי דגימה הניתנים לתצורה
|
||
טיפול מתאים ברשומות חסרות
|
||
שמירה על עקביות דגימה
|
||
|
||
### שילוב API
|
||
|
||
השירות ישולב עם ממשקי TrustGraph קיימים:
|
||
|
||
רכיבים שעברו שינוי:
|
||
`tg-load-structured-data` CLI - שופץ לשימוש בשירות החדש לפעולות אבחון
|
||
Flow API - הורחב לתמיכה בבקשות אבחון נתונים מובנים
|
||
|
||
נקודות שירות חדשות:
|
||
`/api/v1/flow/{flow}/diagnose/structured-data` - נקודת קצה WebSocket לבקשות אבחון
|
||
`/api/v1/diagnose/structured-data` - נקודת קצה REST לאבחון סינכרוני
|
||
|
||
### זרימת הודעות
|
||
|
||
```
|
||
Client → Gateway → Structured Diag Service → Config Service (for schemas)
|
||
↓
|
||
Type Detector (algorithmic)
|
||
↓
|
||
Prompt Service (diagnose-csv/json/xml)
|
||
↓
|
||
Descriptor Generator (parses prompt response)
|
||
↓
|
||
Client ← Gateway ← Structured Diag Service (response)
|
||
```
|
||
|
||
## שיקולי אבטחה
|
||
|
||
אימות קלט למניעת התקפות הזרקה
|
||
מגבלות גודל על דוגמאות נתונים למניעת התקפות מניעת שירות (DoS)
|
||
ניקוי של מזהים שנוצרו
|
||
בקרת גישה באמצעות אימות TrustGraph הקיים
|
||
|
||
## שיקולי ביצועים
|
||
|
||
שמירת הגדרות סכימה במטמון להפחתת קריאות לשירות התצורה
|
||
הגבלת גודל הדוגמאות לשמירה על ביצועים מהירים
|
||
שימוש בעיבוד סטרימינג עבור דוגמאות נתונים גדולות
|
||
הטמעת מנגנוני זמן קצוב עבור ניתוחים ארוכים
|
||
|
||
## אסטרטגיית בדיקות
|
||
|
||
1. **בדיקות יחידה**
|
||
זיהוי סוג עבור פורמטי נתונים שונים
|
||
דיוק יצירת מזהים
|
||
תרחישי טיפול בשגיאות
|
||
|
||
2. **בדיקות אינטגרציה**
|
||
זרימת בקשות/תגובות של שירות
|
||
שליפה ושמירה במטמון של סכימות
|
||
אינטגרציה עם שורת הפקודה (CLI)
|
||
|
||
3. **בדיקות ביצועים**
|
||
עיבוד של דוגמאות גדולות
|
||
טיפול בבקשות מקבילות
|
||
שימוש בזיכרון בתנאי עומס
|
||
|
||
## תוכנית מעבר
|
||
|
||
1. **שלב 1**: הטמעת שירות עם פונקציונליות בסיסית
|
||
2. **שלב 2**: שינוי שורת הפקודה (CLI) לשימוש בשירות (שמירה על תאימות לאחור)
|
||
3. **שלב 3**: הוספת נקודות קצה של ממשק API REST
|
||
4. **שלב 4**: הפסקת השימוש בלוגיקה מוטמעת של שורת הפקודה (עם תקופת התראה)
|
||
|
||
## ציר זמן
|
||
|
||
שבוע 1-2: הטמעת שירות וזיהוי סוג בסיסי
|
||
שבוע 3-4: הוספת יצירת מזהים ואינטגרציה
|
||
שבוע 5: בדיקות ותיעוד
|
||
שבוע 6: שינוי שורת הפקודה (CLI) ומעבר
|
||
|
||
## שאלות פתוחות
|
||
|
||
האם השירות צריך לתמוך בפורמטי נתונים נוספים (לדוגמה, Parquet, Avro)?
|
||
מהו גודל הדוגמה המקסימלי לניתוח?
|
||
האם תוצאות האבחון צריכות להיות שמורות במטמון עבור בקשות חוזרות?
|
||
כיצד השירות צריך להתמודד עם תרחישים של סכימות מרובות?
|
||
האם מזהי הבקשות צריכים להיות פרמטרים הניתנים להגדרה עבור השירות?
|
||
|
||
## הפניות
|
||
|
||
[מפרט מזהה נתונים מובנים](structured-data-descriptor.md)
|
||
[תיעוד טעינת נתונים מובנים](structured-data.md)
|
||
`tg-load-structured-data` יישום: `trustgraph-cli/trustgraph/cli/load_structured_data.py`
|