מודלים

OpenAI: GPT-6 Luna

Markdown · JSON

OpenAI: GPT-6 Luna

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

על המודל

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

זרם גדול של משימות עם מטרה ברורה

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

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

בחירת מאמץ ומצב עבודה

נתמכות none, low, medium, high, xhigh ו־max; ברירת המחדל היא medium. הערך none מיועד לעיבוד ללא הסקה. אפשר לשנות את המאמץ לפי המשימה המסוימת, ולקבוע בנפרד את אורך הטקסט הסופי.

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

לעבודה עם כלים והסקה משתמשים ב־Responses. בפורמט Chat Completions קריאה לפונקציות מותרת רק ברמת none. לכן שמות פונקציות זהים אינם מעידים על אותה דרך שימוש בכל הפורמטים.

הקשר ופלט

OpenAI מציינת חלון הקשר של 1 050 000 טוקנים, מגבלת קלט של 922 000 ומגבלת פלט של 128 000 טוקנים. מועד חיתוך הידע הוא 18 במאי 2026. ההקשר הגדול מכיל חומרים והיסטוריה, ומגבלת הפלט מגבילה בנפרד את הפקת התוצאה.

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

מידע ופעולות באמצעות כלים מחוברים

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

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

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

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

משימה מעשית

משימה מעשית

דוגמה טכנית באנגלית

Normalize a simple order note

Convert this order note into a compact record: "PO-84: 3 packs of filters at 7 units per pack; delivery requested for Friday, not confirmed." Return order ID, pack count, units per pack, total units and delivery status as labelled lines. Retain the distinction between requested and confirmed delivery.

התוצאה הצפויה

Five labelled fields with total units calculated from the supplied counts and delivery marked requested, unconfirmed.

בדיקת התוצאה

Check the total equals packs times units per pack and Friday is not described as confirmed.
Ailoot · Anthropic Messages POST /v1/messages gpt-6-luna

gpt-6-luna

OpenAI /gpt-6-luna

התחלה

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

