MoonshotAI: Kimi K3 (batch)
Kimi K3 הוא מודל ההסקה הרב־מודאלי המובנה של Moonshot AI למשימות תכנות ארוכות ולעבודת ידע. הוא קורא טקסט, תמונות ווידאו, מפיק טקסט ותומך בתהליכים מונעי כלים עם הקשר של 1,048,576 אסימונים והיסטוריית חשיבה הנשמרת בין שלבים.
על המודל
התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.
Kimi K3 הוא מודל סוכנים רב־מודאלי בעל משקולות פתוחות של Moonshot AI לתכנות ממושך, לעבודת ידע ולהסקה. הוא משלב טקסט עם הבנה חזותית מובנית של תמונות ווידאו ומפיק תשובה טקסטואלית או בקשת כלי. היצרן מדגיש שיחות הנדסיות ממושכות, מאגרי קוד גדולים ומשימות המשתמשות בצילומי מסך או במשוב חזותי לצד קוד. תדריך שימושי מגדיר את התוצר הרצוי, את הראיות שיש להשתמש בהן ואת התנאי המסמן שהעבודה הושלמה.
ארכיטקטורה והקשר ארוך
כרטיס המודל מתאר תערובת מומחים דלילה עם 2.8 טריליון פרמטרים בסך הכול ו־104 מיליארד פרמטרים מופעלים. התכנון Stable LatentMoE שלו בוחר 16 מתוך 896 מומחים לכל אסימון, תוך שימוש ב־Kimi Delta Attention וב־Attention Residuals יחד עם קשב עם שערים. אורך ההקשר המדויק הוא 1,048,576 אסימונים. זהו מקום להקשר משימה נרחב, ולא סיבה לוותר על גבולות המקורות או על המקום הדרוש לתוצאה.
התוצר המקורי שפורסם משתמש באימון מודע לקוונטיזציה עם משקולות MXFP4 ואקטיבציות MXFP8. זהו פורמט הגרסה של היצרן, הנבדל ממהדורה שעברה קוונטיזציה וסופקה בנפרד או מטענה על אופן הגשת המודל בנתיב מסוים. משקולות פתוחות ומספר פרמטרים גדול אינם הופכים את נתון הפרמטרים הפעילים לדרישת האחסון או החומרה הכוללת.
הכינו משימת תכנות נרחבת
ספקו את חומר מאגר הקוד הרלוונטי, את ההתנהגות הקיימת, את השינוי המבוקש ואת אילוצי התאימות. זהו את הקבצים או את הממשק שהתוצאה חייבת להשפיע עליהם, את הבדיקות הקובעות הצלחה וכל שגיאה או קלט שסופקו וחושפים את הבעיה. תוצאה שימושית יכולה להיות שינוי קוד ממוקד עם הסבר וראיות מהבדיקות שרצו בפועל, ולא תיאור של פעולות שמעולם לא בוצעו.
למשימת פיתוח חזותית, כללו צילום מסך או תצוגה ברורה של התוצאה המיועדת עם הקוד הרלוונטי ופער מסוים. היצרן מתאר תהליכים בתחומי ממשקי משתמש, משחקים ו־CAD המשתמשים במשוב חזותי. בקשו את השינוי המחבר את הקוד לתוצאה שנצפתה, ושמרו את חומר הייחוס כדי שאפשר יהיה לבדוק מולו את התוצר שנמסר.
תמונות, וידאו והכנה לעבודת ידע
מדריך ההתחלה המהירה של היצרן משתמש באובייקטי תוכן בעלי סוגים מוגדרים להודעות חזותיות; content הוא מערך, ולא ייצוג של המערך הזה כמחרוזת. תהליך התמונות שלו משתמש בנתוני תמונה מקודדים או בהפניה נתמכת לקובץ במקום בכתובת ציבורית של תמונה. דוגמת הווידאו מעלה קובץ וידאו ומספקת את ההפניה שהתקבלה עם שאלה על תוכנו. ספקו מקור קריא וציינו את התצפית, פרק הזמן או הקשר החשובים. תהליך הראייה של היצרן מקבל תמונות JPEG, PNG, GIF, WebP, BMP, HEIC ו־HEIF, וכן וידאו MP4, MPEG, MOV, AVI, FLV, MPG, WebM, WMV ו־3GPP. אפשר לפענח GIF או WebP מונפשים כווידאו. ספקו מקור SVG כטקסט. היצרן ממליץ על תמונות עד 4096 × 2160 ועל וידאו עד 1920 × 1080; אלה המלצות רזולוציה, ולא ספי דחייה. שמרו את גוף הבקשה בתוך גבול הגודל המתועד של 100M והעלו מדיה גדולה או כזאת שנעשה בה שימוש חוזר כקבצים.
למחקר עתיר מסמכים, סמנו את המקורות וציינו את השאלות שהדוח הסופי צריך לענות עליהן. להסבר על וידאו, זהו את האירועים או את הרצף שיש לנתח במקום לבקש התייחסות ללא הגבלה. K3 משתמש בתוכן חזותי כראיות להסקה ומחזיר טקסט או בקשות לכלים. יישום יכול להעביר את הבקשות האלה לכלי מדיה כדי ליצור תוצרי תמונה או וידאו נפרדים.
החשיבה פעילה תמיד
בממשק היצרן של K3 החשיבה פעילה תמיד. הגדרת reasoning_effort ברמה העליונה מקבלת low, high ו־max, עם max כברירת מחדל. הבחירות האלה ייחודיות למודל; אין להניח שקיימת הגדרה ללא חשיבה או ערך מאמץ ממשפחה אחרת. הנחיות המעבר של היצרן מבחינות בין K3 ל־K2.x באמצעות reasoning_effort במקום העברה של תצורת thinking הישנה.
היצרן מתעד שדות reasoning_content ותוכן תשובה סופית נפרדים בתוצאות מוזרמות. לשיחה מרובת תורים או לתהליך כלים, הוא דורש להעביר חזרה את הודעת העוזר המלאה שהוחזרה ללא שינוי, לרבות reasoning_content ו־tool_calls. שמירת התשובה הסופית הגלויה בלבד מאבדת מידע שתהליך החשיבה הנשמרת של המודל מצפה לו בשלב הבא.
תשובות סופיות מובנות והמשך חלקי
מדריך ההתחלה המהירה מתעד פלט קפדני לפי סכימת JSON עבור תוכן ההודעה הסופית. הגדירו את השדות ואת משמעויותיהם סביב התוצר שהיישום צריך, ונתחו את התוכן הסופי הזה במקום לשלב אותו עם שדה ההסקה. תוצאה מובנית יכולה לייצג מידע שחולץ מחומר שסופק או פורמט דוח מוגדר; הסכימה מגבילה את המבנה, ואילו ראיות המקור קובעות אם הערכים נכונים.
מצב partial יכול להמשיך קידומת טקסט שסופקה. דוגמת היצרן מציבה הודעת עוזר חלקית בסוף ההיסטוריה ומשלבת את הקידומת הזאת עם ההמשך שהוחזר לצורך תצוגה. השתמשו בכך כאשר לתוצר הדרוש יש התחלה קבועה בעלת משמעות, תוך שמירה על הבחנה בין הקידומת לשארית שנוצרה.
כלים ורציפות תוצאותיהם
K3 תומך בכלי פונקציות מותאמים אישית. דוגמת היצרן מחייבת כלי בתור הראשון, משמרת את הודעת העוזר המלאה, מפעילה כל קריאה שהוחזרה ומוסיפה תוצאת כלי תואמת לפני בקשת התשובה הסופית. קריאה מוצעת אינה ראיה לכך שהפעולה הצליחה; התוצאה שהוחזרה בפועל נעשית הראיה לשלב הבא.
תהליך הטעינה הדינמית שלו מציג הגדרת כלי מלאה בנקודה מסוימת בהיסטוריית ההודעות. ההגדרה זקוקה לשם, למטרה ולפרמטרים שלה, והיא חייבת להישאר בהיסטוריה שלאחר מכן משום שהשרת אינו שומר את ההצהרה הזאת באופן עצמאי. שמרו על שיוך בין יכולות כלים, ארגומנטים שסופקו ותצפיות אמיתיות, כדי שמשימה ארוכה תוכל להמשיך מהעבודה שכבר הושלמה.
בקרות פלט והקשר חוזר
היצרן מתעד מכסת השלמה של 131,072 אסימונים כברירת מחדל, הניתנת להגדרה עד 1,048,576 בתוך אילוצי ההקשר הכולל של המודל. ה־API הנוכחי שלו ל־K3 מקבע temperature על 1.0, את top_p על 0.95, תוצאה אחת ועונשי presence ו־frequency על אפס, ומנחה את שולחי הבקשות להשמיט את בקרות הדגימה האלה. אלה הגדרות וריאנט היצרן המדויק, ולא רשימת בקרות ניתנות לשינוי שאפשר להעביר למודל אחר.
מטמון הקשר הוא אוטומטי לקידומות חוזרות הזכאיות לכך, עם אפשרויות TTL מתועדות של 5 דקות ושעה אחת, ו־5 דקות כברירת מחדל. בלוקי מטמון חלקיים נשארים החטאות. שמרו על יציבות ההקשר שניתן לעשות בו שימוש חוזר ובדקו את השימוש בפועל במקום לטעון לפגיעת מטמון על סמך טקסט חוזר בלבד. לתוצר הסופי, שמרו את המקורות שסופקו, את ראיות הכלים בפועל ואת מבנה הפלט הדרוש, ובדקו שתשובה ארוכה או תוצאה הנדסית עומדות בקריטריוני ההשלמה שצוינו.
Ailoot Ultra · Batch POST /v1/batches moonshotai/kimi-k3:batch
moonshotai/kimi-k3:batchהתחלה
Kimi K3 הוא מודל ההסקה הרב־מודאלי המובנה של Moonshot AI למשימות תכנות ארוכות ולעבודת ידע. הוא קורא טקסט, תמונות ווידאו, מפיק טקסט ותומך בתהליכים מונעי כלים עם הקשר של 1,048,576 אסימונים והיסטוריית חשיבה הנשמרת בין שלבים.
- סוגי קלט נתמכים
- טקסט
- תוצאות
- טקסט
זמין ב-Ailoot · קלט ושיטות
Ailoot Ultra · Batch POST /v1/batches
- סוגי קלט
text- סוגי פלט
text- פורמט פלט
- JSON מוטמע מתוך results[].response.body
| שדה | סוג | דרישה | ערכים ומגבלות | ברירת מחדל |
|---|---|---|---|---|
שדהendpoint | סוגstring | דרישהחובה | ערכים ומגבלות /v1/chat/completions | ברירת מחדל— |
שדהmodel | סוגstring | דרישהחובה | ערכים ומגבלות moonshotai/kimi-k3:batch | ברירת מחדל— |
שדהrequests | סוגbatch_item[] | דרישהחובה | ערכים ומגבלות מספר פריטים מזערי: 1 | ברירת מחדל— |
שדהrequests[].custom_id | סוגstring | דרישהחובה | ערכים ומגבלות | ברירת מחדל— |
שדהrequests[].body.messages | סוגmessage[] | דרישהחובה | ערכים ומגבלות | ברירת מחדל— |
שדהcompletion_window | סוגstring | דרישהרשות | ערכים ומגבלות 24h | ברירת מחדל— |
שדהprovider | סוגobject|null | דרישהרשות | ערכים ומגבלות | ברירת מחדל— |
שדהrequests[].body.model | סוגstring | דרישהרשות | ערכים ומגבלות moonshotai/kimi-k3:batch, moonshotai/kimi-k3 | ברירת מחדל— |
שדהprovider.only | סוגstring[] | דרישהרשות | ערכים ומגבלות deepinfra/bf16 | ברירת מחדל— |
שדהprovider.allow_fallbacks | סוגboolean|null | דרישהרשות | ערכים ומגבלות false, null | ברירת מחדל— |
פרמטרים ומחזור חיים של השיטה
| פרמטר | מפרט |
|---|---|
פרמטרcontent_type | מפרטapplication/json |
פרמטרrequired | מפרטendpoint, model, requests |
פרמטרmaterial_types | מפרטtext |
פרמטרrepresentation | מפרטrequests[] מוטמעים; לכל פריט יש custom_id ו־body |
פרמטרrequest_endpoint_profile | מפרט/v1/chat/completions |
פרמטרfile_material | מפרטהגורם הקורא רשאי לקרוא מקומית תוכן JSONL אמיתי בקידוד UTF-8 לתוך requests[]. לא נעשה שימוש בשדה purpose להעלאה, ב־input_file_id או בהפניה לקובץ. חומר לקוח חסר או ריק עוצר את ההכנה לפני POST. |
פרמטרserialization_order | מפרטendpoint, model, provider (אם צוין), completion_window (אם צוין), requests בסוף |
פרמטרoptional_controls | מפרטprovider.only, provider.allow_fallbacks, completion_window |
פרמטרschema_scope | מפרטגופי בקשות טקסט של Chat Completions במעטפת Batch המוטמעת המתועדת. |
מחזור חיים: asynchronous
GET /v1/batches/{operation_id} · ערך response.id מבקשת היצירה המקורית שהוחזר בפועל; אותם משתמש/מפתח/קבוצה
תעריפים
מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.
- מצב מהיר
- לא צוין כאשר נבחר מצב מהיר
- מצב Flex
- לא צוין כאשר נבחר מצב flex
- מאמץ חשיבה מרבי
- לא צוין כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
- תמחור מטמון מפורש
- לא מופעל כאשר מתבקש מטמון מפורש
תעריפי Ailoot
מחירים לפי תצורה
התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.
| תצורה | טבלת תעריפים | טוקנים בהקשר, יותר מ- | טוקנים בהקשר, עד וכולל | חיוב |
|---|---|---|---|---|
| תצורהתעריפי הבסיס לטוקנים | טבלת תעריפיםתעריף בסיס | טוקנים בהקשר, יותר מ-— | טוקנים בהקשר, עד וכוללללא גבול עליון | חיוב קלט · טוקני קלט $0.00456 / 1K טוקנים פלט · טוקני פלט $0.0228 / 1K טוקנים קלט · קריאה מהמטמון $0.000456 / 1K טוקנים קלט · כתיבה למטמון — / 1K טוקנים קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים |
| תצורהרמת אורך בקשה 1 | טבלת תעריפים— | טוקנים בהקשר, יותר מ-0 | טוקנים בהקשר, עד וכוללללא גבול עליון | חיוב קלט · טוקני קלט $0.00456 / 1K טוקנים פלט · טוקני פלט $0.0228 / 1K טוקנים קלט · קריאה מהמטמון $0.000456 / 1K טוקנים קלט · כתיבה למטמון — / 1K טוקנים קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים |
לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →
דוגמאות לבקשות
Ailoot Ultra · Batch
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"moonshotai/kimi-k3:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['moonshotai/kimi-k3:batch', 'moonshotai/kimi-k3']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"moonshotai/kimi-k3:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
קבלה ושמירה של תוצאות
Ailoot Ultra · Batch
JSON מוטמע מתוך results[].response.body
GET /v1/batches/{operation_id}
בדיקת מצב המשימה
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
שמירת כל התוצאות שהושלמו
שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.
שמרו את JSON הסטטוס המקורי במלואו, כל תוצאה/custom_id ואת גוף התשובה או השגיאה המלא. שמרו את results[] שהושלמו כ־JSONL ללא סינון.
כשצריך לבדוק את התגובה המקורית
שמרו את מזהה הפעולה המקורי. לתשובת 503 result_pending_check יש X-Should-Retry:false; לעולם אל תשלחו מחדש אצווה מקורית שתוצאתה אינה ידועה.
שדות התגובה
| שדה | סוג |
|---|---|
שדהresults[].custom_id | סוגstring |
שדהresults[].response.body.choices[].message.content | סוגstring|null |
שדהresults[].error | סוגobject|null |
שדהusage | סוגobject|null |
שדהid | סוגstring |
שדהmodel | סוגstring |
שדהendpoint | סוגstring |
שדהstatus | סוגstring |
שדהrequest_counts | סוגobject |
שדהresults[].id | סוגstring |
שדהresults[].response.status_code | סוגinteger |
שדהresults[].response.request_id | סוגstring |
שגיאות והשלבים הבאים
| תגובה | תנאי | השלב הבא |
|---|---|---|
תגובה400 · invalid_request_error | תנאימעטפת מוטמעת מתועדת לא תקינה, מפתחות כפולים, זהות פריט לא תקינה או סתירה ביכולות המודל שהוגדרו. | השלב הבאתקנו את השדות שצוינו לפני כל שליחה חדשה. |
תגובה401 · authentication_error | תנאימפתח API לא תקין. | השלב הבאהשתמשו במפתח Ailoot המורשה. |
תגובה403 · permission_error | תנאיקבוצת Batch אינה זמינה. | השלב הבאבדקו את הרשאות המפתח/הקבוצה. |
תגובה422 · invalid_request_error | תנאיBatch מחויב מהיתרה; יצירה בחיוב מנוי נדחית. | השלב הבאהשתמשו בקבוצה המורשית שהחיוב שלה מנוכה מהיתרה. |
תגובה422 · price_unavailable | תנאילא ניתן לחשב הצעת מחיר לקלט Batch. | השלב הבאשמרו את התשובה; השתמשו בקלט המתועד למשפחת ה־API. |
תגובה402 · billing_error | תנאיהסכום לשריון עבור Batch אינו זמין. | השלב הבאפתרו את הבעיה המונעת את קבלת הבקשה לפני שליחת בקשה חדשה. |
תגובה503 · price_unavailable | תנאיהמחיר לשיטת Batch או התעריפים המקוריים אינם זמינים. | השלב הבאשמרו את התשובה; אל תחליפו את המחירים. |
תגובה503 · api_error | תנאינתיב הספק המדויק אינו זמין. | השלב הבאשמרו את התשובה לצורך תיקון נתיב הניתוב. |
תגובה503 · result_pending_check | תנאיהתוצאה המקורית דורשת בדיקה; X-Should-Retry:false. | השלב הבאשמרו את operation_id/id המקורי וקראו את הסטטוס שלו; לעולם אל תחזרו על ה־POST המקורי. |
תגובה404 · not_found | תנאיהפעולה לבדיקת סטטוס Batch אינה קיימת או שייכת לזהות אחרת. | השלב הבאהשתמשו בערך id המקורי המדויק ובאותם משתמש/מפתח/קבוצה. |
כינויים
כינויים למודל
Ailoot Ultra moonshotai/kimi-k3:batch
כינויים לנתיבי שיטות
השתמשו בנתיבי השיטות המוצגים למעלה.
מזהי מודלים קשורים IDs
FAQ · MoonshotAI: Kimi K3 (batch)
- אילו קלטים ותוצאות זמינים?
POST /v1/batches·moonshotai/kimi-k3:batch:text→text- באילו שדות הבקשה משתמשת?
POST /v1/batches·moonshotai/kimi-k3:batch:endpoint,model,requests,completion_window,provider- אילו מגבלות חלות?
POST /v1/batches·moonshotai/kimi-k3:batch:requests.min_items:1