{
  "aboutHtml": "<p>Qwen2-7B-Instruct היא גרסת Qwen2 בגודל 7B המכווננת להוראות, לשיחה ולמשימות המנוסחות בשפה טבעית. זהו מודל עם קלט טקסט ופלט טקסט: התשובה יכולה להיות הסבר, תרגום, טיוטת מסמך או קוד תוכנה. היצרן מציין הבנת שפה, יצירה, עבודה רב-לשונית, קוד, מתמטיקה וחשיבה כתחומי השימוש העיקריים.</p><p>פרטי המודל</p><p>Qwen2 כולל גרסאות בסיס וגרסאות מכווננות להוראות נפרדות. כרטיס זה עוסק בגרסת Instruct, ולא במודל הבסיס Qwen2-7B או בגרסת תערובת המומחים של המשפחה. טבלת המידע של היצרן מציינת 7.07 מיליארד פרמטרים במודל בגודל 7B. ה-Transformer המפענח שלו משתמש ב-SwiGLU, בהטיית קשב QKV ובקשב עם שאילתות מקובצות, עם טוקנייזר שתוכנן לשפות טבעיות ולקוד. אלה בחירות ארכיטקטורה וייצוג, ולא אופני קלט נוספים.</p><p>הודעת הגרסה מתארת אימון באנגלית ובסינית וב-27 שפות נוספות. הן כוללות רוסית, צ&#39;כית ופולנית; גרמנית, צרפתית וספרדית; ערבית, פרסית וטורקית; יפנית וקוריאנית; ושפות נוספות בדרום אסיה ובדרום-מזרח אסיה. עוזר רב-לשוני יכול לכן לקבל הוראה וחומר מקור בשפות שונות, אך עדיין צריך לציין את השפה, המינוח והקהל של התוצר הסופי.</p><p>האימון וההבחנה בגרסת Instruct</p><p>לאחר הקדם-אימון, היצרן משתמש בכיוונון עדין מפוקח ובאופטימיזציה ישירה של העדפות. הגרסה המכווננת להוראות מיועדת להגיב לבקשה בשיחה, ואילו לגרסת הבסיס יש תפקיד אחר כבסיס למודל שפה. שמרו על שם גרסה מפורש בעת בחירת מודל או השוואת התנהגות הנחיות. אימון מודל לביצוע הוראות ומתן הוראה מדויקת בזמן השימוש הם חלקים משלימים בתהליך העבודה.</p><p>הכנת קלט לשיחה</p><p>מדריך ההתחלה המהירה בכרטיס המודל מפריד בין הוראת מערכת לשאלת המשתמש ומחיל את תבנית הצ&#39;אט המתאימה לפני היצירה. במשימה ברמת היישום, אותה הבחנה מעשית שימושית: הגדירו את תפקיד העוזר ואת כללי התשובה בנפרד מקטע המקור או מהקוד שעליו לעבוד עליהם. תווית טקסטואלית בתוך מסמך אינה תחליף לתפקידי שיחה בפורמט תקין בממשק המשתמש במודל.</p><p>משימת הסבר טכני יכולה לספק פונקציה ודוגמת קלט אחת, ואז לשאול מה כל ענף עושה ואילו תנאים משפיעים על התוצאה. משימת קוד יכולה להגדיר את הקלט המתקבל, ערך ההחזרה המצופה והאילוצים על שינוי התנהגות קיימת. בקשו את המימוש ולאחריו דוגמאות למקרה רגיל ולמקרה קצה. אלה שימושים ביכולות השפה והקוד המתועדות; יצירת קוד היא תוצאה טקסטואלית, ואילו הרצתו שייכת לסביבת היישום.</p><p>לעריכה רב-לשונית, ספקו את הקטע המקורי, קהל היעד ורשימת מינוח קטנה. בקשו גרסה מתוקנת ששומרת על השמות והתנאים המקוריים ולאחריה הסבר קצר לשינויים. זה ממוקד יותר מבקשה לשפר את הטקסט: הוא מגדיר איזה מובן חייב להישמר ואיזה פלט שימושי יש להחזיר.</p><p>עיבוד טקסט ארוך</p><p>היצרן מתעד תמיכה בהקשר עד 131,072 טוקנים, אך ההוראות להקשר ארוך חשובות. קלט מעבר ל-32,768 טוקנים דורש את תצורת ההרחבה YaRN המתועדת. הדוגמה שפורסמה משתמשת במקדם קנה מידה של 4.0 ובהגדרת מיקומים מקורית של 32,768. היצרן מציין שהגדרת הרחבה סטטית עלולה להשפיע על התנהגות בטקסט קצר יותר וממליץ להפעילה כשבאמת נדרש עיבוד הקשר ארוך.</p><p>הכינו משימת מסמך ארוך עם שאלה ממוקדת, סעיפי מקור בעלי שמות ומבנה פלט מפורש. לדוגמה, ספקו כמה חלקים ממפרט טכני ובקשו את הדרישות הרלוונטיות לשינוי מסוים, עם סעיף המקור לצד כל ממצא. חלון קלט גדול שימושי לשמירת החלקים האלה יחד; התשובה עדיין יכולה להיות טבלה תמציתית במקום חזרה על כל המסמך.</p><p>גבולות חשובים</p><p>המספר 131,072 טוקנים מציין תמיכה בהקשר מורחב, ולא היתר להתעלם מהתצורה להקשר ארוך. 512 הטוקנים שנוצרים בדוגמת ההתחלה המהירה הם הגדרת דוגמה, ולא קיבולת פלט מרבית שפורסמה. גרסת Instruct זו היא מודל טקסט ואינה צריכה לרשת יכולות תמונה או וידאו מ-Qwen-VL, או את האימון המתמטי המיוחד המשולב בכלים של Qwen2.5-Math. בחרו את הגרסה בעלת השם והכינו את הטקסט להסבר, לקוד או למסמך המסוימים שאתם צריכים.</p>",
  "aboutText": "Qwen2-7B-Instruct היא גרסת Qwen2 בגודל 7B המכווננת להוראות, לשיחה ולמשימות המנוסחות בשפה טבעית. זהו מודל עם קלט טקסט ופלט טקסט: התשובה יכולה להיות הסבר, תרגום, טיוטת מסמך או קוד תוכנה. היצרן מציין הבנת שפה, יצירה, עבודה רב-לשונית, קוד, מתמטיקה וחשיבה כתחומי השימוש העיקריים.\n\nפרטי המודל\n\nQwen2 כולל גרסאות בסיס וגרסאות מכווננות להוראות נפרדות. כרטיס זה עוסק בגרסת Instruct, ולא במודל הבסיס Qwen2-7B או בגרסת תערובת המומחים של המשפחה. טבלת המידע של היצרן מציינת 7.07 מיליארד פרמטרים במודל בגודל 7B. ה-Transformer המפענח שלו משתמש ב-SwiGLU, בהטיית קשב QKV ובקשב עם שאילתות מקובצות, עם טוקנייזר שתוכנן לשפות טבעיות ולקוד. אלה בחירות ארכיטקטורה וייצוג, ולא אופני קלט נוספים.\n\nהודעת הגרסה מתארת אימון באנגלית ובסינית וב-27 שפות נוספות. הן כוללות רוסית, צ'כית ופולנית; גרמנית, צרפתית וספרדית; ערבית, פרסית וטורקית; יפנית וקוריאנית; ושפות נוספות בדרום אסיה ובדרום-מזרח אסיה. עוזר רב-לשוני יכול לכן לקבל הוראה וחומר מקור בשפות שונות, אך עדיין צריך לציין את השפה, המינוח והקהל של התוצר הסופי.\n\nהאימון וההבחנה בגרסת Instruct\n\nלאחר הקדם-אימון, היצרן משתמש בכיוונון עדין מפוקח ובאופטימיזציה ישירה של העדפות. הגרסה המכווננת להוראות מיועדת להגיב לבקשה בשיחה, ואילו לגרסת הבסיס יש תפקיד אחר כבסיס למודל שפה. שמרו על שם גרסה מפורש בעת בחירת מודל או השוואת התנהגות הנחיות. אימון מודל לביצוע הוראות ומתן הוראה מדויקת בזמן השימוש הם חלקים משלימים בתהליך העבודה.\n\nהכנת קלט לשיחה\n\nמדריך ההתחלה המהירה בכרטיס המודל מפריד בין הוראת מערכת לשאלת המשתמש ומחיל את תבנית הצ'אט המתאימה לפני היצירה. במשימה ברמת היישום, אותה הבחנה מעשית שימושית: הגדירו את תפקיד העוזר ואת כללי התשובה בנפרד מקטע המקור או מהקוד שעליו לעבוד עליהם. תווית טקסטואלית בתוך מסמך אינה תחליף לתפקידי שיחה בפורמט תקין בממשק המשתמש במודל.\n\nמשימת הסבר טכני יכולה לספק פונקציה ודוגמת קלט אחת, ואז לשאול מה כל ענף עושה ואילו תנאים משפיעים על התוצאה. משימת קוד יכולה להגדיר את הקלט המתקבל, ערך ההחזרה המצופה והאילוצים על שינוי התנהגות קיימת. בקשו את המימוש ולאחריו דוגמאות למקרה רגיל ולמקרה קצה. אלה שימושים ביכולות השפה והקוד המתועדות; יצירת קוד היא תוצאה טקסטואלית, ואילו הרצתו שייכת לסביבת היישום.\n\nלעריכה רב-לשונית, ספקו את הקטע המקורי, קהל היעד ורשימת מינוח קטנה. בקשו גרסה מתוקנת ששומרת על השמות והתנאים המקוריים ולאחריה הסבר קצר לשינויים. זה ממוקד יותר מבקשה לשפר את הטקסט: הוא מגדיר איזה מובן חייב להישמר ואיזה פלט שימושי יש להחזיר.\n\nעיבוד טקסט ארוך\n\nהיצרן מתעד תמיכה בהקשר עד 131,072 טוקנים, אך ההוראות להקשר ארוך חשובות. קלט מעבר ל-32,768 טוקנים דורש את תצורת ההרחבה YaRN המתועדת. הדוגמה שפורסמה משתמשת במקדם קנה מידה של 4.0 ובהגדרת מיקומים מקורית של 32,768. היצרן מציין שהגדרת הרחבה סטטית עלולה להשפיע על התנהגות בטקסט קצר יותר וממליץ להפעילה כשבאמת נדרש עיבוד הקשר ארוך.\n\nהכינו משימת מסמך ארוך עם שאלה ממוקדת, סעיפי מקור בעלי שמות ומבנה פלט מפורש. לדוגמה, ספקו כמה חלקים ממפרט טכני ובקשו את הדרישות הרלוונטיות לשינוי מסוים, עם סעיף המקור לצד כל ממצא. חלון קלט גדול שימושי לשמירת החלקים האלה יחד; התשובה עדיין יכולה להיות טבלה תמציתית במקום חזרה על כל המסמך.\n\nגבולות חשובים\n\nהמספר 131,072 טוקנים מציין תמיכה בהקשר מורחב, ולא היתר להתעלם מהתצורה להקשר ארוך. 512 הטוקנים שנוצרים בדוגמת ההתחלה המהירה הם הגדרת דוגמה, ולא קיבולת פלט מרבית שפורסמה. גרסת Instruct זו היא מודל טקסט ואינה צריכה לרשת יכולות תמונה או וידאו מ-Qwen-VL, או את האימון המתמטי המיוחד המשולב בכלים של Qwen2.5-Math. בחרו את הגרסה בעלת השם והכינו את הטקסט להסבר, לקוד או למסמך המסוימים שאתם צריכים.",
  "editorialOverlay": {
    "copy_fields": {
      "practical_html": "<h3>משימה מעשית</h3><p>דוגמה טכנית באנגלית</p><pre><code>Translate a terminology-bound notice\n\nTranslate this notice into German for office staff: &#x27;The access badge expires on 30 April. Collect a replacement from Reception before your next shift. Temporary passes are valid for one day.&#x27; Use Zugangskarte for access badge and Empfang for Reception. Preserve the date and conditions, then explain one translation choice in English.</code></pre><h4>התוצאה הצפויה</h4><pre><code>A complete German notice followed by one short English explanation of terminology or phrasing.</code></pre><h4>בדיקת התוצאה</h4><pre><code>The replacement is collected before the next shift and the temporary pass remains valid for one day.</code></pre>"
    },
    "copy_sha256": "ac455fea3b94b77d0d122d85456cc10b01ee0a1c43cb54d7f29ed9dbd7da6a1e",
    "copy_source": {
      "locale": "he",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "Qwen/Qwen2-7B-Instruct",
      "source_facts_sha256": "968ce477f5bc5c2322aa83d31392383582d24dc6c27775e68a1719ceb74ecb47",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "17ca68bb7b33daafdd5c7e1f3d9f01ba359c0f29450df2a8a9c2bf0e3844f5be",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "he",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Al</span><h2 id=\"sheet-title\">Qwen2 7B Instruct</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>Qwen/Qwen2-7B-Instruct</code><button type=\"button\" id=\"copy-id\">העתקת ID</button></div><nav class=\"card-jump-nav\" aria-label=\"חלקי כרטיס המודל\"><button type=\"button\" data-card-jump=\"overview\">התחלה</button><button type=\"button\" data-card-jump=\"methods\">קלט ושיטות</button><button type=\"button\" data-card-jump=\"pricing\">תעריפים</button><button type=\"button\" data-card-jump=\"examples\">דוגמאות</button><button type=\"button\" data-card-jump=\"results\">תוצאות</button><button type=\"button\" data-card-jump=\"aliases\">כינויים</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"שיטות API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|Qwen%2FQwen2-7B-Instruct\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|Qwen%2FQwen2-7B-Instruct\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">התחלה</h3><p class=\"mdesc-full\">Qwen2-7B-Instruct הוא מודל טקסט המכוונן להוראות לדיאלוג רב-לשוני, קוד, מתמטיקה וחשיבה. היצרן מתעד הקשר של עד 131,072 טוקנים כשהתצורה להקשר ארוך מופעלת.</p><dl class=\"card-io\" data-card-io><div><dt>סוגי קלט נתמכים</dt><dd>טקסט</dd></div><div><dt>תוצאות</dt><dd>טקסט</dd></div></dl><details class=\"card-about\"><summary>על המודל</summary><p class=\"note-s\" data-model-method-boundary>התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.</p><div class=\"mabout\" id=\"m-about\"><p>Qwen2-7B-Instruct היא גרסת Qwen2 בגודל 7B המכווננת להוראות, לשיחה ולמשימות המנוסחות בשפה טבעית. זהו מודל עם קלט טקסט ופלט טקסט: התשובה יכולה להיות הסבר, תרגום, טיוטת מסמך או קוד תוכנה. היצרן מציין הבנת שפה, יצירה, עבודה רב-לשונית, קוד, מתמטיקה וחשיבה כתחומי השימוש העיקריים.</p><p>פרטי המודל</p><p>Qwen2 כולל גרסאות בסיס וגרסאות מכווננות להוראות נפרדות. כרטיס זה עוסק בגרסת Instruct, ולא במודל הבסיס Qwen2-7B או בגרסת תערובת המומחים של המשפחה. טבלת המידע של היצרן מציינת 7.07 מיליארד פרמטרים במודל בגודל 7B. ה-Transformer המפענח שלו משתמש ב-SwiGLU, בהטיית קשב QKV ובקשב עם שאילתות מקובצות, עם טוקנייזר שתוכנן לשפות טבעיות ולקוד. אלה בחירות ארכיטקטורה וייצוג, ולא אופני קלט נוספים.</p><p>הודעת הגרסה מתארת אימון באנגלית ובסינית וב-27 שפות נוספות. הן כוללות רוסית, צ&#39;כית ופולנית; גרמנית, צרפתית וספרדית; ערבית, פרסית וטורקית; יפנית וקוריאנית; ושפות נוספות בדרום אסיה ובדרום-מזרח אסיה. עוזר רב-לשוני יכול לכן לקבל הוראה וחומר מקור בשפות שונות, אך עדיין צריך לציין את השפה, המינוח והקהל של התוצר הסופי.</p><p>האימון וההבחנה בגרסת Instruct</p><p>לאחר הקדם-אימון, היצרן משתמש בכיוונון עדין מפוקח ובאופטימיזציה ישירה של העדפות. הגרסה המכווננת להוראות מיועדת להגיב לבקשה בשיחה, ואילו לגרסת הבסיס יש תפקיד אחר כבסיס למודל שפה. שמרו על שם גרסה מפורש בעת בחירת מודל או השוואת התנהגות הנחיות. אימון מודל לביצוע הוראות ומתן הוראה מדויקת בזמן השימוש הם חלקים משלימים בתהליך העבודה.</p><p>הכנת קלט לשיחה</p><p>מדריך ההתחלה המהירה בכרטיס המודל מפריד בין הוראת מערכת לשאלת המשתמש ומחיל את תבנית הצ&#39;אט המתאימה לפני היצירה. במשימה ברמת היישום, אותה הבחנה מעשית שימושית: הגדירו את תפקיד העוזר ואת כללי התשובה בנפרד מקטע המקור או מהקוד שעליו לעבוד עליהם. תווית טקסטואלית בתוך מסמך אינה תחליף לתפקידי שיחה בפורמט תקין בממשק המשתמש במודל.</p><p>משימת הסבר טכני יכולה לספק פונקציה ודוגמת קלט אחת, ואז לשאול מה כל ענף עושה ואילו תנאים משפיעים על התוצאה. משימת קוד יכולה להגדיר את הקלט המתקבל, ערך ההחזרה המצופה והאילוצים על שינוי התנהגות קיימת. בקשו את המימוש ולאחריו דוגמאות למקרה רגיל ולמקרה קצה. אלה שימושים ביכולות השפה והקוד המתועדות; יצירת קוד היא תוצאה טקסטואלית, ואילו הרצתו שייכת לסביבת היישום.</p><p>לעריכה רב-לשונית, ספקו את הקטע המקורי, קהל היעד ורשימת מינוח קטנה. בקשו גרסה מתוקנת ששומרת על השמות והתנאים המקוריים ולאחריה הסבר קצר לשינויים. זה ממוקד יותר מבקשה לשפר את הטקסט: הוא מגדיר איזה מובן חייב להישמר ואיזה פלט שימושי יש להחזיר.</p><p>עיבוד טקסט ארוך</p><p>היצרן מתעד תמיכה בהקשר עד 131,072 טוקנים, אך ההוראות להקשר ארוך חשובות. קלט מעבר ל-32,768 טוקנים דורש את תצורת ההרחבה YaRN המתועדת. הדוגמה שפורסמה משתמשת במקדם קנה מידה של 4.0 ובהגדרת מיקומים מקורית של 32,768. היצרן מציין שהגדרת הרחבה סטטית עלולה להשפיע על התנהגות בטקסט קצר יותר וממליץ להפעילה כשבאמת נדרש עיבוד הקשר ארוך.</p><p>הכינו משימת מסמך ארוך עם שאלה ממוקדת, סעיפי מקור בעלי שמות ומבנה פלט מפורש. לדוגמה, ספקו כמה חלקים ממפרט טכני ובקשו את הדרישות הרלוונטיות לשינוי מסוים, עם סעיף המקור לצד כל ממצא. חלון קלט גדול שימושי לשמירת החלקים האלה יחד; התשובה עדיין יכולה להיות טבלה תמציתית במקום חזרה על כל המסמך.</p><p>גבולות חשובים</p><p>המספר 131,072 טוקנים מציין תמיכה בהקשר מורחב, ולא היתר להתעלם מהתצורה להקשר ארוך. 512 הטוקנים שנוצרים בדוגמת ההתחלה המהירה הם הגדרת דוגמה, ולא קיבולת פלט מרבית שפורסמה. גרסת Instruct זו היא מודל טקסט ואינה צריכה לרשת יכולות תמונה או וידאו מ-Qwen-VL, או את האימון המתמטי המיוחד המשולב בכלים של Qwen2.5-Math. בחרו את הגרסה בעלת השם והכינו את הטקסט להסבר, לקוד או למסמך המסוימים שאתם צריכים.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">זמין ב-Ailoot · קלט ושיטות</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · OpenAI Chat</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>סוגי קלט</dt><dd><code>text</code></dd></div><div><dt>סוגי פלט</dt><dd><code>text</code></dd></div><div><dt>פורמט פלט</dt><dd>json או SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>שדה</th><th>סוג</th><th>דרישה</th><th>ערכים ומגבלות</th><th>ברירת מחדל</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>Qwen/Qwen2-7B-Instruct</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>message[]</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>מספר פריטים מזערי: ⁦1⁩</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>דוגמאות: system, user, assistant, tool, function</div><div>תנאים: התפקידים האלה מיוצגים במפורש בטיפוסי התאימות בקוד המקור; מערך התפקידים המדויק נשאר ייחודי לכל מודל.</div><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string|content_part[]|null</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].tool_calls</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>tool_call[]</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].tool_call_id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>חל כאשר: role=tool; השתמשו במזהה שהוחזר בפועל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].name</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].reasoning_content</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>חל כאשר: החזירו בהמשך את ההנמקה שהתקבלה בפועל כאשר המודל הזה משתמש בה</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].reasoning_details</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>object|array</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>integer</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>מינימום: ⁦1⁩</div><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">max_completion_tokens</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>integer</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>מינימום: ⁦1⁩</div><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>boolean</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>false</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">stream_options.include_usage</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>boolean</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>number</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">top_p</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>number</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">stop</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string|string[]</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">tools</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>function_tool[]</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">tools[].type</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>function</div><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">tools[].function.name</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>חל כאשר: סופק כלי פונקציה</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">tools[].function.description</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">tools[].function.parameters</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>JSON_schema</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">tool_choice</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string|object</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">parallel_tool_calls</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>boolean</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>object</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">reasoning_effort</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">reasoning</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>object</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">service_tier</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_compatibility\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">instructions</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">שדה תאימות</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">functions</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>function[]</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">function_call</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string|object</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">prompt_cache_options</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>object</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div class=\"note-s\">תלוי במודל</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">modalities</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string[]</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>text</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>object</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>תנאים: provider.options נדחה במסלול הטקסט הזה של Ultra</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">cache_control.ttl</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>תנאים: 1h נדחה במיקומים המשמשים בפועל למטמון הנחיות</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>שילובים של חומרי קלט</summary><p class=\"note-s\"><b>טקסט</b> · טקסט UTF8</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>פרמטרים ומחזור חיים של השיטה</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>פרמטר</th><th>מפרט</th></tr></thead><tbody><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>content_type</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>application/json</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>required</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>model, messages</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>material_types</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>messages</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>מערך הודעות במבנה role/content</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>file_material</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>מסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional_controls</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>stream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>control_scope</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>ייחודי למודל; כלי פונקציות של המשתמש שונים מכלים מתארחים</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>output_modalities</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>hosted_operations</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>false</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>multimodal_input_binding</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>null</td></tr></tbody></table></div><p>מחזור חיים: <code>synchronous_or_streamed</code></p><p class=\"note-s\">שלחו את מזהה המודל המדויק עם messages.</p><p class=\"note-s\">אורך ההקשר אינו תקרת פלט.</p><p class=\"note-s\">קובץ טקסט יכול לספק טקסט מילולי; קלטי תמונה/אודיו/אובייקט קובץ דורשים קישור מדויק.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">תעריפים</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.</p><dl data-price-conditions><dt>מצב מהיר</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב מהיר</span></dd><dt>מצב Flex</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב flex</span></dd><dt>מאמץ חשיבה מרבי</dt><dd>לא צוין <span class=\"note-s\">כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>תעריפי Ailoot</h4><h4>מחירים לפי תצורה</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>תצורה</th><th>טבלת תעריפים</th><th>חיוב</th></tr></thead><tbody><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>תעריפי הבסיס לטוקנים</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>תעריף בסיס</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>קלט · טוקני קלט</span> <b>$0.0001</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>פלט · טוקני פלט</span> <b>$0.0001</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · קריאה מהמטמון</span> <b>$0</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון</span> <b>$0</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון, 1 שעה</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. <a href=\"/docs/he/billing/reserve/\">איך פועלים שריון הסכום והסדרת החיוב →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">דוגמאות לבקשות</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-915-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-915-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-915-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-915-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button><button class=\"cg-tab\" id=\"model-code-915-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-915-panel-2\" aria-selected=\"false\" tabindex=\"-1\">הזרמה ב-Python</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-915-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-915-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;Qwen/Qwen2-7B-Instruct&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain the difference between an observation and a hypothesis in three sentences.&quot;}]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-915-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-915-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&#39;Qwen/Qwen2-7B-Instruct&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-915-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-915-tab-2\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nwith client.chat.completions.stream(model=&#39;Qwen/Qwen2-7B-Instruct&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}]) as stream:\n    with Path(&quot;stream-events.jsonl&quot;).open(&quot;w&quot;,encoding=&quot;utf-8&quot;) as log:\n        for event in stream:\n            payload=event.to_dict(mode=&quot;json&quot;)\n            log.write(json.dumps(payload,ensure_ascii=False)+&quot;\\n&quot;); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=&quot;json&quot;),&quot;stream-result&quot;)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">קבלה ושמירה של תוצאות</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">json או SSE</p><div class=\"card-result-process\" data-all-results><h5>שמירת כל התוצאות שהושלמו</h5><p class=\"note-s\">שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.</p><p class=\"note-s\">שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.</p></div><details class=\"card-about\" data-output-fields><summary>שדות התגובה</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>שדה</th><th>סוג</th></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">choices[].index</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>integer</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">choices[].message.content</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string|null</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">choices[].message.tool_calls</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>tool_call[]</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">choices[].message.reasoning_content</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">choices[].message.reasoning_details</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>object|array</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">choices[].finish_reason</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string|null</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>שגיאות והשלבים הבאים</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>תגובה</th><th>תנאי</th><th>השלב הבא</th></tr></thead><tbody><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>תקנו את השדות שצוינו לפני בקשת יצירה חדשה.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">כינויים</h3><h4>כינויים למודל</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=Qwen%2FQwen2-7B-Instruct&amp;route=Ultra&amp;caller=Qwen%2FQwen2-7B-Instruct&amp;fmt=chat\"><code>Qwen/Qwen2-7B-Instruct</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\">השתמשו בנתיבי השיטות המוצגים למעלה.</p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=Qwen%2FQwen2-7B-Instruct&amp;route=Ultra&amp;caller=Qwen%2FQwen2-7B-Instruct&amp;fmt=chat\"><code>Qwen/Qwen2-7B-Instruct</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "Qwen/Qwen2-7B-Instruct",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "Qwen/Qwen2-7B-Instruct",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|Qwen%2FQwen2-7B-Instruct",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "טקסט UTF8"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json או SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "Qwen/Qwen2-7B-Instruct"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "התפקידים האלה מיוצגים במפורש בטיפוסי התאימות בקוד המקור; מערך התפקידים המדויק נשאר ייחודי לכל מודל.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; השתמשו במזהה שהוחזר בפועל"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "החזירו בהמשך את ההנמקה שהתקבלה בפועל כאשר המודל הזה משתמש בה"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "סופק כלי פונקציה"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options נדחה במסלול הטקסט הזה של Ultra",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h נדחה במיקומים המשמשים בפועל למטמון הנחיות",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "שלחו את מזהה המודל המדויק עם messages.",
            "אורך ההקשר אינו תקרת פלט.",
            "קובץ טקסט יכול לספק טקסט מילולי; קלטי תמונה/אודיו/אובייקט קובץ דורשים קישור מדויק."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "ייחודי למודל; כלי פונקציות של המשתמש שונים מכלים מתארחים",
            "file_material": "מסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "מערך הודעות במבנה role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "תעריפי הבסיס לטוקנים",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"Qwen/Qwen2-7B-Instruct\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='Qwen/Qwen2-7B-Instruct',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='Qwen/Qwen2-7B-Instruct',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 0.1,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "Qwen/Qwen2-7B-Instruct",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Al</span><h2 id=\"sheet-title\">Qwen2 7B Instruct</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>Qwen/Qwen2-7B-Instruct</code><button type=\"button\" id=\"copy-id\">העתקת ID</button></div><nav class=\"card-jump-nav\" aria-label=\"חלקי כרטיס המודל\"><button type=\"button\" data-card-jump=\"overview\">התחלה</button><button type=\"button\" data-card-jump=\"methods\">קלט ושיטות</button><button type=\"button\" data-card-jump=\"pricing\">תעריפים</button><button type=\"button\" data-card-jump=\"examples\">דוגמאות</button><button type=\"button\" data-card-jump=\"results\">תוצאות</button><button type=\"button\" data-card-jump=\"aliases\">כינויים</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"שיטות API\"><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|Qwen%2FQwen2-7B-Instruct\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|Qwen%2FQwen2-7B-Instruct\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">התחלה</h3><p class=\"mdesc-full\">Qwen2-7B-Instruct הוא מודל טקסט המכוונן להוראות לדיאלוג רב-לשוני, קוד, מתמטיקה וחשיבה. היצרן מתעד הקשר של עד 131,072 טוקנים כשהתצורה להקשר ארוך מופעלת.</p><dl class=\"card-io\" data-card-io><div><dt>סוגי קלט נתמכים</dt><dd>טקסט</dd></div><div><dt>תוצאות</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>על המודל</summary><p class=\"note-s\" data-model-method-boundary>התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.</p><div class=\"mabout\" id=\"m-about\"><p>Qwen2-7B-Instruct היא גרסת Qwen2 בגודל 7B המכווננת להוראות, לשיחה ולמשימות המנוסחות בשפה טבעית. זהו מודל עם קלט טקסט ופלט טקסט: התשובה יכולה להיות הסבר, תרגום, טיוטת מסמך או קוד תוכנה. היצרן מציין הבנת שפה, יצירה, עבודה רב-לשונית, קוד, מתמטיקה וחשיבה כתחומי השימוש העיקריים.</p><p>פרטי המודל</p><p>Qwen2 כולל גרסאות בסיס וגרסאות מכווננות להוראות נפרדות. כרטיס זה עוסק בגרסת Instruct, ולא במודל הבסיס Qwen2-7B או בגרסת תערובת המומחים של המשפחה. טבלת המידע של היצרן מציינת 7.07 מיליארד פרמטרים במודל בגודל 7B. ה-Transformer המפענח שלו משתמש ב-SwiGLU, בהטיית קשב QKV ובקשב עם שאילתות מקובצות, עם טוקנייזר שתוכנן לשפות טבעיות ולקוד. אלה בחירות ארכיטקטורה וייצוג, ולא אופני קלט נוספים.</p><p>הודעת הגרסה מתארת אימון באנגלית ובסינית וב-27 שפות נוספות. הן כוללות רוסית, צ&#39;כית ופולנית; גרמנית, צרפתית וספרדית; ערבית, פרסית וטורקית; יפנית וקוריאנית; ושפות נוספות בדרום אסיה ובדרום-מזרח אסיה. עוזר רב-לשוני יכול לכן לקבל הוראה וחומר מקור בשפות שונות, אך עדיין צריך לציין את השפה, המינוח והקהל של התוצר הסופי.</p><p>האימון וההבחנה בגרסת Instruct</p><p>לאחר הקדם-אימון, היצרן משתמש בכיוונון עדין מפוקח ובאופטימיזציה ישירה של העדפות. הגרסה המכווננת להוראות מיועדת להגיב לבקשה בשיחה, ואילו לגרסת הבסיס יש תפקיד אחר כבסיס למודל שפה. שמרו על שם גרסה מפורש בעת בחירת מודל או השוואת התנהגות הנחיות. אימון מודל לביצוע הוראות ומתן הוראה מדויקת בזמן השימוש הם חלקים משלימים בתהליך העבודה.</p><p>הכנת קלט לשיחה</p><p>מדריך ההתחלה המהירה בכרטיס המודל מפריד בין הוראת מערכת לשאלת המשתמש ומחיל את תבנית הצ&#39;אט המתאימה לפני היצירה. במשימה ברמת היישום, אותה הבחנה מעשית שימושית: הגדירו את תפקיד העוזר ואת כללי התשובה בנפרד מקטע המקור או מהקוד שעליו לעבוד עליהם. תווית טקסטואלית בתוך מסמך אינה תחליף לתפקידי שיחה בפורמט תקין בממשק המשתמש במודל.</p><p>משימת הסבר טכני יכולה לספק פונקציה ודוגמת קלט אחת, ואז לשאול מה כל ענף עושה ואילו תנאים משפיעים על התוצאה. משימת קוד יכולה להגדיר את הקלט המתקבל, ערך ההחזרה המצופה והאילוצים על שינוי התנהגות קיימת. בקשו את המימוש ולאחריו דוגמאות למקרה רגיל ולמקרה קצה. אלה שימושים ביכולות השפה והקוד המתועדות; יצירת קוד היא תוצאה טקסטואלית, ואילו הרצתו שייכת לסביבת היישום.</p><p>לעריכה רב-לשונית, ספקו את הקטע המקורי, קהל היעד ורשימת מינוח קטנה. בקשו גרסה מתוקנת ששומרת על השמות והתנאים המקוריים ולאחריה הסבר קצר לשינויים. זה ממוקד יותר מבקשה לשפר את הטקסט: הוא מגדיר איזה מובן חייב להישמר ואיזה פלט שימושי יש להחזיר.</p><p>עיבוד טקסט ארוך</p><p>היצרן מתעד תמיכה בהקשר עד 131,072 טוקנים, אך ההוראות להקשר ארוך חשובות. קלט מעבר ל-32,768 טוקנים דורש את תצורת ההרחבה YaRN המתועדת. הדוגמה שפורסמה משתמשת במקדם קנה מידה של 4.0 ובהגדרת מיקומים מקורית של 32,768. היצרן מציין שהגדרת הרחבה סטטית עלולה להשפיע על התנהגות בטקסט קצר יותר וממליץ להפעילה כשבאמת נדרש עיבוד הקשר ארוך.</p><p>הכינו משימת מסמך ארוך עם שאלה ממוקדת, סעיפי מקור בעלי שמות ומבנה פלט מפורש. לדוגמה, ספקו כמה חלקים ממפרט טכני ובקשו את הדרישות הרלוונטיות לשינוי מסוים, עם סעיף המקור לצד כל ממצא. חלון קלט גדול שימושי לשמירת החלקים האלה יחד; התשובה עדיין יכולה להיות טבלה תמציתית במקום חזרה על כל המסמך.</p><p>גבולות חשובים</p><p>המספר 131,072 טוקנים מציין תמיכה בהקשר מורחב, ולא היתר להתעלם מהתצורה להקשר ארוך. 512 הטוקנים שנוצרים בדוגמת ההתחלה המהירה הם הגדרת דוגמה, ולא קיבולת פלט מרבית שפורסמה. גרסת Instruct זו היא מודל טקסט ואינה צריכה לרשת יכולות תמונה או וידאו מ-Qwen-VL, או את האימון המתמטי המיוחד המשולב בכלים של Qwen2.5-Math. בחרו את הגרסה בעלת השם והכינו את הטקסט להסבר, לקוד או למסמך המסוימים שאתם צריכים.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">זמין ב-Ailoot · קלט ושיטות</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Anthropic Messages</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>סוגי קלט</dt><dd><code>text</code></dd></div><div><dt>סוגי פלט</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>פורמט פלט</dt><dd>JSON או SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>שדה</th><th>סוג</th><th>דרישה</th><th>ערכים ומגבלות</th><th>ברירת מחדל</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>Qwen/Qwen2-7B-Instruct</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>message[]</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>user, assistant</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>integer</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>boolean</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>שילובים של חומרי קלט</summary><p class=\"note-s\"><b>טקסט</b> · טקסט UTF-8</p><p class=\"note-s\"><code>מחרוזת messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>פרמטרים ומחזור חיים של השיטה</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>פרמטר</th><th>מפרט</th></tr></thead><tbody><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>content_type</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>application/json</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>required</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>model, messages, max_tokens</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional_controls</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>stream</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>material_types</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>text_file_material</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>קראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה.</td></tr></tbody></table></div><p>מחזור חיים: <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">תעריפים</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.</p><dl data-price-conditions><dt>מצב מהיר</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב מהיר</span></dd><dt>מצב Flex</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב flex</span></dd><dt>מאמץ חשיבה מרבי</dt><dd>לא צוין <span class=\"note-s\">כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>תעריפי Ailoot</h4><h4>מחירים לפי תצורה</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>תצורה</th><th>טבלת תעריפים</th><th>חיוב</th></tr></thead><tbody><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>תעריפי הבסיס לטוקנים</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>תעריף בסיס</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>קלט · טוקני קלט</span> <b>$0.0001</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>פלט · טוקני פלט</span> <b>$0.0001</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · קריאה מהמטמון</span> <b>$0</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון</span> <b>$0</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון, 1 שעה</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. <a href=\"/docs/he/billing/reserve/\">איך פועלים שריון הסכום והסדרת החיוב →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">דוגמאות לבקשות</h3><h4>Ailoot Ultra · Anthropic Messages</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-916-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-916-panel-0\" aria-selected=\"true\" tabindex=\"0\">גוף JSON מינימלי ושלם</button><button class=\"cg-tab\" id=\"model-code-916-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-916-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · השתמשו במסמך UTF-8 שלכם</button><button class=\"cg-tab\" id=\"model-code-916-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-916-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · שמרו את התוצאה המלאה</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-916-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-916-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;Qwen/Qwen2-7B-Instruct&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-916-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-916-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;Qwen/Qwen2-7B-Instruct&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-916-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-916-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;Qwen/Qwen2-7B-Instruct&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">קבלה ושמירה של תוצאות</h3><h4>Ailoot Ultra · Anthropic Messages</h4><p class=\"note-s\">JSON או SSE</p><div class=\"card-result-process\" data-all-results><h5>שמירת כל התוצאות שהושלמו</h5><p class=\"note-s\">שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.</p><p class=\"note-s\">שמרו את כל בלוקי התוכן, חתימות החשיבה ומזהי השימוש בכלים בפועל. הרכיבו את כל עדכוני הבלוקים של SSE; בלוק הטקסט הראשון אינו הפלט המלא.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.</p></div><details class=\"card-about\" data-output-fields><summary>שדות התגובה</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>שדה</th><th>סוג</th></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">content[]</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">stop_reason</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string|null</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>שגיאות והשלבים הבאים</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>תגובה</th><th>תנאי</th><th>השלב הבא</th></tr></thead><tbody><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>תקנו את השדות שצוינו לפני בקשת יצירה חדשה.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">כינויים</h3><h4>כינויים למודל</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=Qwen%2FQwen2-7B-Instruct&amp;route=Ultra&amp;caller=Qwen%2FQwen2-7B-Instruct&amp;fmt=messages\"><code>Qwen/Qwen2-7B-Instruct</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\">השתמשו בנתיבי השיטות המוצגים למעלה.</p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=Qwen%2FQwen2-7B-Instruct&amp;route=Ultra&amp;caller=Qwen%2FQwen2-7B-Instruct&amp;fmt=messages\"><code>Qwen/Qwen2-7B-Instruct</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "Qwen/Qwen2-7B-Instruct",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "Qwen/Qwen2-7B-Instruct",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|Qwen%2FQwen2-7B-Instruct",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "Qwen/Qwen2-7B-Instruct",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "מחרוזת messages[].content",
                "required_material": "טקסט UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "שמרו את כל בלוקי התוכן, חתימות החשיבה ומזהי השימוש בכלים בפועל. הרכיבו את כל עדכוני הבלוקים של SSE; בלוק הטקסט הראשון אינו הפלט המלא.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON או SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "Qwen/Qwen2-7B-Instruct"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "Qwen/Qwen2-7B-Instruct"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "Qwen/Qwen2-7B-Instruct",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "קראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "תעריפי הבסיס לטוקנים",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"Qwen/Qwen2-7B-Instruct\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'Qwen/Qwen2-7B-Instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'Qwen/Qwen2-7B-Instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 0.1,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "Qwen/Qwen2-7B-Instruct",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "Qwen/Qwen2-7B-Instruct",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "c1e40c5290ab074e60d6c5f8653fc16b868d50096667fc6bb7b08f560195569f",
    "input_html_sha256": "1f746c4a1d922a594d7a32dff10398dcbf811c801df4ec108fdd723ff1aa7cc9",
    "private_audit_sha256": "0259ff118892a60ea087281366919b3fb02550d87cb9bcf67e77ee21ee053947",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/qwen-qwen2-7b-instruct/",
    "description": "Qwen2-7B-Instruct הוא מודל טקסט המכוונן להוראות לדיאלוג רב-לשוני, קוד, מתמטיקה וחשיבה. היצרן מתעד הקשר של עד 131,072 טוקנים כשהתצורה להקשר ארוך מופעלת.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/qwen-qwen2-7b-instruct/index.md",
    "title": "Qwen2 7B Instruct — Ailoot",
    "url": "https://ailoot.ai/models/he/qwen-qwen2-7b-instruct/"
  },
  "practicalHtml": "<h3>משימה מעשית</h3><p>דוגמה טכנית באנגלית</p><pre><code>Translate a terminology-bound notice\n\nTranslate this notice into German for office staff: &#x27;The access badge expires on 30 April. Collect a replacement from Reception before your next shift. Temporary passes are valid for one day.&#x27; Use Zugangskarte for access badge and Empfang for Reception. Preserve the date and conditions, then explain one translation choice in English.</code></pre><h4>התוצאה הצפויה</h4><pre><code>A complete German notice followed by one short English explanation of terminology or phrasing.</code></pre><h4>בדיקת התוצאה</h4><pre><code>The replacement is collected before the next shift and the temporary pass remains valid for one day.</code></pre>",
  "practicalText": "משימה מעשית דוגמה טכנית באנגלית Translate a terminology-bound notice Translate this notice into German for office staff: 'The access badge expires on 30 April. Collect a replacement from Reception before your next shift. Temporary passes are valid for one day.' Use Zugangskarte for access badge and Empfang for Reception. Preserve the date and conditions, then explain one translation choice in English. התוצאה הצפויה A complete German notice followed by one short English explanation of terminology or phrasing. בדיקת התוצאה The replacement is collected before the next shift and the temporary pass remains valid for one day.",
  "rawModel": {
    "about": "Qwen2-7B-Instruct היא גרסת Qwen2 בגודל 7B המכווננת להוראות, לשיחה ולמשימות המנוסחות בשפה טבעית. זהו מודל עם קלט טקסט ופלט טקסט: התשובה יכולה להיות הסבר, תרגום, טיוטת מסמך או קוד תוכנה. היצרן מציין הבנת שפה, יצירה, עבודה רב-לשונית, קוד, מתמטיקה וחשיבה כתחומי השימוש העיקריים.\n\nפרטי המודל\n\nQwen2 כולל גרסאות בסיס וגרסאות מכווננות להוראות נפרדות. כרטיס זה עוסק בגרסת Instruct, ולא במודל הבסיס Qwen2-7B או בגרסת תערובת המומחים של המשפחה. טבלת המידע של היצרן מציינת 7.07 מיליארד פרמטרים במודל בגודל 7B. ה-Transformer המפענח שלו משתמש ב-SwiGLU, בהטיית קשב QKV ובקשב עם שאילתות מקובצות, עם טוקנייזר שתוכנן לשפות טבעיות ולקוד. אלה בחירות ארכיטקטורה וייצוג, ולא אופני קלט נוספים.\n\nהודעת הגרסה מתארת אימון באנגלית ובסינית וב-27 שפות נוספות. הן כוללות רוסית, צ'כית ופולנית; גרמנית, צרפתית וספרדית; ערבית, פרסית וטורקית; יפנית וקוריאנית; ושפות נוספות בדרום אסיה ובדרום-מזרח אסיה. עוזר רב-לשוני יכול לכן לקבל הוראה וחומר מקור בשפות שונות, אך עדיין צריך לציין את השפה, המינוח והקהל של התוצר הסופי.\n\nהאימון וההבחנה בגרסת Instruct\n\nלאחר הקדם-אימון, היצרן משתמש בכיוונון עדין מפוקח ובאופטימיזציה ישירה של העדפות. הגרסה המכווננת להוראות מיועדת להגיב לבקשה בשיחה, ואילו לגרסת הבסיס יש תפקיד אחר כבסיס למודל שפה. שמרו על שם גרסה מפורש בעת בחירת מודל או השוואת התנהגות הנחיות. אימון מודל לביצוע הוראות ומתן הוראה מדויקת בזמן השימוש הם חלקים משלימים בתהליך העבודה.\n\nהכנת קלט לשיחה\n\nמדריך ההתחלה המהירה בכרטיס המודל מפריד בין הוראת מערכת לשאלת המשתמש ומחיל את תבנית הצ'אט המתאימה לפני היצירה. במשימה ברמת היישום, אותה הבחנה מעשית שימושית: הגדירו את תפקיד העוזר ואת כללי התשובה בנפרד מקטע המקור או מהקוד שעליו לעבוד עליהם. תווית טקסטואלית בתוך מסמך אינה תחליף לתפקידי שיחה בפורמט תקין בממשק המשתמש במודל.\n\nמשימת הסבר טכני יכולה לספק פונקציה ודוגמת קלט אחת, ואז לשאול מה כל ענף עושה ואילו תנאים משפיעים על התוצאה. משימת קוד יכולה להגדיר את הקלט המתקבל, ערך ההחזרה המצופה והאילוצים על שינוי התנהגות קיימת. בקשו את המימוש ולאחריו דוגמאות למקרה רגיל ולמקרה קצה. אלה שימושים ביכולות השפה והקוד המתועדות; יצירת קוד היא תוצאה טקסטואלית, ואילו הרצתו שייכת לסביבת היישום.\n\nלעריכה רב-לשונית, ספקו את הקטע המקורי, קהל היעד ורשימת מינוח קטנה. בקשו גרסה מתוקנת ששומרת על השמות והתנאים המקוריים ולאחריה הסבר קצר לשינויים. זה ממוקד יותר מבקשה לשפר את הטקסט: הוא מגדיר איזה מובן חייב להישמר ואיזה פלט שימושי יש להחזיר.\n\nעיבוד טקסט ארוך\n\nהיצרן מתעד תמיכה בהקשר עד 131,072 טוקנים, אך ההוראות להקשר ארוך חשובות. קלט מעבר ל-32,768 טוקנים דורש את תצורת ההרחבה YaRN המתועדת. הדוגמה שפורסמה משתמשת במקדם קנה מידה של 4.0 ובהגדרת מיקומים מקורית של 32,768. היצרן מציין שהגדרת הרחבה סטטית עלולה להשפיע על התנהגות בטקסט קצר יותר וממליץ להפעילה כשבאמת נדרש עיבוד הקשר ארוך.\n\nהכינו משימת מסמך ארוך עם שאלה ממוקדת, סעיפי מקור בעלי שמות ומבנה פלט מפורש. לדוגמה, ספקו כמה חלקים ממפרט טכני ובקשו את הדרישות הרלוונטיות לשינוי מסוים, עם סעיף המקור לצד כל ממצא. חלון קלט גדול שימושי לשמירת החלקים האלה יחד; התשובה עדיין יכולה להיות טבלה תמציתית במקום חזרה על כל המסמך.\n\nגבולות חשובים\n\nהמספר 131,072 טוקנים מציין תמיכה בהקשר מורחב, ולא היתר להתעלם מהתצורה להקשר ארוך. 512 הטוקנים שנוצרים בדוגמת ההתחלה המהירה הם הגדרת דוגמה, ולא קיבולת פלט מרבית שפורסמה. גרסת Instruct זו היא מודל טקסט ואינה צריכה לרשת יכולות תמונה או וידאו מ-Qwen-VL, או את האימון המתמטי המיוחד המשולב בכלים של Qwen2.5-Math. בחרו את הגרסה בעלת השם והכינו את הטקסט להסבר, לקוד או למסמך המסוימים שאתם צריכים.",
    "alias_of": null,
    "aliases": [],
    "author": "Alibaba",
    "available": null,
    "canonical_model": "Qwen/Qwen2-7B-Instruct",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [],
      "manufacturer_output": []
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "התמחור המלא של התצורה מופיע בפרטים."
      }
    ],
    "ctx": null,
    "display_name": "Qwen2 7B Instruct",
    "entity_type": "model",
    "formats": [
      "chat",
      "messages"
    ],
    "id": "Qwen/Qwen2-7B-Instruct",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "טקסט UTF8"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json או SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "Qwen/Qwen2-7B-Instruct"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "התפקידים האלה מיוצגים במפורש בטיפוסי התאימות בקוד המקור; מערך התפקידים המדויק נשאר ייחודי לכל מודל.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; השתמשו במזהה שהוחזר בפועל"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "החזירו בהמשך את ההנמקה שהתקבלה בפועל כאשר המודל הזה משתמש בה"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "סופק כלי פונקציה"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options נדחה במסלול הטקסט הזה של Ultra",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h נדחה במיקומים המשמשים בפועל למטמון הנחיות",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "שלחו את מזהה המודל המדויק עם messages.",
            "אורך ההקשר אינו תקרת פלט.",
            "קובץ טקסט יכול לספק טקסט מילולי; קלטי תמונה/אודיו/אובייקט קובץ דורשים קישור מדויק."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "ייחודי למודל; כלי פונקציות של המשתמש שונים מכלים מתארחים",
            "file_material": "מסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "מערך הודעות במבנה role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "תעריפי הבסיס לטוקנים",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"Qwen/Qwen2-7B-Instruct\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='Qwen/Qwen2-7B-Instruct',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='Qwen/Qwen2-7B-Instruct',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 0.1,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "Qwen/Qwen2-7B-Instruct",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "Qwen/Qwen2-7B-Instruct",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "מחרוזת messages[].content",
                "required_material": "טקסט UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "שמרו את כל בלוקי התוכן, חתימות החשיבה ומזהי השימוש בכלים בפועל. הרכיבו את כל עדכוני הבלוקים של SSE; בלוק הטקסט הראשון אינו הפלט המלא.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON או SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "Qwen/Qwen2-7B-Instruct"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "Qwen/Qwen2-7B-Instruct"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "Qwen/Qwen2-7B-Instruct",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "קראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "תעריפי הבסיס לטוקנים",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"Qwen/Qwen2-7B-Instruct\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'Qwen/Qwen2-7B-Instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'Qwen/Qwen2-7B-Instruct', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 0.1,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 0.1,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0001000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000001",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "Qwen/Qwen2-7B-Instruct",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "Qwen/Qwen2-7B-Instruct",
        "request_model_id": "Qwen/Qwen2-7B-Instruct",
        "route_label": "Ultra"
      }
    ],
    "name": "Pro/Qwen/Qwen2-7B-Instruct",
    "price": {
      "in": 0.1,
      "in_label": null,
      "out": 0.1,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.1,
      "sort_out": 0.1,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "OpenAI Chat · Base token rates",
        "units": [
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Anthropic Messages · Base token rates",
        "units": [
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0001000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000001",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "Qwen/Qwen2-7B-Instruct",
    "short": "Qwen2-7B-Instruct הוא מודל טקסט המכוונן להוראות לדיאלוג רב-לשוני, קוד, מתמטיקה וחשיבה. היצרן מתעד הקשר של עד 131,072 טוקנים כשהתצורה להקשר ארוך מופעלת."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Qwen2-7B-Instruct הוא מודל טקסט המכוונן להוראות לדיאלוג רב-לשוני, קוד, מתמטיקה וחשיבה. היצרן מתעד הקשר של עד 131,072 טוקנים כשהתצורה להקשר ארוך מופעלת.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "eba5aebb8ef8c5f28b6ba91ba98fa29e8d46eb0845a71617bb0679d5221452af",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "390f50914286e0fc178e9bd121895febddd72c69d7b3402e4ba5249249dba273"
}