סוגי קלט נתמכים
טקסט · תמונות
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot · Anthropic Messages POST /v1/messages
סוגי קלט
text, image
סוגי פלט
text
הקשר
⁦1,050,000⁩ tokens
פלט מרבי
⁦128,000⁩ tokens
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
gpt-6-luna
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלות
מספר פריטים מזערי: ⁦1⁩
ברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
user, assistant
ברירת מחדל—
שדהmessages[].contentסוגstring|content_block[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהsystemסוגstring|content_block[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהmax_tokensסוגintegerדרישהחובהערכים ומגבלות
מינימום: ⁦1⁩
המגבלה חלה על: התקרה המדויקת של המודל/הכרטיס שנבחר
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstop_sequencesסוגstring[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגtool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].nameסוגstringדרישהרשותערכים ומגבלות
חל כאשר: סופק כלי
ברירת מחדל—
שדהtools[].descriptionסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהtools[].input_schemaסוגJSON_schemaדרישהרשותערכים ומגבלותברירת מחדל—
שדהtool_choiceסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהthinking.typeסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהthinking.budget_tokensסוגintegerדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהoutput_config.effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmetadataסוגobjectדרישהרשותערכים ומגבלותברירת מחדל—
שדהcache_controlסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

messages[].content או בלוק type=text

טקסט + תמונה

{type:image,source:{type:base64,media_type,data}} או מקור מסוג type=url

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext, image
פרמטרrequiredמפרטmodel, messages, max_tokens
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json
פרמטרtext_file_materialמפרטתוכן UTF-8 בפועל מוכנס כטקסט; מזהי קבצים/URLs דורשים תמיכה נפרדת ומדויקת

מחזור חיים: exact retained published method

מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.

תעריפים

תעריפי שיטות Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
קלט
⁦‏0.0001 ‏$⁩ / 1K
פלט
⁦‏0.0005 ‏$⁩ / 1K
קריאה מהמטמון
⁦‏0.00001 ‏$⁩ / 1K
כתיבה למטמון
⁦‏0.000125 ‏$⁩ / 1K
כתיבה למטמון, 5 דקות
⁦‏0.000125 ‏$⁩ / 1K tokens
מכפיל fast
×2
מכפיל flex
×0.5

מחירים לפי אורך הבקשה · Anthropic Messages

גודל הבקשה, בטוקניםקלטפלטקריאה מהמטמוןכתיבה למטמוןמטמון: 5 דקותמטמון: 1 שעה
גודל הבקשה, בטוקנים(⁦0⁩; ⁦272,000⁩]קלט⁦‏0.0001 ‏$⁩פלט⁦‏0.0005 ‏$⁩קריאה מהמטמון⁦‏0.00001 ‏$⁩כתיבה למטמון⁦‏0.000125 ‏$⁩מטמון: 5 דקות⁦‏0.000125 ‏$⁩מטמון: 1 שעהתעריף בסיס: —
גודל הבקשה, בטוקנים(⁦272,000⁩; ∞)קלט⁦‏0.0002 ‏$⁩פלט⁦‏0.00075 ‏$⁩קריאה מהמטמון⁦‏0.00002 ‏$⁩כתיבה למטמון⁦‏0.00025 ‏$⁩מטמון: 5 דקות⁦‏0.00025 ‏$⁩מטמון: 1 שעהתעריף בסיס: —

התעריפים ב-USD לכל 1K טוקנים. אם לא הוגדר תעריף, נעשה שימוש בתעריף הבסיס של השיטה; «—» מציין שלא הוגדר תעריף בסיס.

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

פרטי תעריף הייחוס

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

טבלאות ייחוס של המודל

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהOpenAI Chat · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Chat · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Chat · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

דוגמאות לבקשות

Ailoot · Anthropic Messages

דוגמת טקסטקלט, תמונהPython SDKNode.js SDKהזרמה ב-Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-luna", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-luna", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="gpt-6-luna",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "gpt-6-luna",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='gpt-6-luna',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")

קבלה ושמירה של תוצאות

Ailoot · Anthropic Messages

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

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

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהmodelסוגstring
שדהcontent[]סוגtext|thinking|tool_use|other content block
שדהstop_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot · OpenAI Responses POST /v1/responses gpt-6-luna

gpt-6-luna

OpenAI /gpt-6-luna

התחלה

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

סוגי קלט נתמכים
טקסט · תמונות
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot · OpenAI Responses POST /v1/responses
סוגי קלט
text, image
סוגי פלט
text
הקשר
⁦1,050,000⁩ tokens
פלט מרבי
⁦128,000⁩ tokens
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
gpt-6-luna
ברירת מחדל—
שדהinputסוגstring|input_item[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהinput[].typeסוגstringדרישהרשותערכים ומגבלות
message, reasoning, function_call, function_call_output
ברירת מחדל—
שדהinput[].contentסוגstring|content_part[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהinput[].call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: function_call_output; שמרו את call_id שהוחזר בפועל
ברירת מחדל—
שדהinput[].outputסוגstring|content_part[]דרישהרשותערכים ומגבלות
חל כאשר: function_call_output
ברירת מחדל—
שדהmax_output_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגtool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning.effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning.summaryסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtext.formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtext.verbosityסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהincludeסוגstring[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstoreסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprevious_response_idסוגstringדרישהרשותערכים ומגבלות
דרישת ID: רק מזהה תגובה בפועל מהמשך נתמך
תלוי במודל
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_keyסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

טקסט קלט או חלק input_text

טקסט + תמונה

{type:input_image,image_url}

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext, image
פרמטרrequiredמפרטmodel, input
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json
פרמטרtext_file_materialמפרטתוכן UTF-8 בפועל מוכנס כטקסט; מזהי קבצים/URLs דורשים תמיכה נפרדת ומדויקת

מחזור חיים: exact retained published method

מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.

תעריפים

תעריפי שיטות Ailoot

Ailoot OpenAI ResponsesPOST /v1/responses
קלט
⁦‏0.0001 ‏$⁩ / 1K
פלט
⁦‏0.0005 ‏$⁩ / 1K
קריאה מהמטמון
⁦‏0.00001 ‏$⁩ / 1K
כתיבה למטמון
⁦‏0.000125 ‏$⁩ / 1K
כתיבה למטמון, 5 דקות
⁦‏0.000125 ‏$⁩ / 1K tokens
מכפיל fast
×2
מכפיל flex
×0.5

מחירים לפי אורך הבקשה · OpenAI Responses

גודל הבקשה, בטוקניםקלטפלטקריאה מהמטמוןכתיבה למטמוןמטמון: 5 דקותמטמון: 1 שעה
גודל הבקשה, בטוקנים(⁦0⁩; ⁦272,000⁩]קלט⁦‏0.0001 ‏$⁩פלט⁦‏0.0005 ‏$⁩קריאה מהמטמון⁦‏0.00001 ‏$⁩כתיבה למטמון⁦‏0.000125 ‏$⁩מטמון: 5 דקות⁦‏0.000125 ‏$⁩מטמון: 1 שעהתעריף בסיס: —
גודל הבקשה, בטוקנים(⁦272,000⁩; ∞)קלט⁦‏0.0002 ‏$⁩פלט⁦‏0.00075 ‏$⁩קריאה מהמטמון⁦‏0.00002 ‏$⁩כתיבה למטמון⁦‏0.00025 ‏$⁩מטמון: 5 דקות⁦‏0.00025 ‏$⁩מטמון: 1 שעהתעריף בסיס: —

התעריפים ב-USD לכל 1K טוקנים. אם לא הוגדר תעריף, נעשה שימוש בתעריף הבסיס של השיטה; «—» מציין שלא הוגדר תעריף בסיס.

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

פרטי תעריף הייחוס

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

טבלאות ייחוס של המודל

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהOpenAI Chat · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Chat · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Chat · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

דוגמאות לבקשות

Ailoot · OpenAI Responses

דוגמת טקסטקלט, תמונהPython SDKNode.js SDKהזרמה ב-Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-luna", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-luna", "input": [{"role": "user", "content": [{"type": "input_text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["input"][0]["content"].append({"type":"input_image","image_url":"data:"+mime+";base64,"+b64})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="gpt-6-luna", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "gpt-6-luna", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="gpt-6-luna", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")

קבלה ושמירה של תוצאות

Ailoot · OpenAI Responses

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

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

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהstatusסוגstring
שדהoutput[]סוגmessage|reasoning|function_call|other item
שדהoutput[].content[]סוגcontent part
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot · OpenAI Chat POST /v1/chat/completions gpt-6-luna

gpt-6-luna

OpenAI /gpt-6-luna

התחלה

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

סוגי קלט נתמכים
טקסט · תמונות
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot · OpenAI Chat POST /v1/chat/completions
סוגי קלט
text, image
סוגי פלט
text
הקשר
⁦1,050,000⁩ tokens
פלט מרבי
⁦128,000⁩ tokens
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
gpt-6-luna
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלות
מספר פריטים מזערי: ⁦1⁩
ברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
דוגמאות: system, user, assistant, tool, function
תנאים: התפקידים האלה מיוצגים במפורש בטיפוסי התאימות בקוד המקור; מערך התפקידים המדויק נשאר ייחודי לכל מודל.
תלוי במודל
ברירת מחדל—
שדהmessages[].contentסוגstring|content_part[]|nullדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_callsסוגtool_call[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: role=tool; השתמשו במזהה שהוחזר בפועל
ברירת מחדל—
שדהmessages[].nameסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].reasoning_contentסוגstringדרישהרשותערכים ומגבלות
חל כאשר: החזירו בהמשך את ההנמקה שהתקבלה בפועל כאשר המודל הזה משתמש בה
ברירת מחדל—
שדהmessages[].reasoning_detailsסוגobject|arrayדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmax_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהmax_completion_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהstream_options.include_usageסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstopסוגstring|string[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגfunction_tool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].typeסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].function.nameסוגstringדרישהחובהערכים ומגבלות
חל כאשר: סופק כלי פונקציה
ברירת מחדל—
שדהtools[].function.descriptionסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהtools[].function.parametersסוגJSON_schemaדרישהרשותערכים ומגבלותברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהresponse_formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning_effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoningסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלות
שדה תאימות
ברירת מחדל—
שדהfunctionsסוגfunction[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהfunction_callסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

messages[].content

טקסט + תמונה

{type:image_url,image_url:{url,detail}}

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext, image
פרמטרrequiredמפרטmodel, messages
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json
פרמטרtext_file_materialמפרטתוכן UTF-8 בפועל מוכנס כטקסט; מזהי קבצים/URLs דורשים תמיכה נפרדת ומדויקת

מחזור חיים: exact retained published method

מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.

תעריפים

תעריפי שיטות Ailoot

Ailoot OpenAI ChatPOST /v1/chat/completions
קלט
⁦‏0.0001 ‏$⁩ / 1K
פלט
⁦‏0.0005 ‏$⁩ / 1K
קריאה מהמטמון
⁦‏0.00001 ‏$⁩ / 1K
כתיבה למטמון
⁦‏0.000125 ‏$⁩ / 1K
כתיבה למטמון, 5 דקות
⁦‏0.000125 ‏$⁩ / 1K tokens
מכפיל fast
×2
מכפיל flex
×0.5

מחירים לפי אורך הבקשה · OpenAI Chat

גודל הבקשה, בטוקניםקלטפלטקריאה מהמטמוןכתיבה למטמוןמטמון: 5 דקותמטמון: 1 שעה
גודל הבקשה, בטוקנים(⁦0⁩; ⁦272,000⁩]קלט⁦‏0.0001 ‏$⁩פלט⁦‏0.0005 ‏$⁩קריאה מהמטמון⁦‏0.00001 ‏$⁩כתיבה למטמון⁦‏0.000125 ‏$⁩מטמון: 5 דקות⁦‏0.000125 ‏$⁩מטמון: 1 שעהתעריף בסיס: —
גודל הבקשה, בטוקנים(⁦272,000⁩; ∞)קלט⁦‏0.0002 ‏$⁩פלט⁦‏0.00075 ‏$⁩קריאה מהמטמון⁦‏0.00002 ‏$⁩כתיבה למטמון⁦‏0.00025 ‏$⁩מטמון: 5 דקות⁦‏0.00025 ‏$⁩מטמון: 1 שעהתעריף בסיס: —

התעריפים ב-USD לכל 1K טוקנים. אם לא הוגדר תעריף, נעשה שימוש בתעריף הבסיס של השיטה; «—» מציין שלא הוגדר תעריף בסיס.

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

פרטי תעריף הייחוס

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

טבלאות ייחוס של המודל

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהOpenAI Chat · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Chat · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Chat · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהAnthropic Messages · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · תעריפי טוקנים בסיסייםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · מדרגה 1 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהOpenAI Responses · מדרגה 2 לפי אורך הבקשהטבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

דוגמאות לבקשות

Ailoot · OpenAI Chat

דוגמת טקסטקלט, תמונהPython SDKNode.js SDKהזרמה ב-Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-luna", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-luna", "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image_url","image_url":{"url":"data:"+mime+";base64,"+b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="gpt-6-luna",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "gpt-6-luna",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='gpt-6-luna',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

קבלה ושמירה של תוצאות

Ailoot · OpenAI Chat

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהchoices[].indexסוגinteger
שדהchoices[].message.contentסוגstring|null
שדהchoices[].message.tool_callsסוגtool_call[]
שדהchoices[].message.reasoning_contentסוגstring
שדהchoices[].message.reasoning_detailsסוגobject|array
שדהchoices[].finish_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions gpt-6-luna

gpt-6-luna

OpenAI /gpt-6-luna
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
סוגי קלט
text
סוגי פלט
text
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
gpt-6-luna
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלות
מספר פריטים מזערי: ⁦1⁩
ברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmessages[].contentסוגstringדרישהרשותערכים ומגבלות
חל כאשר: שיחת טקסט
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שילובים של חומרי קלט

טקסט · טקסט UTF8

messages[].content

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטmodel, messages
פרמטרmaterial_typesמפרטtext
פרמטרmessagesמפרטמערך הודעות במבנה role/content
פרמטרfile_materialמפרטמסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ
פרמטרoptional_controlsמפרטstream
פרמטרcontrol_scopeמפרטשיחת טקסט; stream הוא ערך בוליאני וברירת המחדל שלו היא false.
פרמטרoutput_modalitiesמפרטtext
פרמטרhosted_operationsמפרטfalse
פרמטרmultimodal_input_bindingמפרטnull

כינויים לשיטה: /chat/completions

מחזור חיים: synchronous_or_streamed

שלחו את מזהה המודל המדויק עם messages.

אורך ההקשר אינו תקרת פלט.

קובץ טקסט יכול לספק טקסט מילולי; קלטי תמונה/אודיו/אובייקט קובץ דורשים קישור מדויק.

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · OpenAI Chat

curlPython SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"gpt-6-luna","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="gpt-6-luna", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))

קבלה ושמירה של תוצאות

Ailoot Ultra · OpenAI Chat

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהchoices[].indexסוגinteger
שדהchoices[].message.contentסוגstring|null
שדהchoices[].message.tool_callsסוגtool_call[]
שדהchoices[].message.reasoning_contentסוגstring
שדהchoices[].message.reasoning_detailsסוגobject|array
שדהchoices[].finish_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · Anthropic Messages POST /v1/messages gpt-6-luna

gpt-6-luna

OpenAI /gpt-6-luna
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
json · sse

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · Anthropic Messages POST /v1/messages
סוגי קלט
text
סוגי פלט
json, sse
פורמט פלט
JSON או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
gpt-6-luna
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
user, assistant
ברירת מחדל—
שדהmessages[].contentסוגstringדרישהחובהערכים ומגבלותברירת מחדל—
שדהmax_tokensסוגintegerדרישהחובהערכים ומגבלותברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שילובים של חומרי קלט

טקסט · טקסט UTF-8

מחרוזת messages[].content

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטmodel, messages, max_tokens
פרמטרoptional_controlsמפרטstream
פרמטרmaterial_typesמפרטtext
פרמטרtext_file_materialמפרטקראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה.

מחזור חיים: synchronous_or_streamed

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · Anthropic Messages

גוף JSON מינימלי ושלםcurl · השתמשו במסמך UTF-8 שלכםPython · שמרו את התוצאה המלאה
{
  "model": "gpt-6-luna",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gpt-6-luna', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gpt-6-luna', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

קבלה ושמירה של תוצאות

Ailoot Ultra · Anthropic Messages

JSON או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

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

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהmodelסוגstring
שדהcontent[]סוגtext|thinking|tool_use|other content block
שדהstop_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · OpenAI Responses POST /v1/responses gpt-6-luna

gpt-6-luna

OpenAI /gpt-6-luna
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · OpenAI Responses POST /v1/responses
סוגי קלט
text
סוגי פלט
text
פורמט פלט
json or SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
gpt-6-luna
ברירת מחדל—
שדהinputסוגstring|input_item[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהinput[].typeסוגstringדרישהרשותערכים ומגבלות
message, reasoning, function_call, function_call_output
ברירת מחדל—
שדהinput[].contentסוגstring|content_part[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהinput[].call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: function_call_output; שמרו את call_id שהוחזר בפועל
ברירת מחדל—
שדהinput[].outputסוגstring|content_part[]דרישהרשותערכים ומגבלות
חל כאשר: function_call_output
ברירת מחדל—
שדהmax_output_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגtool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning.effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning.summaryסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtext.formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtext.verbosityסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהincludeסוגstring[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstoreסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprevious_response_idסוגstringדרישהלא נתמךערכים ומגבלות
דרישת ID: רק מזהה תגובה בפועל מהמשך נתמך
תנאים: יש לשלוח מחדש את היסטוריית השיחה הממשית עם כל בקשה.
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_keyסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

input text or input_text part

טקסט + תמונה

{type:input_image,image_url}

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext
פרמטרrequiredמפרטmodel, input
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json
פרמטרtext_file_materialמפרטקראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה.

מחזור חיים: exact retained published method

יש לשלוח את מזהה המודל המדויק ואת שדות החובה.

יש לשמור כל פריט שהוחזר ואת המזהים המקוריים שלו.

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי בסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · OpenAI Responses

גוף JSON מינימלי ושלםcurl · השתמשו במסמך UTF-8 שלכםPython · שמרו את התוצאה המלאה
{
  "model": "gpt-6-luna",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gpt-6-luna', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gpt-6-luna', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

קבלה ושמירה של תוצאות

Ailoot Ultra · OpenAI Responses

json or SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

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

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהstatusסוגstring
שדהoutput[]סוגmessage|reasoning|function_call|other item
שדהoutput[].content[]סוגcontent part
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions openai/gpt-6-luna

openai/gpt-6-luna

OpenAI /openai/gpt-6-luna
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
סוגי קלט
text
סוגי פלט
text
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
openai/gpt-6-luna
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלות
מספר פריטים מזערי: ⁦1⁩
ברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
דוגמאות: system, user, assistant, tool, function
תנאים: התפקידים האלה מיוצגים במפורש בטיפוסי התאימות בקוד המקור; מערך התפקידים המדויק נשאר ייחודי לכל מודל.
תלוי במודל
ברירת מחדל—
שדהmessages[].contentסוגstring|content_part[]|nullדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_callsסוגtool_call[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: role=tool; השתמשו במזהה שהוחזר בפועל
ברירת מחדל—
שדהmessages[].nameסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].reasoning_contentסוגstringדרישהרשותערכים ומגבלות
חל כאשר: החזירו בהמשך את ההנמקה שהתקבלה בפועל כאשר המודל הזה משתמש בה
ברירת מחדל—
שדהmessages[].reasoning_detailsסוגobject|arrayדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmax_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהmax_completion_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהstream_options.include_usageסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstopסוגstring|string[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגfunction_tool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].typeסוגstringדרישהרשותערכים ומגבלות
function
תלוי במודל
ברירת מחדל—
שדהtools[].function.nameסוגstringדרישהחובהערכים ומגבלות
חל כאשר: סופק כלי פונקציה
ברירת מחדל—
שדהtools[].function.descriptionסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהtools[].function.parametersסוגJSON_schemaדרישהרשותערכים ומגבלותברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהresponse_formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning_effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoningסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלות
שדה תאימות
ברירת מחדל—
שדהfunctionsסוגfunction[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהfunction_callסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmodalitiesסוגstring[]דרישהרשותערכים ומגבלות
text
ברירת מחדל—
שדהproviderסוגobjectדרישהרשותערכים ומגבלות
תנאים: provider.options נדחה במסלול הטקסט הזה של Ultra
ברירת מחדל—
שדהcache_control.ttlסוגstringדרישהרשותערכים ומגבלות
תנאים: 1h נדחה במיקומים המשמשים בפועל למטמון הנחיות
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

messages[].content

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטmodel, messages
פרמטרmaterial_typesמפרטtext
פרמטרmessagesמפרטמערך הודעות במבנה role/content
פרמטרfile_materialמפרטמסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ
פרמטרoptional_controlsמפרטstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
פרמטרcontrol_scopeמפרטייחודי למודל; כלי פונקציות של המשתמש שונים מכלים מתארחים
פרמטרoutput_modalitiesמפרטtext
פרמטרhosted_operationsמפרטfalse
פרמטרmultimodal_input_bindingמפרטnull

מחזור חיים: synchronous_or_streamed

שלחו את מזהה המודל המדויק עם messages.

אורך ההקשר אינו תקרת פלט.

קובץ טקסט יכול לספק טקסט מילולי; קלטי תמונה/אודיו/אובייקט קובץ דורשים קישור מדויק.

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · OpenAI Chat

curlPython SDKהזרמה ב-Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/gpt-6-luna", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='openai/gpt-6-luna',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='openai/gpt-6-luna',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

קבלה ושמירה של תוצאות

Ailoot Ultra · OpenAI Chat

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהchoices[].indexסוגinteger
שדהchoices[].message.contentסוגstring|null
שדהchoices[].message.tool_callsסוגtool_call[]
שדהchoices[].message.reasoning_contentסוגstring
שדהchoices[].message.reasoning_detailsסוגobject|array
שדהchoices[].finish_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · Anthropic Messages POST /v1/messages openai/gpt-6-luna

openai/gpt-6-luna

OpenAI /openai/gpt-6-luna
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · Anthropic Messages POST /v1/messages
סוגי קלט
text
סוגי פלט
text
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
openai/gpt-6-luna
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלות
מספר פריטים מזערי: ⁦1⁩
ברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
user, assistant
ברירת מחדל—
שדהmessages[].contentסוגstring|content_block[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהsystemסוגstring|content_block[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהmax_tokensסוגintegerדרישהחובהערכים ומגבלות
מינימום: ⁦1⁩
המגבלה חלה על: התקרה המדויקת של המודל/הכרטיס שנבחר
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstop_sequencesסוגstring[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגtool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].nameסוגstringדרישהרשותערכים ומגבלות
חל כאשר: סופק כלי
ברירת מחדל—
שדהtools[].descriptionסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהtools[].input_schemaסוגJSON_schemaדרישהרשותערכים ומגבלותברירת מחדל—
שדהtool_choiceסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהthinking.typeסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהthinking.budget_tokensסוגintegerדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהoutput_config.effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmetadataסוגobjectדרישהרשותערכים ומגבלותברירת מחדל—
שדהcache_controlסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

messages[].content או בלוק type=text

טקסט + תמונה

{type:image,source:{type:base64,media_type,data}} או מקור מסוג type=url

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext
פרמטרrequiredמפרטmodel, messages, max_tokens
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json
פרמטרtext_file_materialמפרטקראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה.

מחזור חיים: exact retained published method

יש לשלוח את מזהה המודל המדויק ואת שדות החובה.

יש לשמור כל פריט שהוחזר ואת המזהים המקוריים שלו.

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · Anthropic Messages

גוף JSON מינימלי ושלםcurl · השתמשו במסמך UTF-8 שלכםPython · שמרו את התוצאה המלאה
{
  "model": "openai/gpt-6-luna",
  "max_tokens": 4096,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ]
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-luna', 'max_tokens': 4096, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-luna', 'max_tokens': 4096, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

קבלה ושמירה של תוצאות

Ailoot Ultra · Anthropic Messages

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

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

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהmodelסוגstring
שדהcontent[]סוגtext|thinking|tool_use|other content block
שדהstop_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · OpenAI Responses POST /v1/responses openai/gpt-6-luna

openai/gpt-6-luna

OpenAI /openai/gpt-6-luna
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · OpenAI Responses POST /v1/responses
סוגי קלט
text
סוגי פלט
text
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
openai/gpt-6-luna
ברירת מחדל—
שדהinputסוגstring|input_item[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהinput[].typeסוגstringדרישהרשותערכים ומגבלות
message, reasoning, function_call, function_call_output
ברירת מחדל—
שדהinput[].contentסוגstring|content_part[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהinput[].call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: function_call_output; שמרו את call_id שהוחזר בפועל
ברירת מחדל—
שדהinput[].outputסוגstring|content_part[]דרישהרשותערכים ומגבלות
חל כאשר: function_call_output
ברירת מחדל—
שדהmax_output_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגtool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning.effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning.summaryסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtext.formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtext.verbosityסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהincludeסוגstring[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstoreסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprevious_response_idסוגstringדרישהלא נתמךערכים ומגבלות
דרישת ID: רק מזהה תגובה בפועל מהמשך נתמך
תנאים: יש לשלוח מחדש את היסטוריית השיחה הממשית עם כל בקשה.
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_keyסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

טקסט קלט או חלק input_text

טקסט + תמונה

{type:input_image,image_url}

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext
פרמטרrequiredמפרטmodel, input
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json
פרמטרtext_file_materialמפרטקראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה.

מחזור חיים: exact retained published method

יש לשלוח את מזהה המודל המדויק ואת שדות החובה.

יש לשמור כל פריט שהוחזר ואת המזהים המקוריים שלו.

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · OpenAI Responses

גוף JSON מינימלי ושלםcurl · השתמשו במסמך UTF-8 שלכםPython · שמרו את התוצאה המלאה
{
  "model": "openai/gpt-6-luna",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-luna', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-luna', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

קבלה ושמירה של תוצאות

Ailoot Ultra · OpenAI Responses

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

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

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהstatusסוגstring
שדהoutput[]סוגmessage|reasoning|function_call|other item
שדהoutput[].content[]סוגcontent part
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions ~openai/gpt-luna-latest

~openai/gpt-luna-latest

OpenAI /~openai/gpt-luna-latest
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
סוגי קלט
text
סוגי פלט
text
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
~openai/gpt-luna-latest
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלות
מספר פריטים מזערי: ⁦1⁩
ברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
דוגמאות: system, user, assistant, tool, function
תנאים: התפקידים האלה מיוצגים במפורש בטיפוסי התאימות בקוד המקור; מערך התפקידים המדויק נשאר ייחודי לכל מודל.
תלוי במודל
ברירת מחדל—
שדהmessages[].contentסוגstring|content_part[]|nullדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_callsסוגtool_call[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: role=tool; השתמשו במזהה שהוחזר בפועל
ברירת מחדל—
שדהmessages[].nameסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].reasoning_contentסוגstringדרישהרשותערכים ומגבלות
חל כאשר: החזירו בהמשך את ההנמקה שהתקבלה בפועל כאשר המודל הזה משתמש בה
ברירת מחדל—
שדהmessages[].reasoning_detailsסוגobject|arrayדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmax_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהmax_completion_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהstream_options.include_usageסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstopסוגstring|string[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגfunction_tool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].typeסוגstringדרישהרשותערכים ומגבלות
function
תלוי במודל
ברירת מחדל—
שדהtools[].function.nameסוגstringדרישהחובהערכים ומגבלות
חל כאשר: סופק כלי פונקציה
ברירת מחדל—
שדהtools[].function.descriptionסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהtools[].function.parametersסוגJSON_schemaדרישהרשותערכים ומגבלותברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהresponse_formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning_effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoningסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלות
שדה תאימות
ברירת מחדל—
שדהfunctionsסוגfunction[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהfunction_callסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmodalitiesסוגstring[]דרישהרשותערכים ומגבלות
text
ברירת מחדל—
שדהproviderסוגobjectדרישהרשותערכים ומגבלות
תנאים: provider.options נדחה במסלול הטקסט הזה של Ultra
ברירת מחדל—
שדהcache_control.ttlסוגstringדרישהרשותערכים ומגבלות
תנאים: 1h נדחה במיקומים המשמשים בפועל למטמון הנחיות
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

messages[].content

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטmodel, messages
פרמטרmaterial_typesמפרטtext
פרמטרmessagesמפרטמערך הודעות במבנה role/content
פרמטרfile_materialמפרטמסמך UTF-8 בפועל מוכנס כטקסט מילולי; לא מוסק מזהה קובץ
פרמטרoptional_controlsמפרטstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
פרמטרcontrol_scopeמפרטייחודי למודל; כלי פונקציות של המשתמש שונים מכלים מתארחים
פרמטרoutput_modalitiesמפרטtext
פרמטרhosted_operationsמפרטfalse
פרמטרmultimodal_input_bindingמפרטnull

מחזור חיים: synchronous_or_streamed

שלחו את מזהה המודל המדויק עם messages.

אורך ההקשר אינו תקרת פלט.

קובץ טקסט יכול לספק טקסט מילולי; קלטי תמונה/אודיו/אובייקט קובץ דורשים קישור מדויק.

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · OpenAI Chat

curlPython SDKהזרמה ב-Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "~openai/gpt-luna-latest", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='~openai/gpt-luna-latest',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='~openai/gpt-luna-latest',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

קבלה ושמירה של תוצאות

Ailoot Ultra · OpenAI Chat

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהchoices[].indexסוגinteger
שדהchoices[].message.contentסוגstring|null
שדהchoices[].message.tool_callsסוגtool_call[]
שדהchoices[].message.reasoning_contentסוגstring
שדהchoices[].message.reasoning_detailsסוגobject|array
שדהchoices[].finish_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · Anthropic Messages POST /v1/messages ~openai/gpt-luna-latest

~openai/gpt-luna-latest

OpenAI /~openai/gpt-luna-latest
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
json · sse

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · Anthropic Messages POST /v1/messages
סוגי קלט
text
סוגי פלט
json, sse
פורמט פלט
JSON או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
~openai/gpt-luna-latest
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
user, assistant
ברירת מחדל—
שדהmessages[].contentסוגstringדרישהחובהערכים ומגבלותברירת מחדל—
שדהmax_tokensסוגintegerדרישהחובהערכים ומגבלותברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שילובים של חומרי קלט

טקסט · טקסט UTF-8

מחרוזת messages[].content

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרcontent_typeמפרטapplication/json
פרמטרrequiredמפרטmodel, messages, max_tokens
פרמטרoptional_controlsמפרטstream
פרמטרmaterial_typesמפרטtext
פרמטרtext_file_materialמפרטקראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה.

מחזור חיים: synchronous_or_streamed

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי הבסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · Anthropic Messages

גוף JSON מינימלי ושלםcurl · השתמשו במסמך UTF-8 שלכםPython · שמרו את התוצאה המלאה
{
  "model": "~openai/gpt-luna-latest",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': '~openai/gpt-luna-latest', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': '~openai/gpt-luna-latest', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

קבלה ושמירה של תוצאות

Ailoot Ultra · Anthropic Messages

JSON או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

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

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהmodelסוגstring
שדהcontent[]סוגtext|thinking|tool_use|other content block
שדהstop_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

Ailoot Ultra · OpenAI Responses POST /v1/responses ~openai/gpt-luna-latest

~openai/gpt-luna-latest

OpenAI /~openai/gpt-luna-latest
מזהה מודל ID
  • gpt-6-luna
  • openai/gpt-6-luna
  • ~openai/gpt-luna-latest

התחלה

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

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot Ultra · OpenAI Responses POST /v1/responses
סוגי קלט
text
סוגי פלט
text
פורמט פלט
json or SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
~openai/gpt-luna-latest
ברירת מחדל—
שדהinputסוגstring|input_item[]דרישהחובהערכים ומגבלותברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהinput[].typeסוגstringדרישהרשותערכים ומגבלות
message, reasoning, function_call, function_call_output
ברירת מחדל—
שדהinput[].contentסוגstring|content_part[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהinput[].call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: function_call_output; שמרו את call_id שהוחזר בפועל
ברירת מחדל—
שדהinput[].outputסוגstring|content_part[]דרישהרשותערכים ומגבלות
חל כאשר: function_call_output
ברירת מחדל—
שדהmax_output_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגtool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning.effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning.summaryסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtext.formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtext.verbosityסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהincludeסוגstring[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstoreסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprevious_response_idסוגstringדרישהלא נתמךערכים ומגבלות
דרישת ID: רק מזהה תגובה בפועל מהמשך נתמך
תנאים: יש לשלוח מחדש את היסטוריית השיחה הממשית עם כל בקשה.
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_keyסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

input text or input_text part

טקסט + תמונה

{type:input_image,image_url}

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext
פרמטרrequiredמפרטmodel, input
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json
פרמטרtext_file_materialמפרטקראו את מסמך UTF-8 בפועל והכניסו את הטקסט שלו לקלט שצוין או למחרוזת תוכן ההודעה.

מחזור חיים: exact retained published method

יש לשלוח את מזהה המודל המדויק ואת שדות החובה.

יש לשמור כל פריט שהוחזר ואת המזהים המקוריים שלו.

תעריפים

מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.

מצב מהיר
תעריף רגיל כאשר נבחר מצב מהיר
מצב Flex
תעריף רגיל כאשר נבחר מצב flex
מאמץ חשיבה מרבי
תעריף רגיל כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
מאמץ חשיבה · high
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־high
מאמץ חשיבה · low
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־low
מאמץ חשיבה · max
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־max
מאמץ חשיבה · medium
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־medium
מאמץ חשיבה · none
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־none
מאמץ חשיבה · xhigh
תעריף רגיל כאשר מאמץ החשיבה מוגדר ל־xhigh

תעריפי Ailoot

מחירים לפי תצורה

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

תצורהטבלת תעריפיםטוקנים בהקשר, יותר מ-טוקנים בהקשר, עד וכוללחיוב
תצורהתעריפי בסיס לטוקניםטבלת תעריפיםתעריף בסיסטוקנים בהקשר, יותר מ-—טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 1טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦0⁩טוקנים בהקשר, עד וכולל⁦272,000⁩חיוב
קלט · טוקני קלט $0.0002 / 1K טוקנים
פלט · טוקני פלט $0.001 / 1K טוקנים
קלט · קריאה מהמטמון $0.00002 / 1K טוקנים
קלט · כתיבה למטמון $0.00025 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים
תצורהרמת אורך בקשה 2טבלת תעריפים—טוקנים בהקשר, יותר מ-⁦272,000⁩טוקנים בהקשר, עד וכוללללא גבול עליוןחיוב
קלט · טוקני קלט $0.0004 / 1K טוקנים
פלט · טוקני פלט $0.0015 / 1K טוקנים
קלט · קריאה מהמטמון $0.00004 / 1K טוקנים
קלט · כתיבה למטמון $0.0005 / 1K טוקנים
קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים

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

דוגמאות לבקשות

Ailoot Ultra · OpenAI Responses

גוף JSON מינימלי ושלםcurl · השתמשו במסמך UTF-8 שלכםPython · שמרו את התוצאה המלאה
{
  "model": "~openai/gpt-luna-latest",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': '~openai/gpt-luna-latest', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': '~openai/gpt-luna-latest', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

קבלה ושמירה של תוצאות

Ailoot Ultra · OpenAI Responses

json or SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

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

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהidסוגstring
שדהstatusסוגstring
שדהoutput[]סוגmessage|reasoning|function_call|other item
שדהoutput[].content[]סוגcontent part
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot gpt-6-luna
Ailoot Ultra gpt-6-luna, openai/gpt-6-luna, ~openai/gpt-luna-latest

כינויים לנתיבי שיטות

/chat/completions

מזהי מודלים קשורים IDs

openai/gpt-6-luna, ~openai/gpt-luna-latest, gpt-6-luna, gpt-6-luna

FAQ · OpenAI: GPT-6 Luna
אילו קלטים ותוצאות זמינים?

POST /v1/messages · gpt-6-luna: text, image → text

POST /v1/responses · gpt-6-luna: text, image → text

POST /v1/chat/completions · gpt-6-luna: text, image → text

POST /v1/chat/completions · gpt-6-luna: text → text

POST /v1/messages · gpt-6-luna: text → json, sse

POST /v1/responses · gpt-6-luna: text → text

POST /v1/chat/completions · openai/gpt-6-luna: text → text

POST /v1/messages · openai/gpt-6-luna: text → text

POST /v1/responses · openai/gpt-6-luna: text → text

POST /v1/chat/completions · ~openai/gpt-luna-latest: text → text

POST /v1/messages · ~openai/gpt-luna-latest: text → json, sse

POST /v1/responses · ~openai/gpt-luna-latest: text → text

באילו שדות הבקשה משתמשת?

POST /v1/messages · gpt-6-luna: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · gpt-6-luna: model, input, instructions, stream

POST /v1/chat/completions · gpt-6-luna: model, messages, stream

POST /v1/chat/completions · gpt-6-luna: model, messages, stream

POST /v1/messages · gpt-6-luna: model, messages, max_tokens, stream

POST /v1/responses · gpt-6-luna: model, input, instructions, stream

POST /v1/chat/completions · openai/gpt-6-luna: model, messages, stream, modalities, provider

POST /v1/messages · openai/gpt-6-luna: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · openai/gpt-6-luna: model, input, instructions, stream

POST /v1/chat/completions · ~openai/gpt-luna-latest: model, messages, stream, modalities, provider

POST /v1/messages · ~openai/gpt-luna-latest: model, messages, max_tokens, stream

POST /v1/responses · ~openai/gpt-luna-latest: model, input, instructions, stream

אילו מגבלות חלות?

POST /v1/messages · gpt-6-luna: ctx: 1050000; max_out: 128000; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · gpt-6-luna: ctx: 1050000; max_out: 128000

POST /v1/chat/completions · gpt-6-luna: ctx: 1050000; max_out: 128000; messages.min_items: 1

POST /v1/chat/completions · gpt-6-luna: messages.min_items: 1

POST /v1/chat/completions · openai/gpt-6-luna: messages.min_items: 1

POST /v1/messages · openai/gpt-6-luna: messages.min_items: 1; max_tokens.minimum: 1

POST /v1/chat/completions · ~openai/gpt-luna-latest: messages.min_items: 1

פרטים נוספים

חברו Ailoot ל- Claude Code, OpenCode, Hermes או ליישום שלכם.

החברה ופורטפוליו הפרויקטים שלה

החברה ופורטפוליו הפרויקטים שלה: מיליוני לקוחות; מכירות בהיקף של מיליארדים מדי חודש.

קנו אסימונים בהנחה.

הנחת מנוי לעבודה קבועה. קודי הנחה עד 50% על רכישת אסימונים.

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

בחירת מנוי · מחירי מודלים

חברו API למוצר שאתם מוכרים.

SaaS, יישומים ובוטים לפי ההצעה והסכם הרישוי של Ailoot. למכירה מחדש בקשו רישיון משווק.

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

בקשת רישיון למכירה מחדש · ההצעה והסכם הרישוי