mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
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.
590 lines
32 KiB
Markdown
590 lines
32 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.
|
||
|
||
## סקירה כללית
|
||
|
||
<<<<<<< HEAD
|
||
מפרט זה מתאר את יישום הפרמטרים הניתנים להגדרה עבור תבניות זרימה ב-TrustGraph. פרמטרים מאפשרים למשתמשים להתאים אישית את פרמטרי המעבד בזמן הפעלת הזרימה על ידי מתן ערכים המחליפים את מקומות הפרמטרים בהגדרת תבנית הזרימה.
|
||
=======
|
||
מפרט זה מתאר את יישום הפרמטרים הניתנים להגדרה עבור תבניות זרימה ב-TrustGraph. פרמטרים מאפשרים למשתמשים להתאים אישית את פרמטרי המעבד בזמן הפעלת הזרימה על ידי מתן ערכים שמחליפים את מקומות הפרמטרים בהגדרת תבנית הזרימה.
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
פרמטרים פועלים באמצעות החלפת משתנים בתבניות בפרמטרי המעבד, בדומה לאופן שבו משתנים `{id}` ו-`{class}` פועלים, אך עם ערכים שמסופקים על ידי המשתמש.
|
||
|
||
האינטגרציה תומכת בארבעה תרחישי שימוש עיקריים:
|
||
|
||
1. **בחירת מודל**: לאפשר למשתמשים לבחור מודלים שונים של LLM (לדוגמה, `gemma3:8b`, `gpt-4`, `claude-3`) עבור מעבדים.
|
||
2. **תצורת משאבים**: התאמת פרמטרי מעבד כגון גודל חבילות, גודל אצווה ומגבלות מקביליות.
|
||
<<<<<<< HEAD
|
||
3. **כוונון התנהגות**: שינוי התנהגות המעבד באמצעות פרמטרים כגון טמפרטורה, מקסימום טוקנים או ספי תאחזור.
|
||
=======
|
||
3. **כוונון התנהגות**: שינוי התנהגות המעבד באמצעות פרמטרים כגון טמפרטורה, מקסימום טוקנים או ספי הצעת מחיר.
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
4. **פרמטרים ספציפיים לסביבה**: הגדרת נקודות קצה, מפתחות API או כתובות URL ספציפיות לאזור עבור כל פריסה.
|
||
|
||
## מטרות
|
||
|
||
**תצורת מעבד דינמית**: לאפשר תצורת זמן ריצה של פרמטרי מעבד באמצעות החלפת פרמטרים.
|
||
**אימות פרמטרים**: לספק בדיקת סוג ואימות עבור פרמטרים בזמן הפעלת הזרימה.
|
||
**ערכי ברירת מחדל**: לתמוך בערכי ברירת מחדל הגיוניים תוך מתן אפשרות לשנות אותם עבור משתמשים מתקדמים.
|
||
**החלפת תבניות**: להחליף בצורה חלקה את מקומות הפרמטרים בפרמטרי המעבד.
|
||
**אינטגרציה עם ממשק משתמש**: לאפשר הזנת פרמטרים באמצעות ממשקי API וממשקי משתמש.
|
||
**בטיחות סוגים**: להבטיח שטיפוסי הפרמטרים תואמים לטיפוסי פרמטרי המעבד הצפויים.
|
||
<<<<<<< HEAD
|
||
**תיעוד**: סכימות פרמטרים המתועדות באופן עצמי בתוך הגדרות תבניות הזרימה.
|
||
=======
|
||
**תיעוד**: סכימות פרמטרים המתועדות באופן עצמי בתוך הגדרות תבניות זרימה.
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
**תאימות לאחור**: לשמור על תאימות לתבניות זרימה קיימות שאינן משתמשות בפרמטרים.
|
||
|
||
## רקע
|
||
|
||
<<<<<<< HEAD
|
||
תבניות זרימה ב-TrustGraph תומכות כעת בפרמטרי מעבד שניתן להכיל ערכים קבועים או מקומות שמירת פרמטרים. זה יוצר הזדמנות להתאמה אישית בזמן ריצה.
|
||
|
||
פרמטרי מעבד קיימים תומכים ב:
|
||
ערכים קבועים: `"model": "gemma3:12b"`
|
||
מקומות שמירת פרמטרים: `"model": "gemma3:{model-size}"`
|
||
=======
|
||
תבניות זרימה ב-TrustGraph תומכות כעת בפרמטרי מעבד שניתן להכיל ערכים קבועים או מקומות פרמטרים. זה יוצר הזדמנות להתאמה אישית בזמן ריצה.
|
||
|
||
פרמטרי מעבד קיימים תומכים ב:
|
||
ערכים קבועים: `"model": "gemma3:12b"`
|
||
מקומות פרמטרים: `"model": "gemma3:{model-size}"`
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
מפרט זה מגדיר כיצד פרמטרים:
|
||
מוצהרים בהגדרות תבניות זרימה
|
||
מאומתים כאשר זרימות מופעלות
|
||
מוכנסים לפרמטרי מעבד
|
||
נחשפים באמצעות ממשקי API וממשקי משתמש
|
||
|
||
<<<<<<< HEAD
|
||
על ידי שימוש בפרמטרי מעבד מוגדרים, TrustGraph יכולה:
|
||
=======
|
||
על ידי שימוש בפרמטרי מעבד מותאמים אישית, TrustGraph יכולה:
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
להפחית שכפול של תבניות זרימה על ידי שימוש בפרמטרים עבור וריאציות
|
||
לאפשר למשתמשים לכוונן את התנהגות המעבד מבלי לשנות הגדרות
|
||
לתמוך בתצורות ספציפיות לסביבה באמצעות ערכי פרמטרים
|
||
לשמור על בטיחות סוגים באמצעות אימות סכימת פרמטרים
|
||
|
||
## עיצוב טכני
|
||
|
||
### ארכיטקטורה
|
||
|
||
מערכת הפרמטרים הניתנים להגדרה דורשת את הרכיבים הטכניים הבאים:
|
||
|
||
1. **הגדרת סכימת פרמטרים**
|
||
<<<<<<< HEAD
|
||
הגדרות פרמטרים מבוססות סכימת JSON בתוך מטא-נתונים של תבניות זרימה
|
||
הגדרות סוגים כולל מחרוזות, מספרים, בוליאנים, enum ואובייקטים
|
||
כללי אימות כולל ערכים מינימליים/מקסימליים, תבניות ושדות חובה
|
||
=======
|
||
הגדרות פרמטרים המבוססות על סכימת JSON בתוך מטא-נתונים של תבניות זרימה
|
||
הגדרות סוגים כולל מחרוזות, מספרים, בוליאנים, enum ואובייקטים
|
||
כללי אימות כולל ערכים מינימליים/מקסימליים, תבניות ושדות נדרשים
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
מודול: trustgraph-flow/trustgraph/flow/definition.py
|
||
|
||
2. **מנוע פתרון פרמטרים**
|
||
אימות פרמטרים בזמן ריצה מול סכימה
|
||
יישום ערכי ברירת מחדל עבור פרמטרים לא מוגדרים
|
||
הכנסת פרמטרים להקשר ביצוע הזרימה
|
||
המרה והסבה של סוגים לפי הצורך
|
||
|
||
מודול: trustgraph-flow/trustgraph/flow/parameter_resolver.py
|
||
|
||
3. **אינטגרציה עם מאגר פרמטרים**
|
||
אחזור הגדרות פרמטרים ממערכת סכימות/תצורה
|
||
שמירת פרמטרי הגדרה בשימוש תכוף
|
||
אימות מול סכימות המאוחסנות באופן מרכזי
|
||
|
||
מודול: trustgraph-flow/trustgraph/flow/parameter_store.py
|
||
|
||
4. **הרחבות משגר זרימה**
|
||
הרחבות API לקבלת ערכי פרמטרים במהלך הפעלת זרימה
|
||
רזולוציית מיפוי פרמטרים (שמות זרימה לשמות הגדרה)
|
||
טיפול בשגיאות עבור שילובים לא חוקיים של פרמטרים
|
||
|
||
מודול: trustgraph-flow/trustgraph/flow/launcher.py
|
||
|
||
5. **טפסי פרמטרים של ממשק משתמש**
|
||
יצירת טפסים דינמיים ממטא-נתוני פרמטרים של זרימה
|
||
תצוגה מסודרת של פרמטרים באמצעות שדה `order`
|
||
תגיות תיאוריות של פרמטרים באמצעות שדה `description`
|
||
אימות קלט מול הגדרות סוג פרמטרים
|
||
<<<<<<< HEAD
|
||
ערכות מקדימות ותבניות פרמטרים
|
||
=======
|
||
ערכות חכמות ותבניות פרמטרים
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
מודול: trustgraph-ui/components/flow-parameters/
|
||
|
||
### מודלים של נתונים
|
||
|
||
#### הגדרות פרמטרים (מאוחסנות בסכימה/תצורה)
|
||
|
||
הגדרות פרמטרים מאוחסנות באופן מרכזי במערכת הסכימות והתצורה עם סוג "parameter-type":
|
||
<<<<<<< HEAD
|
||
פלט חוזה (יש לעקוב בדיוק אחר הפורמט הבא).
|
||
=======
|
||
פלט חוזה (יש לעקוב אחר הפורמט המדויק).
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
```json
|
||
{
|
||
"llm-model": {
|
||
"type": "string",
|
||
"description": "LLM model to use",
|
||
"default": "gpt-4",
|
||
"enum": [
|
||
{
|
||
"id": "gpt-4",
|
||
"description": "OpenAI GPT-4 (Most Capable)"
|
||
},
|
||
{
|
||
"id": "gpt-3.5-turbo",
|
||
"description": "OpenAI GPT-3.5 Turbo (Fast & Efficient)"
|
||
},
|
||
{
|
||
"id": "claude-3",
|
||
"description": "Anthropic Claude 3 (Thoughtful & Safe)"
|
||
},
|
||
{
|
||
"id": "gemma3:8b",
|
||
"description": "Google Gemma 3 8B (Open Source)"
|
||
}
|
||
],
|
||
"required": false
|
||
},
|
||
"model-size": {
|
||
"type": "string",
|
||
"description": "Model size variant",
|
||
"default": "8b",
|
||
"enum": ["2b", "8b", "12b", "70b"],
|
||
"required": false
|
||
},
|
||
"temperature": {
|
||
"type": "number",
|
||
"description": "Model temperature for generation",
|
||
"default": 0.7,
|
||
"minimum": 0.0,
|
||
"maximum": 2.0,
|
||
"required": false
|
||
},
|
||
"chunk-size": {
|
||
"type": "integer",
|
||
"description": "Document chunk size",
|
||
"default": 512,
|
||
"minimum": 128,
|
||
"maximum": 2048,
|
||
"required": false
|
||
}
|
||
}
|
||
```
|
||
|
||
#### תרשים זרימה עם הפניות לפרמטרים
|
||
|
||
תרשימי זרימה מגדירים מטא-נתונים של פרמטרים עם הפניות לסוג, תיאורים וסדר:
|
||
|
||
```json
|
||
{
|
||
"flow_class": "document-analysis",
|
||
"parameters": {
|
||
"llm-model": {
|
||
"type": "llm-model",
|
||
"description": "Primary LLM model for text completion",
|
||
"order": 1
|
||
},
|
||
"llm-rag-model": {
|
||
"type": "llm-model",
|
||
"description": "LLM model for RAG operations",
|
||
"order": 2,
|
||
"advanced": true,
|
||
"controlled-by": "llm-model"
|
||
},
|
||
"llm-temperature": {
|
||
"type": "temperature",
|
||
"description": "Generation temperature for creativity control",
|
||
"order": 3,
|
||
"advanced": true
|
||
},
|
||
"chunk-size": {
|
||
"type": "chunk-size",
|
||
"description": "Document chunk size for processing",
|
||
"order": 4,
|
||
"advanced": true
|
||
},
|
||
"chunk-overlap": {
|
||
"type": "integer",
|
||
"description": "Overlap between document chunks",
|
||
"order": 5,
|
||
"advanced": true,
|
||
"controlled-by": "chunk-size"
|
||
}
|
||
},
|
||
"class": {
|
||
"text-completion:{class}": {
|
||
"request": "non-persistent://tg/request/text-completion:{class}",
|
||
"response": "non-persistent://tg/response/text-completion:{class}",
|
||
"parameters": {
|
||
"model": "{llm-model}",
|
||
"temperature": "{llm-temperature}"
|
||
}
|
||
},
|
||
"rag-completion:{class}": {
|
||
"request": "non-persistent://tg/request/rag-completion:{class}",
|
||
"response": "non-persistent://tg/response/rag-completion:{class}",
|
||
"parameters": {
|
||
"model": "{llm-rag-model}",
|
||
"temperature": "{llm-temperature}"
|
||
}
|
||
}
|
||
},
|
||
"flow": {
|
||
"chunker:{id}": {
|
||
"input": "persistent://tg/flow/chunk:{id}",
|
||
"output": "persistent://tg/flow/chunk-load:{id}",
|
||
"parameters": {
|
||
"chunk_size": "{chunk-size}",
|
||
"chunk_overlap": "{chunk-overlap}"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
הסעיף `parameters` ממפה שמות פרמטרים ספציפיים לזרימה (מפתחות) לאובייקטי מטא-נתונים של פרמטרים המכילים:
|
||
`type`: הפניה להגדרה מרכזית של פרמטר (לדוגמה, "llm-model")
|
||
`description`: תיאור קריא לבני אדם לצורך הצגה בממשק המשתמש
|
||
`order`: סדר הצגה של טפסי פרמטרים (מספרים נמוכים יותר מופיעים ראשונים)
|
||
`advanced` (אופציונלי): דגל בוליאני המציין אם זהו פרמטר מתקדם (ברירת מחדל: false). כאשר מוגדר כ-true, הממשק המשתמש עשוי להסתיר את הפרמטר הזה כברירת מחדל או למקם אותו בסעיף "מתקדם"
|
||
`controlled-by` (אופציונלי): שם של פרמטר אחר השולט בערך של הפרמטר הזה במצב פשוט. כאשר מצוין, פרמטר זה יורש את הערך שלו מהפרמטר השולט, אלא אם כן הוא מוגדר במפורש אחרת
|
||
|
||
גישה זו מאפשרת:
|
||
הגדרות סוג פרמטרים שניתן לעשות בהן שימוש חוזר במספר תבניות זרימה
|
||
ניהול ובדיקת תוקף מרכזיים של סוגי פרמטרים
|
||
תיאורים וסדר הצגה ספציפיים לזרימה של פרמטרים
|
||
חוויית ממשק משתמש משופרת עם טפסי פרמטרים תיאוריים
|
||
בדיקת תוקף עקבית של פרמטרים בכל הזרימות
|
||
הוספה קלה של סוגי פרמטרים סטנדרטיים חדשים
|
||
ממשק משתמש מפושט עם הפרדה בין מצב בסיסי/מתקדם
|
||
ירושת ערכי פרמטרים עבור הגדרות קשורות
|
||
|
||
#### בקשת הפעלת זרימה
|
||
|
||
ממשק ה-API להפעלת זרימה מקבל פרמטרים באמצעות שמות הפרמטרים של הזרימה:
|
||
|
||
```json
|
||
{
|
||
"flow_class": "document-analysis",
|
||
"flow_id": "customer-A-flow",
|
||
"parameters": {
|
||
"llm-model": "claude-3",
|
||
"llm-temperature": 0.5,
|
||
"chunk-size": 1024
|
||
}
|
||
}
|
||
```
|
||
|
||
<<<<<<< HEAD
|
||
הערה: בדוגמה זו, `llm-rag-model` אינו מסופק באופן מפורש, אך הוא יירש את הערך "claude-3" מ-`llm-model` בשל הקשר `controlled-by` שלו. באופן דומה, `chunk-overlap` יכול לרשת ערך מחושב המבוסס על `chunk-size`.
|
||
=======
|
||
הערה: בדוגמה זו, `llm-rag-model` אינו מסופק באופן מפורש, אך הוא יירש את הערך "claude-3" מ-`llm-model` עקב הקשר `controlled-by` שלו. באופן דומה, `chunk-overlap` יכול לרשת ערך מחושב המבוסס על `chunk-size`.
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
המערכת תבצע את הפעולות הבאות:
|
||
1. חילוץ מטא-נתונים של פרמטרים מהגדרת תבנית זרימה
|
||
2. מיפוי שמות פרמטרים של זרימה להגדרות הסוג שלהם (לדוגמה, `llm-model` → סוג `llm-model`)
|
||
3. פתרון קשרים "שולט ב" (controlled-by) (לדוגמה, `llm-rag-model` יורש מ-`llm-model`)
|
||
4. אימות ערכים שסופקו על ידי המשתמש וערכים שירשו בהתאם להגדרות הסוג של הפרמטרים
|
||
<<<<<<< HEAD
|
||
5. החלפת ערכים שפתורים לתוך פרמטרים של מעבדים במהלך יצירת זרימה
|
||
=======
|
||
5. החלפת ערכים פתורים לפרמטרים של מעבדים במהלך יצירת זרימה
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
### פרטי יישום
|
||
|
||
#### תהליך פתרון פרמטרים
|
||
|
||
כאשר זרימה מתחילה, המערכת מבצעת את שלבי פתרון הפרמטרים הבאים:
|
||
|
||
1. **טעינת תבנית זרימה**: טעינת הגדרת תבנית זרימה וחילוץ מטא-נתונים של פרמטרים
|
||
2. **חילוץ מטא-נתונים**: חילוץ `type`, `description`, `order`, `advanced` ו-`controlled-by` עבור כל פרמטר המוגדר בתבנית הזרימה בסעיף `parameters`
|
||
3. **חיפוש הגדרת סוג**: עבור כל פרמטר בתבנית הזרימה:
|
||
<<<<<<< HEAD
|
||
אחזור הגדרת הסוג של הפרמטר ממחסן הסכימה/התצורה באמצעות השדה `type`
|
||
הגדרות הסוג מאוחסנות עם הסוג "parameter-type" במערכת התצורה
|
||
=======
|
||
אחזור הגדרת הסוג של הפרמטר ממחסן הסכימה/הגדרות באמצעות השדה `type`
|
||
הגדרות הסוג מאוחסנות עם הסוג "parameter-type" במערכת ההגדרות
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
כל הגדרת סוג מכילה את הסכימה של הפרמטר, ערך ברירת מחדל וכללי אימות
|
||
4. **פתרון ערך ברירת מחדל**:
|
||
עבור כל פרמטר המוגדר בתבנית הזרימה:
|
||
בדיקה האם המשתמש סיפק ערך עבור פרמטר זה
|
||
אם לא סופק ערך על ידי המשתמש, השתמש בערך `default` מהגדרת סוג הפרמטר
|
||
<<<<<<< HEAD
|
||
יצירת מפת פרמטרים שלמה המכילה הן ערכים שסופקו על ידי המשתמש והן ערכי ברירת מחדל
|
||
5. **פתרון ירושה של פרמטרים** (קשרים "שולט ב"):
|
||
עבור פרמטרים עם שדה `controlled-by`, בדוק האם סופק ערך באופן מפורש
|
||
אם לא סופק ערך מפורש, יורשים את הערך מהפרמטר השולט
|
||
אם גם לפרמטר השולט אין ערך, משתמשים בברירת המחדל מהגדרת הסוג
|
||
אימות שאין תלות מעגלית בקשרי `controlled-by`
|
||
6. **אימות**: אימות קבוצת הפרמטרים השלמה (ערכים שסופקו על ידי המשתמש, ברירות מחדל וערכים שירשו) בהתאם להגדרות הסוג
|
||
7. **אחסון**: אחסון קבוצת הפרמטרים השלמה שפתורה עם מופע הזרימה לצורך ביקורת
|
||
8. **החלפת תבניות**: החלפת מקומות שמורות של פרמטרים בפרמטרים של מעבדים עם ערכים שפתורים
|
||
=======
|
||
יצירת מפת פרמטרים שלמה המכילה גם ערכים שסופקו על ידי המשתמש וגם ערכי ברירת מחדל
|
||
5. **פתרון ירושה של פרמטרים** (קשרים "שולט ב"):
|
||
עבור פרמטרים עם שדה `controlled-by`, בדוק האם סופק ערך באופן מפורש
|
||
אם לא סופק ערך מפורש, ירוש את הערך מהפרמטר השולט
|
||
אם גם לפרמטר השולט אין ערך, השתמש בברירת המחדל מהגדרת הסוג
|
||
ודא שאין תלות מעגלית בקשרי `controlled-by`
|
||
6. **אימות**: אימות קבוצת הפרמטרים השלמה (ערכים שסופקו על ידי המשתמש, ברירות מחדל וערכים שירשו) בהתאם להגדרות הסוג
|
||
7. **אחסון**: אחסון קבוצת הפרמטרים הפתורים השלמה עם מופע הזרימה לצורך ביקורת
|
||
8. **החלפת תבניות**: החלפת מקומות שמורות של פרמטרים בפרמטרים של מעבדים עם ערכים פתורים
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
9. **יצירת מעבדים**: יצירת מעבדים עם פרמטרים שהוחלפו
|
||
|
||
**הערות חשובות ליישום:**
|
||
שירות הזרימה חייב למזג פרמטרים שסופקו על ידי המשתמש עם ברירות מחדל מהגדרות סוג הפרמטרים
|
||
קבוצת הפרמטרים השלמה (כולל ברירות המחדל המיושמות) חייבת להיות מאוחסנת עם הזרימה לצורך מעקב
|
||
פתרון פרמטרים מתרחש בזמן התחלת הזרימה, ולא בזמן יצירת המעבד
|
||
<<<<<<< HEAD
|
||
פרמטרים חסרים שנדרשים ללא ברירות מחדל חייבים לגרום לכישלון התחלת הזרימה עם הודעת שגיאה ברורה
|
||
=======
|
||
פרמטרים חסרים הדורשים ברירות מחדל חייבים לגרום לכישלון התחלת הזרימה עם הודעת שגיאה ברורה
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
#### ירושת פרמטרים עם "שולט ב"
|
||
|
||
השדה `controlled-by` מאפשר ירושת ערכי פרמטרים, שימושי במיוחד לפשט ממשקי משתמש תוך שמירה על גמישות:
|
||
|
||
**תרחיש לדוגמה**:
|
||
פרמטר `llm-model` שולט במודל LLM הראשי
|
||
פרמטר `llm-rag-model` מכיל `"controlled-by": "llm-model"`
|
||
במצב פשוט, הגדרת `llm-model` ל-"gpt-4" מגדירה אוטומטית גם את `llm-rag-model` ל-"gpt-4"
|
||
במצב מתקדם, משתמשים יכולים לדרוס את `llm-rag-model` עם ערך שונה
|
||
|
||
**כללי פתרון**:
|
||
1. אם לפרמטר יש ערך שסופק באופן מפורש, השתמש בערך זה
|
||
2. אם אין ערך מפורש ו-`controlled-by` מוגדר, השתמש בערך של הפרמטר השולט
|
||
3. אם לפרמטר השולט אין ערך, חזור לברירת המחדל מהגדרת הסוג
|
||
4. תלות מעגלית בקשרי `controlled-by` גורמת לשגיאת אימות
|
||
|
||
**התנהגות ממשק משתמש**:
|
||
במצב בסיסי/פשוט: פרמטרים עם `controlled-by` עשויים להיות מוסתרים או מוצגים כקריאה בלבד עם ערך שירש
|
||
במצב מתקדם: מוצגים כל הפרמטרים וניתן להגדיר אותם באופן אינדיבידואלי
|
||
<<<<<<< HEAD
|
||
כאשר פרמטר שולט משתנה, פרמטרים תלויים מתעדכנים אוטומטית אלא אם כן הם נדחפים באופן מפורש
|
||
=======
|
||
כאשר פרמטר שולט משתנה, פרמטרים תלויים מתעדכנים אוטומטית אלא אם כן הם דורסים באופן מפורש
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
#### אינטגרציה עם Pulsar
|
||
|
||
1. **פעולת התחלת זרימה**
|
||
פעולת התחלת הזרימה של Pulsar צריכה לקבל שדה `parameters` המכיל מפה של ערכי פרמטרים
|
||
הסכימה של בקשת התחלת הזרימה של Pulsar חייבת להיות מעודכנת כדי לכלול את השדה האופציונלי `parameters`
|
||
דוגמת בקשה:
|
||
```json
|
||
{
|
||
"flow_class": "document-analysis",
|
||
"flow_id": "customer-A-flow",
|
||
"parameters": {
|
||
"model": "claude-3",
|
||
"size": "12b",
|
||
"temp": 0.5,
|
||
"chunk": 1024
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **פעולת Get-Flow**
|
||
הסכימה של Pulsar עבור תגובת ה-get-flow חייבת להיות מעודכנת כדי לכלול את השדה `parameters`
|
||
זה מאפשר ללקוחות לשלוף את ערכי הפרמטרים ששימשו כאשר ה-flow הופעל
|
||
דוגמה לתגובה:
|
||
```json
|
||
{
|
||
"flow_id": "customer-A-flow",
|
||
"flow_class": "document-analysis",
|
||
"status": "running",
|
||
"parameters": {
|
||
"model": "claude-3",
|
||
"size": "12b",
|
||
"temp": 0.5,
|
||
"chunk": 1024
|
||
}
|
||
}
|
||
```
|
||
|
||
#### יישום שירות זרימה
|
||
|
||
שירות תצורת הזרימה (`trustgraph-flow/trustgraph/config/service/flow.py`) דורש את השיפורים הבאים:
|
||
|
||
1. **פונקציית פתרון פרמטרים**
|
||
```python
|
||
async def resolve_parameters(self, flow_class, user_params):
|
||
"""
|
||
Resolve parameters by merging user-provided values with defaults.
|
||
|
||
Args:
|
||
flow_class: The flow blueprint definition dict
|
||
user_params: User-provided parameters dict
|
||
|
||
Returns:
|
||
Complete parameter dict with user values and defaults merged
|
||
"""
|
||
```
|
||
|
||
פונקציה זו צריכה:
|
||
<<<<<<< HEAD
|
||
לחלץ מטא-נתונים של פרמטרים מתוך סעיף `parameters` של תוכנית העבודה (blueprint).
|
||
עבור כל פרמטר, לשלוף את הגדרת הסוג שלו ממאגר התצורה.
|
||
להחיל ערכי ברירת מחדל עבור כל פרמטרים שאינם מסופקים על ידי המשתמש.
|
||
=======
|
||
לחלץ מטא-נתונים של פרמטרים מסעיף `parameters` של תוכנית העבודה (blueprint).
|
||
עבור כל פרמטר, לשלוף את הגדרת הסוג שלו ממאגר התצורה.
|
||
להחיל ערכי ברירת מחדל עבור כל פרמטרים שלא סופקו על ידי המשתמש.
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
לטפל ביחסי ירושה `controlled-by`.
|
||
להחזיר את קבוצת הפרמטרים השלמה.
|
||
|
||
2. **שיטה `handle_start_flow` שעברה שינוי**
|
||
לקרוא ל-`resolve_parameters` לאחר טעינת תוכנית העבודה.
|
||
להשתמש בקבוצת הפרמטרים המפורטת והפתורה עבור החלפת תבניות.
|
||
לשמור את קבוצת הפרמטרים השלמה (ולא רק את אלה שסופקו על ידי המשתמש) יחד עם תוכנית העבודה.
|
||
לוודא שכל הפרמטרים הנדרשים מכילים ערכים.
|
||
|
||
3. **שליפת סוגי פרמטרים**
|
||
הגדרות סוגי פרמטרים מאוחסנות בתצורה עם הסוג "parameter-type".
|
||
כל הגדרת סוג מכילה סכימה, ערך ברירת מחדל וכללי אימות.
|
||
לשמור סוגי פרמטרים בשימוש נפוץ במטמון כדי להפחית את מספר הפניות לתצורה.
|
||
|
||
#### שילוב עם מערכת התצורה
|
||
|
||
3. **אחסון אובייקטי זרימה**
|
||
כאשר אובייקט זרימה מתווסף למערכת התצורה על ידי רכיב הזרימה בניהול התצורה, אובייקט הזרימה חייב לכלול את ערכי הפרמטרים הפתורים.
|
||
מנהל התצורה צריך לאחסן גם את הפרמטרים שסופקו על ידי המשתמש וגם את הערכים הפתורים (עם יישום ברירת המחדל).
|
||
אובייקטי זרימה במערכת התצורה צריכים לכלול:
|
||
`parameters`: ערכי הפרמטרים הפתורים הסופיים המשמשים עבור הזרימה.
|
||
|
||
#### שילוב עם ממשק שורת הפקודה (CLI)
|
||
|
||
4. **פקודות CLI של הספריה**
|
||
פקודות CLI המתחילות זרימות צריכות לתמוך בפרמטרים:
|
||
לקבל ערכי פרמטרים באמצעות דגלי שורת הפקודה או קבצי תצורה.
|
||
לאמת פרמטרים מול הגדרות תוכנית העבודה לפני שליחה.
|
||
לתמוך בקלט של קובץ פרמטרים (JSON/YAML) עבור קבוצות פרמטרים מורכבות.
|
||
|
||
פקודות CLI המציגות זרימות צריכות להציג מידע על פרמטרים:
|
||
להציג את ערכי הפרמטרים ששימשו בעת התחלת הזרימה.
|
||
להציג את הפרמטרים הזמינים עבור תוכנית עבודה של זרימה.
|
||
להציג סכימות אימות של פרמטרים וערכי ברירת מחדל.
|
||
|
||
#### שילוב עם מחלקת בסיס של מעבד (Processor)
|
||
|
||
5. **תמיכה ב-ParameterSpec**
|
||
מחלקות בסיס של מעבדים צריכות לתמוך בהחלפת פרמטרים באמצעות מנגנון ה-ParametersSpec הקיים.
|
||
המחלקה ParametersSpec (הנמצאת באותו מודול כמו ConsumerSpec ו-ProducerSpec) צריכה להיות משופרת במידת הצורך כדי לתמוך בהחלפת תבניות של פרמטרים.
|
||
מעבדים צריכים להיות מסוגלים להשתמש ב-ParametersSpec כדי להגדיר את הפרמטרים שלהם עם ערכי פרמטרים שפתורים בזמן הפעלת הזרימה.
|
||
יישום ה-ParametersSpec צריך:
|
||
לקבל תצורות פרמטרים המכילות מקומות שמורות של פרמטרים (לדוגמה, `{model}`, `{temperature}`).
|
||
לתמוך בהחלפת פרמטרים בזמן ריצה בעת יצירת המעבד.
|
||
לוודא שערכים שהוחלפו תואמים לסוגים ולמגבלות הצפויים.
|
||
לספק טיפול בשגיאות עבור הפניות חסרות או לא חוקיות של פרמטרים.
|
||
|
||
#### כללי החלפה
|
||
|
||
פרמטרים משתמשים בפורמט `{parameter-name}` בפרמטרים של מעבד.
|
||
שמות הפרמטרים בפרמטרים תואמים למפתחות בסעיף `parameters` של תוכנית העבודה.
|
||
החלפה מתרחשת יחד עם החלפת `{id}` ו-`{class}`.
|
||
הפניות לא חוקיות של פרמטרים גורמות לשגיאות בזמן ההפעלה.
|
||
אימות סוג מתרחש בהתבסס על הגדרת הפרמטר המאוחסנת במרכז.
|
||
**חשוב**: כל ערכי הפרמטרים מאוחסנים ומועברים כרצף תווים.
|
||
מספרים מומרים לרצף תווים (לדוגמה, `0.7` הופך ל-`"0.7"`).
|
||
<<<<<<< HEAD
|
||
ערכים בוליאניים מומרים לרצף תווים קטן (לדוגמה, `true` הופך ל-`"true"`).
|
||
=======
|
||
בוליאנים מומרים לרצף תווים קטן (לדוגמה, `true` הופך ל-`"true"`).
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
זה נדרש על ידי הסכימה של Pulsar, אשר מגדירה `parameters = Map(String())`.
|
||
|
||
דוגמה לפענוח:
|
||
```
|
||
Flow parameter mapping: "model": "llm-model"
|
||
Processor parameter: "model": "{model}"
|
||
User provides: "model": "gemma3:8b"
|
||
Final parameter: "model": "gemma3:8b"
|
||
|
||
Example with type conversion:
|
||
Parameter type default: 0.7 (number)
|
||
Stored in flow: "0.7" (string)
|
||
Substituted in processor: "0.7" (string)
|
||
```
|
||
|
||
## אסטרטגיית בדיקות
|
||
|
||
בדיקות יחידה לאימות סכימת הפרמטרים
|
||
בדיקות אינטגרציה להחלפת פרמטרים בפרמטרים של המעבד
|
||
בדיקות מקצה לקצה להפעלת זרימות עם ערכי פרמטרים שונים
|
||
בדיקות ממשק משתמש ליצירה ואימות של טופס פרמטרים
|
||
בדיקות ביצועים עבור זרימות עם פרמטרים רבים
|
||
מקרים קצה: פרמטרים חסרים, סוגים לא חוקיים, הפניות לפרמטרים לא מוגדרים
|
||
|
||
## תוכנית מעבר
|
||
|
||
1. המערכת צריכה להמשיך לתמוך בתבניות זרימה ללא פרמטרים
|
||
<<<<<<< HEAD
|
||
מוצהרים.
|
||
=======
|
||
מוגדרים.
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
2. המערכת צריכה להמשיך לתמוך בזרימות ללא פרמטרים מוגדרים:
|
||
זה עובד עבור זרימות ללא פרמטרים, וזרימות עם פרמטרים
|
||
(שיש להם ערכי ברירת מחדל).
|
||
|
||
## שאלות פתוחות
|
||
|
||
<<<<<<< HEAD
|
||
ש: האם הפרמטרים צריכים לתמוך באובייקטים מקוננים מורכבים או להישאר בסוגים פשוטים?
|
||
=======
|
||
ש: האם פרמטרים צריכים לתמוך באובייקטים מקוננים מורכבים או להישאר בסוגים פשוטים?
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
ת: ערכי הפרמטרים יועברו כרצף תווים, סביר להניח שנרצה
|
||
להישאר ברצפים תווים.
|
||
|
||
ש: האם מותר להשתמש במחזיקי פרמטרים בשמות תורים או רק ב
|
||
פרמטרים?
|
||
ת: רק בפרמטרים כדי למנוע הזרקות ותופעות לוואי.
|
||
|
||
ש: כיצד לטפל בקונפליקטים בין שמות פרמטרים למשתנים של המערכת כמו
|
||
<<<<<<< HEAD
|
||
`id` ו- `class`?
|
||
ת: לא חוקי לציין id ו-class בעת הפעלת זרימה.
|
||
|
||
ש: האם אנו תומכים בפרמטרים מחושבים (נגזרים מפרמטרים אחרים)?
|
||
ת: רק החלפת רצפי תווים כדי למנוע הזרקות ותופעות לוואי.
|
||
=======
|
||
`id` ו-`class`?
|
||
ת: לא חוקי לציין id ו-class בעת הפעלת זרימה.
|
||
|
||
ש: האם אנו תומכים בפרמטרים מחושבים (נגזרים מפרמטרים אחרים)?
|
||
ת: רק החלפת רצפים תווים כדי למנוע הזרקות ותופעות לוואי.
|
||
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
||
## הפניות
|
||
|
||
מפרט JSON Schema: https://json-schema.org/
|
||
מפרט הגדרת תבנית זרימה: docs/tech-specs/flow-class-definition.md
|