{
  "aboutHtml": "<p>DeepSeek V3.2 הוא מודל הטקסט של DeepSeek להסקה ולעבודת סוכנים, עם דגש על עיבוד יעיל של הקשר ארוך. היצרן מרכז את השינויים העיקריים שלו סביב DeepSeek Sparse Attention, מסגרת למידת חיזוק שהורחבה בהיקפה וצינור אימון למשימות סוכן. הוא מקבל שאלות כתובות והקשר ומפיק טקסט, לרבות תשובה, קוד או תוכן של קריאות לכלים. הוא נבדל ממהדורת V3.2 Exp הקודמת ומגרסת ההסקה הנפרדת Speciale.</p><p>DeepSeek Sparse Attention מוסיף לארכיטקטורת הקשב הלטנטי רכיב אינדוקס ובחירה פרטנית של טוקנים. ברצף ארוך, רכיב האינדוקס בוחר את המידע מטוקנים קודמים שישמש בחישוב הקשב העיקרי. הדוח מציין שזהו השינוי הארכיטקטוני לעומת V3.1 Terminus ושהארכיטקטורה זהה לזו של V3.2 Exp. חלון ההקשר שפורסם עבורו הוא בן 128K טוקנים, ומאפשר שימוש בחומר מקור נרחב והמשך עבודה על משימה; גם ההסקה שנוצרת והיסטוריית הכלים צורכות חלק מההקשר הזמין.</p><p>האימון שלאחר האימון הבסיסי מכסה תשובות עם חשיבה ובלעדיה במתמטיקה, בתכנות, בהסקה לוגית, במשימות סוכן כלליות, בתכנות באמצעות סוכנים ובחיפוש. מומחים בתחומים שונים מספקים נתונים המאוחדים במודל הסופי, ולאחר מכן מתבצעת למידת חיזוק משולבת. לשאלה רגילה עשויה להתאים תשובה ישירה; בבעיה קשה, תהליך החשיבה יכול לפתח פתרון לפני הצגת התוצאה הסופית. הגדירו את התשובה או התוצר הנדרשים בנפרד מההסקה שבשלבי הביניים.</p><p>שינוי משמעותי במהדורה הוא חשיבה עם כלים. פורמט השיחה המעודכן מאפשר להסקה להימשך לאורך משימה הכוללת קריאות לכלים, במקום להתייחס לניתוח ולפעולה כאל שלבים שאינם קשורים. היישום מבצע פעולה שהמודל בחר ומחזיר את תוצאתה לשלב הבא. כלל הקשר הכלים של היצרן משמר הסקה קודמת כל עוד מתווספות רק הודעות הקשורות לכלים; כאשר מגיעה הודעת משתמש חדשה, הוא מסיר את ההסקה הזו תוך שמירה על הקריאות לכלים ועל תוצאותיהן. הבחנה נכונה בין תפקידי השיחה חשובה להתנהגות זו.</p><p>לתכנות, ספקו את קטע המקור או הקבצים הרלוונטיים, את הבעיה שנצפתה, את התוצאה המצופה ואת התנאים שהשינוי חייב לשמר. דוגמה להנחיה היא: ״השתמשו בקוד ובתוצאות הכלים שסופקו כדי לאתר את הסיבה, להציע את התיקון הקטן ביותר ולהחזיר את התיקון הסופי עם תוצאת האימות התומכת בו.״ למשימת חיפוש, תארו את השאלה, את הראיות הנדרשות ואת התנאים שבהם תשובה נחשבת שלמה. כלי חיפוש והרצה מסופקים בידי היישום שמסביב, ולא בידי הטקסט לבדו.</p><p>היצרן ממליץ על temperature של 1.0 ועל top-p של 0.95 לשימוש מקומי. V3.2 מציג ייצוג מעודכן לקריאות לכלים ומקודד הודעות ייעודי. תפקיד developer שלו שמור לתבנית סוכן החיפוש של היצרן, וה־API הרשמי אינו מקבל תפקיד זה. המפענח שבמימוש הייחוס מצפה לפלט תקין ואינו מתקן תוצאות בפורמט פגום; כאשר יישום משתמש בשדות שנוצרו או בארגומנטים לכלים, עליו לבדוק את המבנה שלהם לפני פעולה על פיהם.</p><p>הדוח הטכני מציין מסלולי הסקה ארוכים ואימות עצמי חוזר ומיותר כמגבלות מעשיות. משימת סוכן יכולה להגיע לגבול של 128K גם כאשר חומר המקור המקורי מתאים להקשר, משום שפלטי כלים והסקה חוזרת מצטברים. שמרו על תיעוד תמציתי של התצפיות הרלוונטיות והגדירו במפורש את התוצר הסופי. בעבודה התלויה במידע מדויק, צרפו את החומר הסמכותי או ספקו כלי חיפוש מתאים, במקום לצפות שידע האימון יקבע כל עובדה.</p><p>DeepSeek V3.2 Speciale היא גרסה נפרדת להסקה עמוקה עתירת חישוב, ולפי כרטיס המודל היא אינה תומכת בקריאה לכלים. אין להשתמש בתכונותיה כפרופיל הכלים של V3.2 הרגיל. גם לדור V4 המאוחר יותר ולמהדורה הניסיונית הקודמת יש זהויות ואפשרויות תצורה נפרדות. שמרו על מהדורת V3.2 בעלת השם המוגדר בעת השוואת משימות שבהן זהות המודל ופורמט הפרומפט חשובים.</p><p>לניתוח מעשי המבוסס על מקורות, תייגו את החומרים ובקשו מסקנה הנתמכת בקטעים הרלוונטיים, תוך הבחנה בין הנחות למידע חסר. עבור סוכן, הגדירו את הפונקציות המותרות, את התוצאה הסופית המצופה ואת הקריטריון להשלמה. כך מכינים את תהליך ההסקה והשימוש בכלים של המודל להפקת תוצר טקסטואלי, תוצר קוד או תוצר ניתוח שאפשר לבחון ולקשר לראיות שסופקו.</p>",
  "aboutText": "DeepSeek V3.2 הוא מודל הטקסט של DeepSeek להסקה ולעבודת סוכנים, עם דגש על עיבוד יעיל של הקשר ארוך. היצרן מרכז את השינויים העיקריים שלו סביב DeepSeek Sparse Attention, מסגרת למידת חיזוק שהורחבה בהיקפה וצינור אימון למשימות סוכן. הוא מקבל שאלות כתובות והקשר ומפיק טקסט, לרבות תשובה, קוד או תוכן של קריאות לכלים. הוא נבדל ממהדורת V3.2 Exp הקודמת ומגרסת ההסקה הנפרדת Speciale.\n\nDeepSeek Sparse Attention מוסיף לארכיטקטורת הקשב הלטנטי רכיב אינדוקס ובחירה פרטנית של טוקנים. ברצף ארוך, רכיב האינדוקס בוחר את המידע מטוקנים קודמים שישמש בחישוב הקשב העיקרי. הדוח מציין שזהו השינוי הארכיטקטוני לעומת V3.1 Terminus ושהארכיטקטורה זהה לזו של V3.2 Exp. חלון ההקשר שפורסם עבורו הוא בן 128K טוקנים, ומאפשר שימוש בחומר מקור נרחב והמשך עבודה על משימה; גם ההסקה שנוצרת והיסטוריית הכלים צורכות חלק מההקשר הזמין.\n\nהאימון שלאחר האימון הבסיסי מכסה תשובות עם חשיבה ובלעדיה במתמטיקה, בתכנות, בהסקה לוגית, במשימות סוכן כלליות, בתכנות באמצעות סוכנים ובחיפוש. מומחים בתחומים שונים מספקים נתונים המאוחדים במודל הסופי, ולאחר מכן מתבצעת למידת חיזוק משולבת. לשאלה רגילה עשויה להתאים תשובה ישירה; בבעיה קשה, תהליך החשיבה יכול לפתח פתרון לפני הצגת התוצאה הסופית. הגדירו את התשובה או התוצר הנדרשים בנפרד מההסקה שבשלבי הביניים.\n\nשינוי משמעותי במהדורה הוא חשיבה עם כלים. פורמט השיחה המעודכן מאפשר להסקה להימשך לאורך משימה הכוללת קריאות לכלים, במקום להתייחס לניתוח ולפעולה כאל שלבים שאינם קשורים. היישום מבצע פעולה שהמודל בחר ומחזיר את תוצאתה לשלב הבא. כלל הקשר הכלים של היצרן משמר הסקה קודמת כל עוד מתווספות רק הודעות הקשורות לכלים; כאשר מגיעה הודעת משתמש חדשה, הוא מסיר את ההסקה הזו תוך שמירה על הקריאות לכלים ועל תוצאותיהן. הבחנה נכונה בין תפקידי השיחה חשובה להתנהגות זו.\n\nלתכנות, ספקו את קטע המקור או הקבצים הרלוונטיים, את הבעיה שנצפתה, את התוצאה המצופה ואת התנאים שהשינוי חייב לשמר. דוגמה להנחיה היא: ״השתמשו בקוד ובתוצאות הכלים שסופקו כדי לאתר את הסיבה, להציע את התיקון הקטן ביותר ולהחזיר את התיקון הסופי עם תוצאת האימות התומכת בו.״ למשימת חיפוש, תארו את השאלה, את הראיות הנדרשות ואת התנאים שבהם תשובה נחשבת שלמה. כלי חיפוש והרצה מסופקים בידי היישום שמסביב, ולא בידי הטקסט לבדו.\n\nהיצרן ממליץ על temperature של 1.0 ועל top-p של 0.95 לשימוש מקומי. V3.2 מציג ייצוג מעודכן לקריאות לכלים ומקודד הודעות ייעודי. תפקיד developer שלו שמור לתבנית סוכן החיפוש של היצרן, וה־API הרשמי אינו מקבל תפקיד זה. המפענח שבמימוש הייחוס מצפה לפלט תקין ואינו מתקן תוצאות בפורמט פגום; כאשר יישום משתמש בשדות שנוצרו או בארגומנטים לכלים, עליו לבדוק את המבנה שלהם לפני פעולה על פיהם.\n\nהדוח הטכני מציין מסלולי הסקה ארוכים ואימות עצמי חוזר ומיותר כמגבלות מעשיות. משימת סוכן יכולה להגיע לגבול של 128K גם כאשר חומר המקור המקורי מתאים להקשר, משום שפלטי כלים והסקה חוזרת מצטברים. שמרו על תיעוד תמציתי של התצפיות הרלוונטיות והגדירו במפורש את התוצר הסופי. בעבודה התלויה במידע מדויק, צרפו את החומר הסמכותי או ספקו כלי חיפוש מתאים, במקום לצפות שידע האימון יקבע כל עובדה.\n\nDeepSeek V3.2 Speciale היא גרסה נפרדת להסקה עמוקה עתירת חישוב, ולפי כרטיס המודל היא אינה תומכת בקריאה לכלים. אין להשתמש בתכונותיה כפרופיל הכלים של V3.2 הרגיל. גם לדור V4 המאוחר יותר ולמהדורה הניסיונית הקודמת יש זהויות ואפשרויות תצורה נפרדות. שמרו על מהדורת V3.2 בעלת השם המוגדר בעת השוואת משימות שבהן זהות המודל ופורמט הפרומפט חשובים.\n\nלניתוח מעשי המבוסס על מקורות, תייגו את החומרים ובקשו מסקנה הנתמכת בקטעים הרלוונטיים, תוך הבחנה בין הנחות למידע חסר. עבור סוכן, הגדירו את הפונקציות המותרות, את התוצאה הסופית המצופה ואת הקריטריון להשלמה. כך מכינים את תהליך ההסקה והשימוש בכלים של המודל להפקת תוצר טקסטואלי, תוצר קוד או תוצר ניתוח שאפשר לבחון ולקשר לראיות שסופקו.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "16d55bcb27d8f5369aa1802e240366c3409cb46af1251e90a5f7a1f913ce344b",
    "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\">DS</span><h2 id=\"sheet-title\">DeepSeek: DeepSeek V3.2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>DeepSeek /</span><code>deepseek-v3.2-thinking</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|deepseek-v3.2-thinking\">Chat</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\">DeepSeek V3.2 משלב הסקה על טקסט עם שימוש בכלים וניתוח הקשר ארוך. ארכיטקטורת הקשב הדליל ופורמט השיחה המעודכן שלו תומכים בתכנות, בחיפוש ובמשימות סוכן מרובות שלבים, עם הקשר של 128K ותהליכי עבודה נפרדים לחשיבה ולתשובה ישירה.</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>DeepSeek V3.2 הוא מודל הטקסט של DeepSeek להסקה ולעבודת סוכנים, עם דגש על עיבוד יעיל של הקשר ארוך. היצרן מרכז את השינויים העיקריים שלו סביב DeepSeek Sparse Attention, מסגרת למידת חיזוק שהורחבה בהיקפה וצינור אימון למשימות סוכן. הוא מקבל שאלות כתובות והקשר ומפיק טקסט, לרבות תשובה, קוד או תוכן של קריאות לכלים. הוא נבדל ממהדורת V3.2 Exp הקודמת ומגרסת ההסקה הנפרדת Speciale.</p><p>DeepSeek Sparse Attention מוסיף לארכיטקטורת הקשב הלטנטי רכיב אינדוקס ובחירה פרטנית של טוקנים. ברצף ארוך, רכיב האינדוקס בוחר את המידע מטוקנים קודמים שישמש בחישוב הקשב העיקרי. הדוח מציין שזהו השינוי הארכיטקטוני לעומת V3.1 Terminus ושהארכיטקטורה זהה לזו של V3.2 Exp. חלון ההקשר שפורסם עבורו הוא בן 128K טוקנים, ומאפשר שימוש בחומר מקור נרחב והמשך עבודה על משימה; גם ההסקה שנוצרת והיסטוריית הכלים צורכות חלק מההקשר הזמין.</p><p>האימון שלאחר האימון הבסיסי מכסה תשובות עם חשיבה ובלעדיה במתמטיקה, בתכנות, בהסקה לוגית, במשימות סוכן כלליות, בתכנות באמצעות סוכנים ובחיפוש. מומחים בתחומים שונים מספקים נתונים המאוחדים במודל הסופי, ולאחר מכן מתבצעת למידת חיזוק משולבת. לשאלה רגילה עשויה להתאים תשובה ישירה; בבעיה קשה, תהליך החשיבה יכול לפתח פתרון לפני הצגת התוצאה הסופית. הגדירו את התשובה או התוצר הנדרשים בנפרד מההסקה שבשלבי הביניים.</p><p>שינוי משמעותי במהדורה הוא חשיבה עם כלים. פורמט השיחה המעודכן מאפשר להסקה להימשך לאורך משימה הכוללת קריאות לכלים, במקום להתייחס לניתוח ולפעולה כאל שלבים שאינם קשורים. היישום מבצע פעולה שהמודל בחר ומחזיר את תוצאתה לשלב הבא. כלל הקשר הכלים של היצרן משמר הסקה קודמת כל עוד מתווספות רק הודעות הקשורות לכלים; כאשר מגיעה הודעת משתמש חדשה, הוא מסיר את ההסקה הזו תוך שמירה על הקריאות לכלים ועל תוצאותיהן. הבחנה נכונה בין תפקידי השיחה חשובה להתנהגות זו.</p><p>לתכנות, ספקו את קטע המקור או הקבצים הרלוונטיים, את הבעיה שנצפתה, את התוצאה המצופה ואת התנאים שהשינוי חייב לשמר. דוגמה להנחיה היא: ״השתמשו בקוד ובתוצאות הכלים שסופקו כדי לאתר את הסיבה, להציע את התיקון הקטן ביותר ולהחזיר את התיקון הסופי עם תוצאת האימות התומכת בו.״ למשימת חיפוש, תארו את השאלה, את הראיות הנדרשות ואת התנאים שבהם תשובה נחשבת שלמה. כלי חיפוש והרצה מסופקים בידי היישום שמסביב, ולא בידי הטקסט לבדו.</p><p>היצרן ממליץ על temperature של 1.0 ועל top-p של 0.95 לשימוש מקומי. V3.2 מציג ייצוג מעודכן לקריאות לכלים ומקודד הודעות ייעודי. תפקיד developer שלו שמור לתבנית סוכן החיפוש של היצרן, וה־API הרשמי אינו מקבל תפקיד זה. המפענח שבמימוש הייחוס מצפה לפלט תקין ואינו מתקן תוצאות בפורמט פגום; כאשר יישום משתמש בשדות שנוצרו או בארגומנטים לכלים, עליו לבדוק את המבנה שלהם לפני פעולה על פיהם.</p><p>הדוח הטכני מציין מסלולי הסקה ארוכים ואימות עצמי חוזר ומיותר כמגבלות מעשיות. משימת סוכן יכולה להגיע לגבול של 128K גם כאשר חומר המקור המקורי מתאים להקשר, משום שפלטי כלים והסקה חוזרת מצטברים. שמרו על תיעוד תמציתי של התצפיות הרלוונטיות והגדירו במפורש את התוצר הסופי. בעבודה התלויה במידע מדויק, צרפו את החומר הסמכותי או ספקו כלי חיפוש מתאים, במקום לצפות שידע האימון יקבע כל עובדה.</p><p>DeepSeek V3.2 Speciale היא גרסה נפרדת להסקה עמוקה עתירת חישוב, ולפי כרטיס המודל היא אינה תומכת בקריאה לכלים. אין להשתמש בתכונותיה כפרופיל הכלים של V3.2 הרגיל. גם לדור V4 המאוחר יותר ולמהדורה הניסיונית הקודמת יש זהויות ואפשרויות תצורה נפרדות. שמרו על מהדורת V3.2 בעלת השם המוגדר בעת השוואת משימות שבהן זהות המודל ופורמט הפרומפט חשובים.</p><p>לניתוח מעשי המבוסס על מקורות, תייגו את החומרים ובקשו מסקנה הנתמכת בקטעים הרלוונטיים, תוך הבחנה בין הנחות למידע חסר. עבור סוכן, הגדירו את הפונקציות המותרות, את התוצאה הסופית המצופה ואת הקריטריון להשלמה. כך מכינים את תהליך ההסקה והשימוש בכלים של המודל להפקת תוצר טקסטואלי, תוצר קוד או תוצר ניתוח שאפשר לבחון ולקשר לראיות שסופקו.</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>deepseek-v3.2-thinking</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 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</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\">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> · טקסט 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</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>שיחת טקסט; stream הוא ערך בוליאני וברירת המחדל שלו היא false.</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>/chat/completions</code></p><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.00058</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>פלט · טוקני פלט</span> <b>$0.00086</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-1217-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1217-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1217-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1217-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</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-1217-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1217-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;deepseek-v3.2-thinking&quot;,&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}],&quot;stream&quot;:false}&#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-1217-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1217-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=&quot;deepseek-v3.2-thinking&quot;, messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}], stream=False)\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></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=deepseek-v3.2-thinking&amp;route=Ultra&amp;caller=deepseek-v3.2-thinking&amp;fmt=chat\"><code>deepseek-v3.2-thinking</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=deepseek-v3.2-thinking&amp;route=Ultra&amp;caller=deepseek-v3.2-thinking&amp;fmt=chat\"><code>deepseek-v3.2-thinking</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "deepseek-v3.2-thinking",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "deepseek-v3.2-thinking",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|deepseek-v3.2-thinking",
      "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.",
              "Send the conversation as text messages. Stream must be a boolean; omitted stream defaults to false."
            ],
            "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"
            ],
            "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": [
                  "deepseek-v3.2-thinking"
                ],
                "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",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "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",
                "when": "שיחת טקסט"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Text conversation at the exact model ID and method path.",
            "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": "שיחת טקסט; stream הוא ערך בוליאני וברירת המחדל שלו היא false.",
            "file_material": "מסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "מערך הודעות במבנה role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream"
            ],
            "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": [
            "/chat/completions"
          ],
          "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.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000086",
                "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\":\"deepseek-v3.2-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\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=\"deepseek-v3.2-thinking\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\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"
          }
        ],
        "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.58,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 0.86,
        "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.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000086",
                "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": "deepseek-v3.2-thinking",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00058000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000058",
            "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.00086000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000086",
            "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": "deepseek-v3.2-thinking",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "2f14f8308e617c119aef860bb962266c29c5d68355daacede9f80154ae5a33f6",
    "input_html_sha256": "94c94aae4399664b75ae22f2494b531de2507a1b3615dbb6f29cf368e5dd0b05",
    "private_audit_sha256": "1281f9353a44b578cd53554af86fc392c7a512c26b63da962d60111cef6123f1",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/deepseek-v3-2-thinking/",
    "description": "DeepSeek V3.2 משלב הסקה על טקסט עם שימוש בכלים וניתוח הקשר ארוך. ארכיטקטורת הקשב הדליל ופורמט השיחה המעודכן שלו תומכים בתכנות, בחיפוש ובמשימות סוכן מרובות שלבים, עם הקשר של 128K ותהליכי עבודה נפרדים לחשיבה ולתשובה ישירה.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/deepseek-v3-2-thinking/index.md",
    "title": "DeepSeek: DeepSeek V3.2 — Ailoot",
    "url": "https://ailoot.ai/models/he/deepseek-v3-2-thinking/"
  },
  "rawModel": {
    "about": "DeepSeek V3.2 הוא מודל הטקסט של DeepSeek להסקה ולעבודת סוכנים, עם דגש על עיבוד יעיל של הקשר ארוך. היצרן מרכז את השינויים העיקריים שלו סביב DeepSeek Sparse Attention, מסגרת למידת חיזוק שהורחבה בהיקפה וצינור אימון למשימות סוכן. הוא מקבל שאלות כתובות והקשר ומפיק טקסט, לרבות תשובה, קוד או תוכן של קריאות לכלים. הוא נבדל ממהדורת V3.2 Exp הקודמת ומגרסת ההסקה הנפרדת Speciale.\n\nDeepSeek Sparse Attention מוסיף לארכיטקטורת הקשב הלטנטי רכיב אינדוקס ובחירה פרטנית של טוקנים. ברצף ארוך, רכיב האינדוקס בוחר את המידע מטוקנים קודמים שישמש בחישוב הקשב העיקרי. הדוח מציין שזהו השינוי הארכיטקטוני לעומת V3.1 Terminus ושהארכיטקטורה זהה לזו של V3.2 Exp. חלון ההקשר שפורסם עבורו הוא בן 128K טוקנים, ומאפשר שימוש בחומר מקור נרחב והמשך עבודה על משימה; גם ההסקה שנוצרת והיסטוריית הכלים צורכות חלק מההקשר הזמין.\n\nהאימון שלאחר האימון הבסיסי מכסה תשובות עם חשיבה ובלעדיה במתמטיקה, בתכנות, בהסקה לוגית, במשימות סוכן כלליות, בתכנות באמצעות סוכנים ובחיפוש. מומחים בתחומים שונים מספקים נתונים המאוחדים במודל הסופי, ולאחר מכן מתבצעת למידת חיזוק משולבת. לשאלה רגילה עשויה להתאים תשובה ישירה; בבעיה קשה, תהליך החשיבה יכול לפתח פתרון לפני הצגת התוצאה הסופית. הגדירו את התשובה או התוצר הנדרשים בנפרד מההסקה שבשלבי הביניים.\n\nשינוי משמעותי במהדורה הוא חשיבה עם כלים. פורמט השיחה המעודכן מאפשר להסקה להימשך לאורך משימה הכוללת קריאות לכלים, במקום להתייחס לניתוח ולפעולה כאל שלבים שאינם קשורים. היישום מבצע פעולה שהמודל בחר ומחזיר את תוצאתה לשלב הבא. כלל הקשר הכלים של היצרן משמר הסקה קודמת כל עוד מתווספות רק הודעות הקשורות לכלים; כאשר מגיעה הודעת משתמש חדשה, הוא מסיר את ההסקה הזו תוך שמירה על הקריאות לכלים ועל תוצאותיהן. הבחנה נכונה בין תפקידי השיחה חשובה להתנהגות זו.\n\nלתכנות, ספקו את קטע המקור או הקבצים הרלוונטיים, את הבעיה שנצפתה, את התוצאה המצופה ואת התנאים שהשינוי חייב לשמר. דוגמה להנחיה היא: ״השתמשו בקוד ובתוצאות הכלים שסופקו כדי לאתר את הסיבה, להציע את התיקון הקטן ביותר ולהחזיר את התיקון הסופי עם תוצאת האימות התומכת בו.״ למשימת חיפוש, תארו את השאלה, את הראיות הנדרשות ואת התנאים שבהם תשובה נחשבת שלמה. כלי חיפוש והרצה מסופקים בידי היישום שמסביב, ולא בידי הטקסט לבדו.\n\nהיצרן ממליץ על temperature של 1.0 ועל top-p של 0.95 לשימוש מקומי. V3.2 מציג ייצוג מעודכן לקריאות לכלים ומקודד הודעות ייעודי. תפקיד developer שלו שמור לתבנית סוכן החיפוש של היצרן, וה־API הרשמי אינו מקבל תפקיד זה. המפענח שבמימוש הייחוס מצפה לפלט תקין ואינו מתקן תוצאות בפורמט פגום; כאשר יישום משתמש בשדות שנוצרו או בארגומנטים לכלים, עליו לבדוק את המבנה שלהם לפני פעולה על פיהם.\n\nהדוח הטכני מציין מסלולי הסקה ארוכים ואימות עצמי חוזר ומיותר כמגבלות מעשיות. משימת סוכן יכולה להגיע לגבול של 128K גם כאשר חומר המקור המקורי מתאים להקשר, משום שפלטי כלים והסקה חוזרת מצטברים. שמרו על תיעוד תמציתי של התצפיות הרלוונטיות והגדירו במפורש את התוצר הסופי. בעבודה התלויה במידע מדויק, צרפו את החומר הסמכותי או ספקו כלי חיפוש מתאים, במקום לצפות שידע האימון יקבע כל עובדה.\n\nDeepSeek V3.2 Speciale היא גרסה נפרדת להסקה עמוקה עתירת חישוב, ולפי כרטיס המודל היא אינה תומכת בקריאה לכלים. אין להשתמש בתכונותיה כפרופיל הכלים של V3.2 הרגיל. גם לדור V4 המאוחר יותר ולמהדורה הניסיונית הקודמת יש זהויות ואפשרויות תצורה נפרדות. שמרו על מהדורת V3.2 בעלת השם המוגדר בעת השוואת משימות שבהן זהות המודל ופורמט הפרומפט חשובים.\n\nלניתוח מעשי המבוסס על מקורות, תייגו את החומרים ובקשו מסקנה הנתמכת בקטעים הרלוונטיים, תוך הבחנה בין הנחות למידע חסר. עבור סוכן, הגדירו את הפונקציות המותרות, את התוצאה הסופית המצופה ואת הקריטריון להשלמה. כך מכינים את תהליך ההסקה והשימוש בכלים של המודל להפקת תוצר טקסטואלי, תוצר קוד או תוצר ניתוח שאפשר לבחון ולקשר לראיות שסופקו.",
    "alias_of": null,
    "aliases": [],
    "author": "DeepSeek",
    "capabilities": {
      "context_length": 163840,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00058000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000058",
            "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.00086000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000086",
            "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,
    "formats": [
      "chat"
    ],
    "id": "deepseek-v3.2-thinking",
    "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.",
              "Send the conversation as text messages. Stream must be a boolean; omitted stream defaults to false."
            ],
            "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"
            ],
            "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": [
                  "deepseek-v3.2-thinking"
                ],
                "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",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "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",
                "when": "שיחת טקסט"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Text conversation at the exact model ID and method path.",
            "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": "שיחת טקסט; stream הוא ערך בוליאני וברירת המחדל שלו היא false.",
            "file_material": "מסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "מערך הודעות במבנה role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream"
            ],
            "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": [
            "/chat/completions"
          ],
          "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.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000086",
                "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\":\"deepseek-v3.2-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\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=\"deepseek-v3.2-thinking\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\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"
          }
        ],
        "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.58,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 0.86,
        "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.00058000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000058",
                "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.00086000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000086",
                "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": "deepseek-v3.2-thinking",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00058000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000058",
            "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.00086000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000086",
            "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": "deepseek-v3.2-thinking",
        "request_model_id": "deepseek-v3.2-thinking",
        "route_label": "Ultra"
      }
    ],
    "name": "DeepSeek: DeepSeek V3.2",
    "price": {
      "in": 0.58,
      "in_label": null,
      "out": 0.86,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.58,
      "sort_out": 0.86,
      "varies": false
    },
    "short": "DeepSeek V3.2 משלב הסקה על טקסט עם שימוש בכלים וניתוח הקשר ארוך. ארכיטקטורת הקשב הדליל ופורמט השיחה המעודכן שלו תומכים בתכנות, בחיפוש ובמשימות סוכן מרובות שלבים, עם הקשר של 128K ותהליכי עבודה נפרדים לחשיבה ולתשובה ישירה."
  },
  "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
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "DeepSeek V3.2 משלב הסקה על טקסט עם שימוש בכלים וניתוח הקשר ארוך. ארכיטקטורת הקשב הדליל ופורמט השיחה המעודכן שלו תומכים בתכנות, בחיפוש ובמשימות סוכן מרובות שלבים, עם הקשר של 128K ותהליכי עבודה נפרדים לחשיבה ולתשובה ישירה.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "46ca9d9bbaf2707eaffd3ed9eb00c58f7accc2c6c66e454ffe6114ba7b6fc8e2",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "7e290db8fd32b949ff353f92c5b4739ee7ec69d9b404c6d539670de2ea51666f"
}
