Claude Opus 5.5 כבר זמין ב-SeedRouter

העברת אינטגרציית תמונות ל-SeedRouter

העבר אינטגרציית GPT Image 2 ל-SeedRouter: מפה את שדות הבקשה, טפל במשימות אסינכרוניות ובדוק את מסירת התמונות באמצעות כתובות URL.

קריאה כ-Markdown

העברת API של תמונות ל-SeedRouter מחייבת בדיקה של חוזה הבקשה והתגובה, ולא רק החלפה של מפתח ה-API וכתובת הבסיס. GPT Image 2 משתמש בשדות יצירת התמונות המוכרים, אבל השליחה מחזירה מזהה משימה. האפליקציה שלך חייבת לשמור את המזהה הזה, לתשאל עד להשלמה ולקרוא את כתובות התמונות המוגמרות.

ההעברה הקטנה ביותר שיש בה תועלת היא בקשה אחת מטקסט לתמונה מקוד בצד השרת. הבא אותה למצב עובד לפני שאתה מעביר עריכות לפי ייחוס, מסכות או אצווה גדולה יותר. השאר את האינטגרציה הקיימת זמינה עד שהמסלול החדש יעבור את אותן בדיקות קבלה.

אילו הנחות צריכות להשתנות?

אתר את הקוד שהופך בקשת תמונה לקובץ שמיש. ייתכן שכרגע הוא מצפה לתמונה בתגובה הראשונה, מפענח שדה base64 או מעלה קובץ בשיטת multipart. כל אחת מההנחות האלה חייבת להיבדק בנפרד מול התיעוד של GPT Image 2 ב-SeedRouter.

ההנחה הקיימתהחוזה של SeedRouterהשינוי באפליקציה
השליחה מחזירה את התמונה המוגמרתהשליחה מחזירה הפניה למשימהשמור את id לפני ההמתנה לפלט
הפלט נמצא במערך data של השליחהתמונות המשימה שהושלמה נמצאות ב-output.dataקרא את התוצאות לאחר ההשלמה
הלקוח מפענח b64_jsonהתמונות מוחזרות ככתובות URL מאוחסנותהורד את הכתובות שהוחזרו
העריכה מעלה את בתי הקובץהייחוסים משתמשים באובייקטי URL בתוך imagesהנגש את תמונות הקלט בכתובת URL
מסלול עריכה נפרד בוחר את מצב העריכהimages ו-mask הם שבוחרים את הפעולההשתמש בנקודת הקצה הציבורית ליצירה
פקיעת זמן בלקוח פירושה שהתמונה נכשלהייתכן שהמשימה עדיין בעיבודחזור לתשאל את המזהה השמור

לכן קריאה סינכרונית ל-SDK של תמונות אינה תחליף ישיר, גם אם היא מקבלת כתובת בסיס שניתנת להגדרה. שמור את הגדרות המודל שאתה עדיין צריך, אבל התאם את קוד האפליקציה שממתין לתוצאה וצורך אותה.

מפה את שדות הבקשה לפני שאתה נוגע בקוד

התחל מ-model, prompt, size, quality ו-n. השתמש ב-gpt-image-2 כמזהה המודל. שלח ממדים מפורשים כמו 1024x1024 או השתמש ב-auto; אל תעביר שדה resolution נפרד ואל תשים מחרוזת יחס תצוגה במקום הגודל.

כדאי לשמור את מסמך ה-OpenAPI של SeedRouter פתוח בזמן הסקירה. השווה את השדות שהאפליקציה שלך באמת שולחת, כולל ערכים שה-SDK מוסיף, במקום לבדוק רק את הארגומנטים שנראים במקום הקריאה. שדות לא מוכרים נדחים.

במודל הזה, style, response_format ו-input_fidelity שניתן להגדיר אינם שדות בקשה קבילים. הסר את ההנחות האלה במקום להסתיר אותן בתוך אובייקט אפשרויות כללי. הבקשה גם אינה תומכת ב-stream או ב-partial_images; סטטוס המשימה הוא הדרך שבה האינטגרציה הזאת מדווחת על התקדמות.

להגדרות הפלט יש תלויות. אם אתה מבקש שקיפות, בחר PNG. שלח את output_compression רק עבור JPEG, לא עבור PNG. ערך דחיסה אפס הוא ערך תקף, ולכן הימנע מבדיקת "אמיתיות" שמחליפה אותו בברירת מחדל. אלה פרטים קטנים שבקשה בסיסית מוצלחת לא תיגע בהם.

החלף את ההנחה על תגובה סינכרונית

הדוגמה הבאה ב-Node.js שולחת בקשה אחת ומדפיסה את מזהה המשימה שלה. הגדר את SEEDROUTER_API_KEY בשרת; לעולם אל תשים את המפתח בקוד הדפדפן או במשתנה סביבה ציבורי.

