משימות
בדיקה, המתנה, סינון, דירוג ואבחון של משימות Nodaro דרך עוזר AI: מעטפת המשימה, הסטטוסים, משימות שממתינות לבדיקה, ניסיון חוזר ומודלים חלופיים.
כלי המשימות מאפשרים לעוזר AI לבדוק את המצב של העבודה ש-Nodaro עושה בשבילו. כמעט כל כלי יצירה מתחיל משימה ומחזיר מיד את המזהה שלה. הכלים get_job ו-wait_for_job מדווחים מתי המשימה מסתיימת ואיפה התוצאה. הכלי list_jobs מחזיר רשימה מסוננת של המשימות האחרונות שלכם, rate_job מדרג תוצאה, ו-diagnose_run מסביר כשל. אף אחד מהם לא עולה קרדיטים.
סטטוסים של משימה
| סטטוס | משמעות |
|---|---|
pending, queued, processing | המשימה ממתינה או רצה. המשיכו לבדוק. |
pending_review | התוצאה קיימת, אבל הפריסה מעכבת אותה עד שאדם יבדוק אותה. המשיכו לבדוק, ואף פעם אל תריצו את המשימה שוב. |
completed | המשימה הסתיימה. התוצאה נמצאת ב-outputUrl וב-outputData. |
failed | המשימה נכשלה. בדקו את retryable ואת guidance. |
cancelled | המשימה בוטלה. |
משימה שממתינה לבדיקה מסתיימת בסטטוס completed כשהבודק מאשר אותה, או בסטטוס failed עם סיבה שקשורה למדיניות כשהבודק דוחה אותה. לקוח שבודק את מצב המשימה דרך ה-API של tasks ב-MCP רואה משימה שממתינה לבדיקה בסטטוס input_required: ההחלטה בידי הבודק, ולכן העוזר לא צריך לבקש מכם פרמטרים חדשים.
מעטפת המשימה
הכלים get_job ו-wait_for_job מחזירים את אותה תוצאה מובנית: מעטפת המשימה. גם get_asset מחזיר אותה, בלי input ובלי שני נתוני הקרדיטים.
| שדה | מה יש בו |
|---|---|
jobId, jobType | מזהה המשימה וסוג המשימה |
status, progress | הסטטוס מהטבלה שלמעלה, וההתקדמות בזמן שהמשימה רצה |
assetKind | image, video או audio; null בתוצאה של טקסט או של נתונים |
outputUrl | התמונה, הסרטון או האודיו המוגמרים |
width, height | גודל הפלט בפיקסלים, כשהמשימה תיעדה אותו. ראו בהמשך |
outputData | פלט מובנה, כגון תמלול, יישור או ניתוח |
input | מה נשלח למודל בפועל (ראו בהמשך), או null |
errorMessage | השגיאה של משימה שנכשלה |
credits | הקרדיטים ששוריינו למשימה עצמה כשהיא התקבלה. הסכום הזה אף פעם לא משתנה |
creditsCharged | כמה המשימה עלתה אחרי החיוב הסופי של השריון שלה, כולל השלבים שהיא הריצה (credits_charged ב-data של המטען הטקסטואלי). ראו בהמשך |
creditsHeld, creditsReleased | השריון של ההרצה יחד עם השריונות של השלבים שלה, ומה שחזר אחרי החיוב הסופי של כל השריונות בהרצה (credits_held ו-credits_released). ראו בהמשך |
createdAt, startedAt, completedAt | חותמות זמן |
retryable, guidance, suggestedProvider | במשימה שנכשלה, בוטלה או ממתינה לבדיקה: האם אותה בקשה יכולה להצליח, משפט שמסביר מה לעשות ומודל חלופי, כשיש כזה |
preview | הערך הוא true ברינדור של רכיב החלת רשימת עריכה שנעשה באיכות תצוגה מקדימה, כש-outputData.quality הוא "proxy": החיתוך הפרטי ב-720p לבדיקה, לא הגרסה הסופית |
השדה creditsCharged יכול להיות נמוך מ-credits. הוא כולל את השלבים שהמשימה הריצה: במשימה שמריצה בשבילכם משימות אחרות, כגון הכנת הייחוס, המסכה והסרטון בהרצה של Nodaro Motion, הקרדיטים על כל שלב נגבים ברגע שהחיוב של השלב נסגר. כשהקרדיטים ששוריינו למשימה עצמה הוחזרו, הערך הוא 0 ועוד הקרדיטים שנגבו על שלבים שהחיוב שלהם כבר נסגר. למשל, בהרצה של Nodaro Motion שהקרדיטים שלה הוחזרו, אבל על שלבי הייחוס והמסכה שלה נגבו קרדיטים, הערכים הם credit_status: "refunded" ו-creditsCharged: 165. הערך הוא null כל עוד השריון של המשימה עצמה פתוח, כששום דבר בהרצה לא שוריין או כשלרגע אי אפשר היה לקרוא את השלבים שלה. ה-null הזה אומר ״לא ידוע״, ואף פעם לא סכום נמוך יותר.
השדה creditsHeld הוא השריון של ההרצה, כולל השריונות של השלבים. השדה creditsReleased הוא מה שחזר אחרי החיוב הסופי של כל השריונות בהרצה, ועד אז הערך שלו הוא null. למשל, משימה ששוריינו לה 888 קרדיטים, ובחיוב הסופי נגבו עליה 444, מחזירה credits: 888, creditsCharged: 444, creditsHeld: 888 ו-creditsReleased: 444.
השדות width ו-height מופיעים במשימות תמונה שהסתיימו אחרי ש-Nodaro התחיל לתעד את הגודל, ובמשימות של הרכיבים שכבת תמונה, שכבה על וידאו, מסכת וידאו ושילוב לפי מסכה. בתמונה, הערכים האלה הם הגודל של outputUrl כפי שהוא שמור, אחרי החלת הסיבוב לפי EXIF. השתמשו בהם כדי לבחור יחס גובה־רוחב לשלב הבא. במשימה שיצרה כמה תמונות יש גם outputData.images, עם { url, width, height } לכל תמונה.
השדה input הוא חלק בטוח מהבקשה, שמספיק כדי לבדוק מה המודל קיבל. שום דבר מחוץ לרשימה הזו לא נכלל בו:
- השדה
prompt, הפרומפט בגרסתו הסופית, אחרי שהבוררים, הנושאים והייחוסים שולבו בו, והשדהuserPrompt, המילים שלכם. - השדה
negativePrompt, ומזהי הבורריםdirectionו-subject. - השדות
provider,model,duration,resolutionו-aspectRatio. - השדות
imageUrlו-endFrameUrl, והכתובות של תמונות הייחוס, סרטוני הייחוס ואודיו הייחוס. - השדה
typeשל המשימה.
get_job
מחזיר משימה אחת שלכם לפי המזהה שלה, כמעטפת משימה. השתמשו בו כדי לבדוק משימה כל 5–10 שניות עד שהיא מסתיימת.
הרשאה: jobs:read. קרדיטים: חינם.
| פרמטר | סוג | הערות |
|---|---|---|
job_id | string | נדרש. המזהה שכלי יצירה החזיר. |
מה חוזר: מעטפת המשימה.
wait_for_job
ממתין עד שמשימה שלכם מסתיימת, ואז מחזיר את מעטפת המשימה. השתמשו בו במקום בלולאה צפופה של קריאות ל-get_job.
הרשאה: jobs:read. קרדיטים: חינם.
| פרמטר | סוג | הערות |
|---|---|---|
job_id | string | נדרש. המשימה שממתינים לה. |
timeout_s | integer | כמה שניות להמתין, עד 45. ברירת המחדל: 45. הכלי מקבל ערך עד 120, אבל גם אז ממתין 45 שניות. |
מה חוזר: מעטפת המשימה. כל קריאה מחזירה תשובה בתוך 45 שניות, כי לקוחות MCP מסיימים קריאה לכלי לפי שעון משלהם, לרוב אחרי 60 שניות. אם המשימה עדיין רצה אז, הסטטוס הוא timeout, עם progress, jobType, createdAt ו-startedAt של המשימה. זו לא שגיאה: קראו שוב ל-wait_for_job עם אותו job_id. ההמתנה ממשיכה מהנקודה שבה נעצרה, והמשימה לא מושפעת, ולכן אף פעם אל תריצו את היצירה שוב. יצירת סרטון יכולה לקחת 2–10 דקות, ולכן צפו לכמה קריאות, או בדקו את הסטטוס עם get_job כל 5–10 שניות. על משימה שממתינה לבדיקה, הכלי עונה מיד pending_review.
list_jobs
מחזיר רשימה של המשימות האחרונות שלכם כנתונים מובנים: סטטוס, סוג, כתובת הפלט, שגיאה, קרדיטים וחותמות זמן. השתמשו בו לשאלות כגון ״כמה יצירות נכשלו אתמול״. כשרוצים לראות את התוצאות, השתמשו ב-browse_gallery, שמציג אותן בתצוגת רשת.
הרשאה: jobs:read. קרדיטים: חינם.
| פרמטר | סוג | הערות |
|---|---|---|
kinds | array | סוגי המדיה שייכללו: כל שילוב של image, video ו-audio. ברירת המחדל: ["image", "video"], ולכן אודיו לא נכלל אלא אם מבקשים אותו. |
status | string או array | רק במשימות שלכם. סטטוס אחד, או רשימה של סטטוסים: pending, queued, processing, pending_review, completed, failed, cancelled. |
types | array | רק במשימות שלכם. בין 1 ל-20 סוגי משימות, כלומר הנתיב שיצר את המשימה, למשל generate-image או llm-structured. |
sources | array | רק במשימות שלכם. ממשק אחד או יותר שממנו נוצרה המשימה: mcp (לקוח MCP כגון Claude או ChatGPT), web, cli, sdk, extension, app, api או internal. |
favorited | boolean | רק במשימות שלכם. הערך true מחזיר רק את המשימות שסימנתם כמועדפות, והערך false את כל השאר. |
rating | string | רק במשימות שלכם. good, bad, rated (דירוג כלשהו) או unrated. |
project_id | string | רק במשימות שלכם. המשימות שנמצאות עכשיו בסשן של הפרויקט הזה, כל אחת פעם אחת. הערך none מחזיר את המשימות שנמצאות בסשן שלא שייך לאף פרויקט. |
in_session | boolean | רק במשימות שלכם. הערך false מחזיר את המשימות שלא נמצאות באף סשן, שהאפליקציה מציגה תחת כללי. הערך true מחזיר את המשימות שנמצאות בסשן אחד לפחות. |
with_sessions | boolean | רק במשימות שלכם. בכל משימה מופיעה גם רשימת הסשנים שהיא נמצאת בהם, עם המזהה, הכותרת ומזהה הפרויקט של כל סשן. |
scope | string | mine (ברירת המחדל) למשימות שלכם, או public לתוצאות ציבוריות אחרונות של משתמשים אחרים. |
limit | integer | מ-1 עד 200. ברירת המחדל: 50. |
cursor | string | הערך next_cursor מהעמוד הקודם. |
מה חוזר: עמוד של משימות ו-next_cursor לעמוד הבא.
בהיקף הציבורי, הרשימה כוללת את מה שהגלריה הציבורית מציגה, עם אותו סינון תוכן כמו ב-browse_gallery, ואף פעם לא כוללת את המזהה של יוצר אחר. בשני ההיקפים, בעמוד יכולות להיות פחות משימות מ-limit, ועדיין יהיה בו next_cursor. המשיכו לבקש עם next_cursor עד שהערך שלו הוא null.
במשימות שלכם, המסננים עובדים כמו ב-GET /v1/jobs ומשתלבים עם AND. הפרמטר types מבטל את ברירת המחדל של kinds, ולכן גם משימה בלי מדיה, כגון טיוטת llm-structured, מופיעה ברשימה. העבירו גם את kinds כדי לקבל רק מדיה. עם scope: "public", הכלי דוחה את types, sources, favorited, rating, project_id, in_session ו-with_sessions. משימה שנמחקה אף פעם לא מופיעה ברשימה: היא נמצאת ב-list_trash.
בכל אחת מהמשימות שלכם יש favorited (true או false) ו-rating ("good", "bad" או null). כשלרגע אי אפשר לקרוא אותם, שני השדות לא מופיעים, וזה אומר ״לא ידוע״, לא false. בשורות של ההיקף הציבורי אין אף אחד מהם.
בכל אחת מהמשימות שלכם יש credits, הסכום ששוריין למשימה עצמה כשהיא התקבלה, שאף פעם לא משתנה, ו-credits_charged, כמה היא עלתה אחרי החיוב הסופי של השריון, כולל השלבים שהיא הריצה. החיוב הסופי של משימה יכול להיות נמוך מהשריון שלה, והשאר חוזר ליתרה שלכם. כשהקרדיטים ששוריינו להרצה עצמה הוחזרו, credits_charged הוא 0 ועוד הקרדיטים שנגבו על שלבים שהחיוב שלהם כבר נסגר. הערך הוא null כל עוד השריון של המשימה עצמה פתוח, כששום דבר בהרצה לא שוריין או כשלרגע אי אפשר היה לקרוא את השלבים שלה. השדה credits_held הוא השריון של ההרצה יחד עם השריונות של השלבים שלה, ו-credits_released הוא מה שחזר אחרי החיוב הסופי של כל השריונות בהרצה (null עד אז). כדי לחשב כמה משימות עלו, סכמו את credits_charged, לא את credits. בשורות של ההיקף הציבורי אין אף אחד משלושת השדות האלה.
המשימות שלכם כוללות גם את הרינדורים של רכיב החלת רשימת עריכה, לפי סוג הפלט שלהם: הערך video לחיתוך והערך audio למיקס. רינדור של תצוגה מקדימה כולל preview: true. ההיקף הציבורי אף פעם לא מחזיר רינדור של רכיב החלת רשימת עריכה.
rate_job
נותן למשימה שלכם את הדירוג good או bad, או מוחק את הדירוג שלה. למשימה יש דירוג אחד, ורק הבעלים שלה יכול לדרג אותה. על משימה של אדם אחר, או על מזהה שהוא לא של משימה, הכלי עונה "not found" (לא נמצא).
הרשאה: assets:write. קרדיטים: חינם.
| פרמטר | סוג | הערות |
|---|---|---|
job_id | string | נדרש. אחת מהמשימות שלכם. |
rating | string או null | נדרש. good או bad, או null כדי למחוק את הדירוג. |
מה חוזר: { data: { jobId, rating } }. הדירוג מופיע ב-list_jobs, שיכול גם לסנן לפיו, וב-GET /v1/jobs.
diagnose_run
מסביר למה הרצת תהליך או משימה בודדת נכשלו. אפשר להעביר כל אחד משני המזהים: הכלי מחפש קודם הרצת תהליך, ואם אין כזו, משימה.
הרשאה: jobs:read. קרדיטים: חינם.
| פרמטר | סוג | הערות |
|---|---|---|
id | string | נדרש. מזהה של הרצת תהליך או מזהה משימה. |
מה חוזר: בהרצת תהליך, כל רכיב עם מזהה המשימה, הסוג והסטטוס שלו (nodes). זה הכלי היחיד שממפה את הרכיבים של הרצה למזהי המשימות שלהם. לכל רכיב שנכשל יש גם הודעת השגיאה שלו, המודל שלו, הקרדיטים שנגבו בפועל (creditsActual), סוג הכשל ורמז לתיקון. בהרצה שנכשלה ש-run_workflow יכול להמשיך יש גם resumeHint: הקריאה ל-run_workflow שממשיכה אותה מהנקודה שבה נעצרה. בהרצת אפליקציה שנכשלה יש במקומו את הקריאה ל-retry_app_run, כמו ב-get_app_run.
| סוג הכשל | משמעות |
|---|---|
content_policy | מסנן בטיחות חסם את הפרומפט או את התוצאה |
validation | ההגדרות או הקלט לא התקבלו |
rate_limited | הבקשה נתקלה במגבלת קצב |
timeout | ההרצה נמשכה זמן רב מדי |
post_processing | המודל מסר תוצאה, אבל שלב שאחריו נכשל |
provider_error | השירות של המודל החזיר שגיאה |
unknown | השגיאה לא מתאימה לאף אחד מהסוגים שלמעלה |
סוג הכשל הוא הערכה לפי טקסט השגיאה, ולכן התייחסו אליו כהכוונה בלבד. הקרדיטים המשוריינים מוחזרים אוטומטית בכל הסוגים חוץ מ-post_processing, כי במקרה הזה המודל כבר מסר את העבודה שלו.
הרצה שהסתיימה מחזירה גם את השדה outcome, עם "succeeded" או "nothing_new", כמו ש-get_app_run עושה. לרכיב שההרצה דילגה עליו כי שום דבר לא הגיע לקלט שלו יש skipReason: "empty_input". בהרצה שלא מצאה שום דבר חדש אין כשל להסביר: שום דבר לא השתבש, פשוט לא היה על מה לעבוד.
כשמשימה נכשלת
- בדקו את
retryable. הערךfalseאומר שאותה בקשה תיכשל שוב אם לא ישנו בה דבר. זה קורה אחרי חסימה בגלל מדיניות התוכן, או כשהמודל דחה את השילוב של ההגדרות וקובצי המדיה בקלט. סירוב שהמודל לא נתן לו סיבה הואretryable: true. - פעלו לפי
suggestedProvider. כשמסנן בטיחות חסם את התוצאה ויש בקטלוג מודל חלופי, המשימה מציינת אותו. הריצו את אותו פרומפט ואותם ייחוסים במודל הזה, במקום לנחש מודל אחר. - שנו את הבקשה כשהמודל דחה אותה. שגיאה שאומרת שהמודל דחה את ההגדרות האלה פירושה שהאורך, יחס הגובה־רוחב, הרזולוציה או קובץ ייחוס לא מתאימים למודל הזה. שנו אותם, או בחרו מודל שפירוט היכולות שלו ב-
list_modelsמאפשר את השילוב. שגיאה שאומרת שהמודל לא נתן סיבה יכולה להיות זמנית, או לנבוע מקובצי המדיה בקלט, כגון הגודל או הפורמט שלהם. הריצו את הבקשה שוב פעם אחת, ואם היא נכשלת שוב, החליפו את קובצי המדיה. - נסו שוב בכל שאר המקרים. שגיאה זמנית מהשירות של המודל נשארת
retryable, גם כשהניסוח שלה נשמע כמו בעיה בתקינות הקלט.
פתרונות נוספים בדף פתרון בעיות.
שאלות נפוצות
באיזו תדירות עוזר AI צריך לבדוק את הסטטוס של משימת Nodaro?
עוזר AI צריך לבדוק משימה כל 5–10 שניות עם הכלי get_job, או להשתמש בכלי wait_for_job, שממתין עד 45 שניות בכל קריאה. תמונה מסתיימת בדרך כלל בתוך דקה, וסרטון בתוך 2–10 דקות.
מה המשמעות של pending_review?
הסטטוס pending_review אומר שהפריסה בודקת תוצאות לפני שהן משוחררות, ושאדם בודק עכשיו את התוצאה הזו. זה לא כשל. המשיכו לבדוק את המשימה, ואף פעם אל תריצו אותה שוב, כי גם משימה כפולה תמתין לבדיקה.
מה העוזר צריך לעשות כשמשימה נכשלת?
כשמשימה נכשלת, העוזר צריך לקרוא את השדות retryable ו-guidance שלה. כש-retryable הוא false, הוא צריך לשנות את ההגדרות או את הקלט לפני ניסיון נוסף. כשבמשימה מופיע השדה suggestedProvider, הוא צריך להריץ את אותו פרומפט ואותם ייחוסים במודל שהשדה מציין.
האם כלי המשימות עולים קרדיטים?
לא. כלי המשימות רק קוראים את הסטטוס של עבודה שכבר קיימת. רק הכלים שמתחילים משימות מוציאים קרדיטים.
דפים קשורים
מדריך כלי ה-MCP
גלריה ונכסים
פתרון בעיות
הרצת תהליכים
עודכן לאחרונה