trustgraph/docs/tech-specs/flow-class-definition.he.md
Alex Jenkins 8954fa3ad7 Feat: TrustGraph i18n & Documentation Translation Updates (#781)
Native CLI i18n: The TrustGraph CLI has built-in translation support
that dynamically loads language strings. You can test and use
different languages by simply passing the --lang flag (e.g., --lang
es for Spanish, --lang ru for Russian) or by configuring your
environment's LANG variable.

Automated Docs Translations: This PR introduces autonomously
translated Markdown documentation into several target languages,
including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew,
Arabic, Simplified Chinese, and Russian.
2026-04-14 12:08:32 +01:00

328 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
layout: default
title: "הגדרת מפרט תוכנית זרימה"
parent: "Hebrew (Beta)"
---
<<<<<<< HEAD
# הגדרת מפרט תוכנית זרימה
> **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.
=======
# מפרט הגדרת תוכנית זרימה
>>>>>>> 82edf2d (New md files from RunPod)
## סקירה כללית
תוכנית זרימה מגדירה תבנית מלאה של דפוסי זרימת נתונים במערכת TrustGraph. כאשר היא מופעלת, היא יוצרת רשת מקושרת של מעבדים המטפלים בקליטת נתונים, עיבוד, אחסון ושליפה כחלק ממערכת מאוחדת.
## מבנה
הגדרת תוכנית זרימה מורכבת מחמש קטעים עיקריים:
### 1. קטע מחלקה
<<<<<<< HEAD
מגדיר מעבדי שירות משותפים המופעלים פעם אחת לכל תוכנית זרימה. מעבדים אלה מטפלים בבקשות מכל מופעי הזרימה של מחלקה זו.
=======
מגדיר מעבדים משותפים המופעלים פעם אחת לכל תוכנית זרימה. מעבדים אלה מטפלים בבקשות מכל מופעי הזרימה של מחלקה זו.
>>>>>>> 82edf2d (New md files from RunPod)
```json
"class": {
"service-name:{class}": {
"request": "queue-pattern:{class}",
"response": "queue-pattern:{class}",
"settings": {
"setting-name": "fixed-value",
"parameterized-setting": "{parameter-name}"
}
}
}
```
**מאפיינים:**
משותפים לכל מופעי זרימה מאותו סוג.
בדרך כלל שירותים יקרים או חסרי מצב (מודלים של שפה גדולים, מודלים להטמעה).
השתמשו במשתנה תבנית `{class}` עבור שמות תורים.
הגדרות יכולות להיות ערכים קבועים או פרמטריות באמצעות תחביר `{parameter-name}`.
דוגמאות: `embeddings:{class}`, `text-completion:{class}`, `graph-rag:{class}`
### 2. סעיף זרימה
<<<<<<< HEAD
מגדיר מעבדים ספציפיים לזרימה, אשר מופעלים עבור כל מופע זרימה בודד. לכל זרימה יש סט נפרד משלה של מעבדים אלה.
=======
מגדיר מעבדים ספציפיים לזרימה אשר מופעלים עבור כל מופע זרימה בודד. לכל זרימה יש סט נפרד משלה של מעבדים אלה.
>>>>>>> 82edf2d (New md files from RunPod)
```json
"flow": {
"processor-name:{id}": {
"input": "queue-pattern:{id}",
"output": "queue-pattern:{id}",
"settings": {
"setting-name": "fixed-value",
"parameterized-setting": "{parameter-name}"
}
}
}
```
**מאפיינים:**
מופע ייחודי לכל זרימה
טיפול בנתונים ובמצב ספציפיים לזרימה
שימוש במשתנה תבנית `{id}` עבור שמות תורים
הגדרות יכולות להיות ערכים קבועים או פרמטריות באמצעות תחביר `{parameter-name}`
דוגמאות: `chunker:{id}`, `pdf-decoder:{id}`, `kg-extract-relationships:{id}`
### 3. סעיף ממשקים
מגדיר את נקודות הכניסה ואת חוזי האינטראקציה עבור הזרימה. אלה מהווים את ממשק ה-API עבור מערכות חיצוניות ותקשורת בין רכיבים פנימיים.
ממשקים יכולים לקבל שתי צורות:
<<<<<<< HEAD
**תבנית "שלח ושכח"** (תור יחיד):
=======
**תבנית "שלח והשכח"** (תור יחיד):
>>>>>>> 82edf2d (New md files from RunPod)
```json
"interfaces": {
"document-load": "persistent://tg/flow/document-load:{id}",
"triples-store": "persistent://tg/flow/triples-store:{id}"
}
```
**תבנית בקשה/תגובה** (אובייקט עם שדות בקשה/תגובה):
```json
"interfaces": {
"embeddings": {
"request": "non-persistent://tg/request/embeddings:{class}",
"response": "non-persistent://tg/response/embeddings:{class}"
}
}
```
**סוגי ממשקים:**
<<<<<<< HEAD
**נקודות כניסה:** נקודות שבהן מערכות חיצוניות מזריקות נתונים (`document-load`, `agent`)
**ממשקי שירות:** תבניות בקשה/תגובה עבור שירותים (`embeddings`, `text-completion`)
**ממשקי נתונים:** נקודות חיבור לזרימת נתונים מסוג "שלח וסגור" (`triples-store`, `entity-contexts-load`)
=======
**נקודות כניסה:** נקודות בהן מערכות חיצוניות מזריקות נתונים (`document-load`, `agent`)
**ממשקי שירות:** תבניות בקשה/תגובה עבור שירותים (`embeddings`, `text-completion`)
**ממשקי נתונים:** נקודות חיבור לזרימת נתונים מסוג "שלח ושים" (`triples-store`, `entity-contexts-load`)
>>>>>>> 82edf2d (New md files from RunPod)
### 4. סעיף פרמטרים
ממפה שמות פרמטרים ספציפיים לזרימה להגדרות פרמטרים המאוחסנות באופן מרכזי:
```json
"parameters": {
"model": "llm-model",
"temp": "temperature",
"chunk": "chunk-size"
}
```
**מאפיינים:**
המפתחות הם שמות הפרמטרים המשמשים בהגדרות המעבד (לדוגמה, `{model}`)
הערכים מפנים להגדרות הפרמטרים המאוחסנות ב-schema/config
מאפשר שימוש חוזר בהגדרות פרמטרים נפוצות בין זרימות
מפחית כפילויות של סכימות פרמטרים
### 5. מטא-נתונים
מידע נוסף על תוכנית הזרימה:
```json
"description": "Human-readable description",
"tags": ["capability-1", "capability-2"]
```
## משתנים בתבנית
### משתנים של המערכת
#### {id}
מוחלף במזהה הייחודי של מופע ה-flow
יוצר משאבים מבודדים עבור כל flow
דוגמה: `flow-123`, `customer-A-flow`
#### {class}
מוחלף בשם התבנית של ה-flow
יוצר משאבים משותפים בין flows של אותה תבנית
דוגמה: `standard-rag`, `enterprise-rag`
### משתנים של פרמטרים
#### {parameter-name}
פרמטרים מותאמים אישית המוגדרים בזמן הפעלת ה-flow
שמות הפרמטרים תואמים למפתחות במקטע `parameters` של ה-flow
משמש בהגדרות של מעבדים כדי להתאים אישית את ההתנהגות
דוגמאות: `{model}`, `{temp}`, `{chunk}`
מוחלף בערכים המסופקים בעת הפעלת ה-flow
<<<<<<< HEAD
מאומתים מול הגדרות פרמטרים המאוחסנות באופן מרכזי
=======
מאומתים מול הגדרות פרמטרים המאוחסנות במרכז
>>>>>>> 82edf2d (New md files from RunPod)
## הגדרות מעבד
הגדרות מספקות ערכי תצורה למעבדים בזמן יצירתם. ניתן להגדיר אותן כ:
### הגדרות קבועות
ערכים ישירים שאינם משתנים:
```json
"settings": {
"model": "gemma3:12b",
"temperature": 0.7,
"max_retries": 3
}
```
### הגדרות מותאמות אישית
ערכים המשתמשים בפרמטרים המסופקים בעת הפעלת ה-flow:
```json
"settings": {
"model": "{model}",
"temperature": "{temp}",
"endpoint": "https://{region}.api.example.com"
}
```
שמות הפרמטרים בהגדרות תואמים למפתחות במקטע `parameters` של ה-flow.
### דוגמאות להגדרות
**מעבד LLM עם פרמטרים:**
```json
// In parameters section:
"parameters": {
"model": "llm-model",
"temp": "temperature",
"tokens": "max-tokens",
"key": "openai-api-key"
}
// In processor definition:
"text-completion:{class}": {
"request": "non-persistent://tg/request/text-completion:{class}",
"response": "non-persistent://tg/response/text-completion:{class}",
"settings": {
"model": "{model}",
"temperature": "{temp}",
"max_tokens": "{tokens}",
"api_key": "{key}"
}
}
```
**חלוקה למקטעים עם הגדרות קבועות וניתנות לשינוי:**
```json
// In parameters section:
"parameters": {
"chunk": "chunk-size"
}
// In processor definition:
"chunker:{id}": {
"input": "persistent://tg/flow/chunk:{id}",
"output": "persistent://tg/flow/chunk-load:{id}",
"settings": {
"chunk_size": "{chunk}",
"chunk_overlap": 100,
"encoding": "utf-8"
}
}
```
## תבניות תורים (פולסר)
תבניות זרימה משתמשות ב-Apache Pulsar עבור העברת הודעות. שמות התורים עוקבים אחר הפורמט של פולסר:
```
<persistence>://<tenant>/<namespace>/<topic>
```
### רכיבים:
**persistence**: `persistent` או `non-persistent` (מצב אחסון של Pulsar)
**tenant**: `tg` עבור הגדרות תבניות זרימה המסופקות על ידי TrustGraph
**namespace**: מציין את דפוס העברת ההודעות
`flow`: שירותים מסוג "שלח וגע" (fire-and-forget)
<<<<<<< HEAD
`request`: החלק של הבקשה בשירותי בקשה/תגובה (request/response)
`response`: החלק של התגובה בשירותי בקשה/תגובה (request/response)
=======
`request`: החלק של הבקשה בשירותי "בקשה/תגובה" (request/response)
`response`: החלק של התגובה בשירותי "בקשה/תגובה" (request/response)
>>>>>>> 82edf2d (New md files from RunPod)
**topic**: שם התור/נושא הספציפי עם משתני תבנית
### תורים קבועים (Persistent Queues)
דפוס: `persistent://tg/flow/<topic>:{id}`
משמש עבור שירותים מסוג "שלח וגע" וזרימת נתונים עמידה
<<<<<<< HEAD
הנתונים נשמרים באחסון של Pulsar בין הפעלות מחדש
=======
הנתונים נשמרים באחסון של Pulsar גם לאחר אתחולים מחדש
>>>>>>> 82edf2d (New md files from RunPod)
דוגמה: `persistent://tg/flow/chunk-load:{id}`
### תורים לא קבועים (Non-Persistent Queues)
דפוס: `non-persistent://tg/request/<topic>:{class}` או `non-persistent://tg/response/<topic>:{class}`
<<<<<<< HEAD
משמש עבור דפוסי העברת הודעות מסוג בקשה/תגובה
=======
משמש עבור דפוסי העברת הודעות מסוג "בקשה/תגובה"
>>>>>>> 82edf2d (New md files from RunPod)
זמני, אינו נשמר בדיסק על ידי Pulsar
השהיה נמוכה יותר, מתאים לתקשורת בסגנון RPC
דוגמה: `non-persistent://tg/request/embeddings:{class}`
## ארכיטקטורת זרימת נתונים
תבנית זרימת הנתונים יוצרת זרימה מאוחדת שבה:
1. **צינור עיבוד מסמכים**: זרימה מאיסוף דרך טרנספורמציה לאחסון
2. **שירותי שאילתות**: מעבדים משולבים השואלים את אותם מאגרי נתונים ושירותים
3. **שירותים משותפים**: מעבדים מרכזיים שכל הזרימות יכולות להשתמש בהם
4. **כותבי אחסון**: שומרים נתונים מעובדים לאחסונים המתאימים
כל המעבדים (גם `{id}` וגם `{class}`) עובדים יחד כגרף זרימת נתונים מגובש, ולא כמערכות נפרדות.
## דוגמה להפעלה של זרימה
בהינתן:
מזהה מופע של זרימה: `customer-A-flow`
תבנית זרימה: `standard-rag`
מיפוי פרמטרים של זרימה:
`"model": "llm-model"`
`"temp": "temperature"`
`"chunk": "chunk-size"`
פרמטרים שסופקו על ידי המשתמש:
`model`: `gpt-4`
`temp`: `0.5`
`chunk`: `512`
הרחבות תבניות:
`persistent://tg/flow/chunk-load:{id}``persistent://tg/flow/chunk-load:customer-A-flow`
`non-persistent://tg/request/embeddings:{class}``non-persistent://tg/request/embeddings:standard-rag`
`"model": "{model}"``"model": "gpt-4"`
`"temperature": "{temp}"``"temperature": "0.5"`
`"chunk_size": "{chunk}"``"chunk_size": "512"`
זה יוצר:
<<<<<<< HEAD
צינור עיבוד מסמכים נפרד עבור `customer-A-flow`
=======
צינור עיבוד מסמכים מבודד עבור `customer-A-flow`
>>>>>>> 82edf2d (New md files from RunPod)
שירות הטמעה משותף עבור כל זרימות `standard-rag`
זרימת נתונים שלמה מאיסוף מסמכים דרך שאילתות
מעבדים מוגדרים עם ערכי הפרמטרים שסופקו
## יתרונות
1. **יעילות משאבים**: שירותים יקרים משותפים בין זרימות
2. **בידוד זרימות**: לכל זרימה יש את צינור עיבוד הנתונים שלה
3. **מדרגיות**: ניתן להפעיל מספר זרימות מאותה תבנית
4. **מודולריות**: הפרדה ברורה בין רכיבים משותפים ורכיבים ספציפיים לזרימה
5. **ארכיטקטורה מאוחדת**: שאילתות ועיבוד הם חלק מאותה זרימת נתונים