sora-2
Sora 2 יוצר וידאו עם דיאלוג, אפקטים קוליים וצלילי רקע מסונכרנים, מטקסט או מתמונת ייחוס. הפרופיל הרגיל תומך בחקירה חזותית ובסרטוני קונספט, ולצדו תהליכי עבודה נפרדים של היצרן לדמויות לא־אנושיות לשימוש חוזר, להמשך סרטון ולעריכות וידאו ממוקדות.
- Ailoot Ultra · Chat Completions
POST /v1/chat/completionssora-2 - Ailoot Ultra · Anthropic Messages
POST /v1/messagessora-2
על המודל
התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.
Sora 2 הוא מודל יצירת הווידאו והאודיו של OpenAI לסרטונים דינמיים הנוצרים מתיאור סצנה כתוב או מתמונת ייחוס. הוא יוצר את הרצף החזותי יחד עם דיבור, אפקטים וצלילי רקע מסונכרנים. פרופיל Sora 2 הרגיל מיועד לחקירה חזותית, לפיתוח קונספטים, לאבות־טיפוס ולעריכות ראשוניות. Sora 2 Pro הוא מהדורה נפרדת המיועדת לנאמנות חזותית גבוהה יותר ולגימור ברזולוציה גבוהה יותר.
תארו שוט שאפשר לראות ולשמוע
מדריך ההנחיות של היצרן מארגן בריף מועיל סביב מסגור, נושא, פעולה, סביבה ותאורה. העניקו לסצנה סגנון חזותי עקבי, ואז תארו את התנועה בשלבים ברורים. קונספט מקורי למוצר יכול להראות עצם מכני קטן מסתובב פעם אחת על שולחן עבודה, בזמן שהמצלמה מתקרבת באיטיות, עם אור רך מהחלון וצליל מנוע עדין. ציינו במה על הצופה להבחין וכיצד הפעולה מסתיימת.
שמרו על תנועת מצלמה ופעולת נושא מובנות בכל שוט. רצף מורכב אפשר לחלק לבלוקים נפרדים של שוטים, לכל אחד מסגור, פעולה ותאורה משלו. שמרו על אותם פרטי נושא ועל אותה פלטת צבעים כאשר כמה סרטונים אמורים ליצור רצף אחד. המדריך מדגיש ששוטים קצרים יותר בדרך כלל נשמעים להנחיות באופן אמין יותר, ושיצירות חוזרות מאותה הנחיה מפיקות טייקים שונים.
הכרזת ההשקה של המודל מתארת שיפור בהתנהגות פיזיקלית ובהמשכיות בין שוטים, לרבות סגנונות ריאליסטיים, קולנועיים ואנימה. אלה יכולות שיש להנחות ולבדוק. בחנו תנועה, מגע בין עצמים, פרופורציות והמשכיות, בלי להניח שפריים ראשון סביר מבטיח רצף עקבי. אם פעולה אינה ברורה, פשטו אותה והעניקו לה התחלה וסיום נראים לעין.
הנחו דיאלוג וצליל בנפרד
ציינו שורות דיבור בנפרד מהתיאור החזותי וסמנו את הדוברים באופן עקבי. שמרו על דיאלוג קצר מספיק כדי להתאים לפעולה ולאורך הסרטון המיועד. באנימציה של שתי דמויות, החליפו ביניהן שאלה ותשובה קצרות במקום לבקש משוט קצר להכיל נאום ארוך. המדריך מזהיר שדיאלוג מורכב וממושך עלול לפגוע בקצב ובסנכרון.
תארו את סביבת הצליל השייכת לסצנה: צליל של תנועה קטנה, אווירת חדר או קצב של אפקט סביבתי. הסבירו איזה צליל צריך להתרחש יחד עם הפעולה. האזינו לדיבור ולאפקטים שנוצרו יחד עם התמונה, ובדקו את שיוך הדוברים, את הניסוח ואת התזמון. אודיו מסונכרן הוא חלק מהסרטון שנוצר, ולא תשובת טקסט נפרדת.
גודל, משך ופתיחה המונחית באמצעות תמונה
גדלי הפלט המתועדים של המודל הרגיל הם 720×1280 לאורך ו־1280×720 לרוחב. אין לייחס ל־Sora 2 הרגיל את הגדלים ברזולוציה גבוהה יותר שבפרופיל Pro. גודל ומשך הם הגדרות בקשה מפורשות; כתיבת גודל אחר או בקשת סרט ארוך יותר בהנחיה אינן משנות את ההגדרות הללו. מפרט היצירה מציג אפשרויות לסרטונים באורך 4, 8 ו־12 שניות, ולכן בעת הכנת שוט בחרו מהלך קצר ומוגדר. תהליך העבודה המורחב של היצרן מתעד גם אפשרויות לסרטונים באורך 16 ו־20 שניות.
תמונת ייחוס מעגנת את הפריים הראשון, והטקסט מתאר מה קורה לאחר מכן. היצרן תומך בתמונות ייחוס מסוג JPEG, PNG ו־WebP, ודורש שהתמונה תתאים לגודל הווידאו המיועד. הכינו את הנושא, הסביבה והקומפוזיציה בתמונת הפתיחה, ואז בקשו תנועה מסוימת. זהו ייחוס לפריים הפתיחה, ולא הבטחה להתאמה של כל פרט לאורך הסרטון.
דמויות לא־אנושיות לשימוש חוזר
תהליך העבודה המורחב של היצרן יכול ליצור נכס דמות לשימוש חוזר מסרטון ייחוס קצר של חיה, קמע או עצם. הנחיות ההכנה שלו מבקשות סרטון MP4 באורך של כשתי עד ארבע שניות, ברזולוציה של 720p עד 1080p וביחס ממדים 16:9 או 9:16. התאמת יחס הממדים של המקור ושל הפלט עוזרת להימנע ממראה מתוח. היצירה יכולה להתייחס לעד שתי דמויות.
שמרו את מזהה הדמות והזכירו את שמה בהנחיה; העברת המזהה בלבד אינה ההכנה המלאה המתוארת במדריך. נכסי דמויות יכולים להתלוות ליצירה המונחית באמצעות תמונה, אך הרחבות וידאו אינן מקבלות אותם. היצרן חוסם כברירת מחדל העלאת דמויות בעלות דמיון אנושי, ובתהליך ה־API המתועד דוחה תמונות ייחוס המכילות פנים אנושיות. תכונות הדמות האישית באפליקציית Sora שייכות לתהליך מוצר נפרד.
המשיכו או ערכו סרטון שהושלם
הרחבה מקבלת סרטון מקור שהושלם והנחיית המשך, ומשתמשת בסרטון המקור המלא כהקשר לתנועה, לכיוון המצלמה ולהמשכיות הסצנה. המדריך מתאר תוספות של עד 20 שניות לכל הרחבה. הקלט המתועד להרחבה הוא סרטון המקור וטקסט; ייחוסים נוספים של דמויות או תמונות אינם נכללים במצב זה. תארו כיצד הפעולה הקיימת ממשיכה במקום להציג סצנה שאינה קשורה ללא מעבר.
עריכת וידאו מכוונת לשינוי ברור בסרטון קיים. תיקון ממוקד יכול לשנות את צבעו של עצם או את פלטת הצבעים של הסצנה, תוך שמירה על שאר השוט. מדריך היצרן ממליץ על שינוי מוגדר היטב אחד בכל פעם, ומבדיל בין עריכת וידאו שנוצר לבין העלאת חומר מצולם שרירותי, שלה תנאי זכאות נפרד. שמרו את המקור שהושלם וזהו את התיקון המדויק הנחוץ לפני ביצוע עריכה נוספת.
משימות רינדור והווידאו המוגמר
תהליך הווידאו המתועד של היצרן הוא אסינכרוני: משימה שנשלחה עשויה להמתין בתור או להיות בתהליך לפני שהיא מסתיימת או נכשלת. משימה שהושלמה מפיקה סרטון MP4; נכסי תמונה ממוזערת וגיליון ספרייטים מסייעים בתצוגה מקדימה ובדפדוף. שמרו את זהות המשימה מקושרת להנחיה, לחומרי הייחוס ולנכסים שהוחזרו. תגובה ראשונית למשימה אינה הווידאו הסופי שניתן לנגן.
תהליך ההורדה הרגיל מתאר תוקף של שעה לכתובת ההורדה. תהליך העבודה המורחב באצווה מכין בקשות רינדור עצמאיות ב־JSON עם מזהי פריטים יציבים, חומרי ייחוס שהועלו ותוצאה הממופה בחזרה לכל שוט; לנכסים המוגמרים שלו חלון הורדה נפרד של עד 24 שעות. שמרו בהקדם את הסרטון המוגמר ובחנו את התמונה ואת הצליל בפועל לפני בחירתו כטייק לשימוש.
הגבלות התוכן המתועדות של API היצרן דורשות חומר המתאים לקהל מתחת לגיל 18, ודוחות דמויות או מוזיקה המוגנות בזכויות יוצרים וכן יצירה של אנשים אמיתיים. הכינו בהתאם את הסצנה ואת חומרי הייחוס. התוצאה הישירה של המודל היא וידאו עם אודיו, ולא תמונות סטילס שנוצרו, תשובת כלי שיחה או סרט ללא מגבלת אורך. שמרו על זהותו המדויקת של המודל הרגיל ועל סרטון המקור שאושר בעת המשך פיתוחו של קונספט חזותי.
Ailoot Ultra · Chat Completions POST /v1/chat/completions sora-2
sora-2התחלה
Sora 2 יוצר וידאו עם דיאלוג, אפקטים קוליים וצלילי רקע מסונכרנים, מטקסט או מתמונת ייחוס. הפרופיל הרגיל תומך בחקירה חזותית ובסרטוני קונספט, ולצדו תהליכי עבודה נפרדים של היצרן לדמויות לא־אנושיות לשימוש חוזר, להמשך סרטון ולעריכות וידאו ממוקדות.
- סוגי קלט נתמכים
- טקסט
- תוצאות
- json · sse
זמין ב-Ailoot · קלט ושיטות
Ailoot Ultra · Chat Completions POST /v1/chat/completions
- סוגי קלט
text- סוגי פלט
json,sse- פורמט פלט
- JSON או זרם מסוג text/event-stream
| שדה | סוג | דרישה | ערכים ומגבלות | ברירת מחדל |
|---|---|---|---|---|
שדהmodel | סוגstring | דרישהחובה | ערכים ומגבלות sora-2 | ברירת מחדל— |
שדהmessages | סוגmessage[] | דרישהחובה | ערכים ומגבלות | ברירת מחדל— |
שדהmessages[].role | סוגstring | דרישהחובה | ערכים ומגבלות | ברירת מחדל— |
שדהmessages[].content | סוגstring | דרישהחובה | ערכים ומגבלות | ברירת מחדל— |
שדהstream | סוגboolean | דרישהרשות | ערכים ומגבלות | ברירת מחדלfalse |
שילובים של חומרי קלט
owned_text_messages
פרמטרים ומחזור חיים של השיטה
| פרמטר | מפרט |
|---|---|
פרמטרcontent_type | מפרטapplication/json |
פרמטרrequired | מפרטmodel, messages |
פרמטרmaterial_types | מפרטtext |
פרמטרmessages | מפרטמערך הודעות עם role ועם content כמחרוזת מילולית |
פרמטרfile_material | מפרטאפשר להכניס חומר UTF-8 ממשי כתוכן מחרוזת מילולי; אין להסיק מכך הפניה לקובץ. |
פרמטרoptional_controls | מפרטstream |
מחזור חיים: synchronous_json_or_sse
תעריפים
מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.
- מצב מהיר
- לא צוין כאשר נבחר מצב מהיר
- מצב Flex
- לא צוין כאשר נבחר מצב flex
- מאמץ חשיבה מרבי
- לא צוין כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)
תעריפי Ailoot
מחירים לפי תצורה
| תצורה | טבלת תעריפים | חיוב |
|---|---|---|
| תצורהתעריפי הבסיס לטוקנים | טבלת תעריפיםתעריף בסיס | חיוב קלט · טוקני קלט $0 / 1K טוקנים פלט · טוקני פלט $0.2 / 1K טוקנים קלט · קריאה מהמטמון $0 / 1K טוקנים קלט · כתיבה למטמון $0 / 1K טוקנים קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים |
לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →
דוגמאות לבקשות
Ailoot Ultra · Chat Completions
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","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'
from pathlib import Path
print(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)
result=client.chat.completions.create(model="sora-2", messages=[{"role":"user","content":"hello"}], stream=False)
import json
from pathlib import Path
data = result.to_dict(mode="json")
Path("result.json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":true}')
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.sse
קבלה ושמירה של תוצאות
Ailoot Ultra · Chat Completions
JSON או זרם מסוג text/event-stream
שמירת כל התוצאות שהושלמו
שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.
יש לשמור את כל בתי ה־JSON או ה־SSE, את כותרות התגובה, את נתוני השימוש שהוחזרו ואת כל שדות התוצאה שסופקו. אין כאן קביעה של משפחת פלט ייחודית למודל.
כשצריך לבדוק את התגובה המקורית
יש לשמור את התגובה המקורית ואת זהות הניסיון; אין להסיק שיש לבדוק משימה חדשה במחזוריות או לשלוח שוב.
שדות התגובה
| שדה | סוג | משמעות |
|---|---|---|
שדהcomplete response JSON | סוגobject | משמעותיש לשמור כל שדה שהוחזר, בלי להניח משפחת תוצאות ייחודית למודל. |
שדהSSE data events | סוגstream | משמעותיש לשמור כל אירוע וסמן סיום שהוחזרו, בלי לבחור רק שדות טקסט. |
כינויים
כינויים למודל
Ailoot Ultra sora-2
כינויים לנתיבי שיטות
השתמשו בנתיבי השיטות המוצגים למעלה.
מזהי מודלים קשורים IDs
Ailoot Ultra · Anthropic Messages POST /v1/messages sora-2
sora-2התחלה
Sora 2 יוצר וידאו עם דיאלוג, אפקטים קוליים וצלילי רקע מסונכרנים, מטקסט או מתמונת ייחוס. הפרופיל הרגיל תומך בחקירה חזותית ובסרטוני קונספט, ולצדו תהליכי עבודה נפרדים של היצרן לדמויות לא־אנושיות לשימוש חוזר, להמשך סרטון ולעריכות וידאו ממוקדות.
- סוגי קלט נתמכים
- טקסט
- תוצאות
- json · sse
זמין ב-Ailoot · קלט ושיטות
Ailoot Ultra · Anthropic Messages POST /v1/messages
- סוגי קלט
text- סוגי פלט
json,sse- פורמט פלט
- JSON או SSE
| שדה | סוג | דרישה | ערכים ומגבלות | ברירת מחדל |
|---|---|---|---|---|
שדהmodel | סוגstring | דרישהחובה | ערכים ומגבלות sora-2 | ברירת מחדל— |
שדה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)
תעריפי Ailoot
מחירים לפי תצורה
| תצורה | טבלת תעריפים | חיוב |
|---|---|---|
| תצורהתעריפי הבסיס לטוקנים | טבלת תעריפיםתעריף בסיס | חיוב קלט · טוקני קלט $0 / 1K טוקנים פלט · טוקני פלט $0.2 / 1K טוקנים קלט · קריאה מהמטמון $0 / 1K טוקנים קלט · כתיבה למטמון $0 / 1K טוקנים קלט · כתיבה למטמון, 1 שעה — / 1K טוקנים |
לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →
דוגמאות לבקשות
Ailoot Ultra · Anthropic Messages
{
"model": "sora-2",
"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': 'sora-2', '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': 'sora-2', '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 Ultra sora-2
כינויים לנתיבי שיטות
השתמשו בנתיבי השיטות המוצגים למעלה.
מזהי מודלים קשורים IDs
FAQ · sora-2
- אילו קלטים ותוצאות זמינים?
POST /v1/chat/completions·sora-2:text→json,ssePOST /v1/messages·sora-2:text→json,sse- באילו שדות הבקשה משתמשת?
POST /v1/chat/completions·sora-2:model,messages,streamPOST /v1/messages·sora-2:model,messages,max_tokens,stream