const response = await fetch('https://api.seedrouter.ai/v1/images/generations', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.SEEDROUTER_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: 'gpt-image-2',
    prompt: 'A cobalt-blue ceramic mug on a pale gray tabletop.',
    size: '1024x1024',
    quality: 'low',
    n: 1,
  }),
  signal: AbortSignal.timeout(60000),
});
const task = await response.json();
if (!response.ok) {
  // Preserve a task reference if one accompanies an uncertain submission.
  if (typeof task.id === 'string') console.log('Task reference:', task.id);
  throw new Error(`Submission needs review: HTTP ${response.status}`);
}
if (typeof task.id !== 'string' || !task.id) throw new Error('Missing task ID.');
console.log(task.id); // Persist this ID with your application's image record.

הדפסת המזהה מספיקה לבדיקה ידנית מהירה. באפליקציה, שמור אותו לפני שאתה מחזיר את השליטה למשתמש. כך רשומת התמונה יכולה להישאר בהמתנה בזמן שהמשתמש עובר למקום אחר, ובדיקה מאוחרת תשחזר את התוצאה.

השתמש ב-GET https://api.seedrouter.ai/v1/tasks/{id} עם אותה כותרת הרשאה כדי לבדוק התקדמות. במצב completed קרא את output.data[].url. במצב failed טפל בשגיאה המתועדת והצג מצב כשל מתאים. לדוגמה ניתנת להרצה ששומרת התקדמות ראה שליחה באצווה ותשאול.

אל תצרף את מפתח ה-API לבקשת ההורדה של התמונה. ההרשאה שייכת לקריאה ל-API המשימות, לא לשליפה נפרדת של כתובת קובץ שהוחזרה.

העבר ייחוסים ומסכות לקלט בכתובות URL

תהליך עבודה שמבוסס על קבצים מקומיים דורש שלב הכנה נוסף: הנגש את תמונת הייחוס בכתובת HTTP(S) נגישה שבשליטתך. העבר אותה בצורה images: [{"image_url": "https://example.com/reference.png"}], והחלף את הכתובת בדוגמה בכתובת שלך. אל תשלח נתיב קובץ, כתובת blob:, data URL בקידוד base64 או מזהה Files ID.

בדוק שהכתובת עובדת בלי עוגיות ההתחברות של הדפדפן שלך. כתובת שנפתחת רק בתוך ההפעלה המחוברת שלך אינה ייחוס שמיש לבקשה הזאת. שמור על התמונה נגישה כל עוד המשימה בעיבוד; אל תבטל את הגישה מיד לאחר השליחה.

מסכה מוגדרת כ-mask: {"image_url": "https://example.com/mask.png"} ומחייבת תמונות ייחוס. היא חייבת להתאים לממדים של תמונת הייחוס הראשונה. עבור על כל מגבלות קלט המדיה לפני שאתה מעביר תהליך עריכה קיים, ובמיוחד על פורמטים וגדלים של קבצים.

מה צריכה בדיקת הקבלה של ההעברה לכסות?

בדוק את ההתנהגות שהאפליקציה שלך מסתמכת עליה, כולל הפרעות. תמונה מוצלחת אחת מוכיחה רק שבקשה אחת עבדה. היא אינה מוכיחה שמצב ההמתנה שורד רענון של הדף, ואינה מוכיחה שכשל בהורדה לא יוביל ליצירה כפולה.

  • שלח בקשה עם טקסט בלבד ושמור את המזהה שהוחזר לפני שמתחילים לתשאל.
  • עצור את התשאול, הפעל אותו מחדש עם אותו מזהה וודא שלא נשלחת בקשת POST נוספת.
  • טפל ב-processing, ב-completed וב-failed כמצבים נפרדים.
  • הורד תמונה שהושלמה בלי לשלוח את כותרת ההרשאה של ה-API.
  • בדוק עריכה לפי ייחוס עם כתובת נגישה, ואז בדוק את הטיפול בשגיאה עם כתובת לא נגישה.
  • אמת את השדות האופציונליים, כולל דחיסה בערך אפס, מול הסכמה שפורסמה.
  • ודא שחיובי החשבון נקראים מהיסטוריית השימוש ולא משדה עלות מומצא בתגובת המשימה.

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

שאלות נפוצות

אפשר לשמור על הפרומפטים הקיימים?

כן, כנקודת פתיחה, בתנאי שהם עומדים באילוצי הבקשה. שמור כמה פרומפטים מייצגים לצורך השוואה, אבל אל תצפה לתמונות זהות ביצירות חוזרות.

צריך ספריית לקוח חדשה?

לא בשביל הדוגמאות שכאן. בקשות HTTP רגילות מספיקות. כל לקוח שתבחר חייב לדעת לשלוח משימה ולתשאל אותה, במקום לצפות לתמונה מוגמרת מיד.

היכן מוצאים את העלות הסופית?

בהיסטוריית השימוש של החשבון. משימה שהושלמה יכולה לכלול צריכת טוקנים, אבל בתגובה הציבורית שלה אין שדה עלות. מדריך המחירים עוסק באומדנים.

סיים את ההעברה בגבול האפליקציה

העברת API של תמונות הושלמה כשהאפליקציה מטפלת בכל מחזור החיים של התוצאה: משימה שהתקבלה, מצב המתנה, פלט מוגמר, הורדה וכשל. שמור על שינוי ראשון קטן, בדוק את מקרי ההפרעה, והעבר את יתר הבקשות רק אחרי שבדקת את הנחות הקלט והפלט שלהן.

מדריכים קשורים