Claude Opus 5.5 כבר זמין ב-SeedRouter

Text

תיעוד API של GLM-5.3

View Markdown

שדות בקשה של GLM-5.3, הסקה, כלים, הזרמה, שימוש ודוגמאות מלאות ל-Chat, Responses ו-Messages.

GLM-5.3 מקבל טקסט ומחזיר טקסט או קריאות לכלים. הוא תמיד מסיק, תומך ברמות low, high ו-max, ומאפשר עד 131,072 טוקני פלט. השתמש ב-glm-5.3 לדרגת Default. קבוצת ברירת המחדל היא glm; גם glm-5.3:glm בוחר במפורש באותה קבוצה. קבוצות נוספות משתמשות בסיומת מודל משלהן.

כתובת בסיס: https://api.seedrouter.ai. האימות הוא באמצעות Authorization: Bearer $SEEDROUTER_API_KEY. שמור פרטי גישה בשרת. Messages מקבל גם את הכותרת התואמת x-api-key.

תיעוד זה מבוסס על חוזה Chat של Z.ai, סכמת Responses של היצרן ומדריך התאימות ל-Messages. מגבלות המודל מגיעות ממדריך GLM-5.3. התאמה לתיעוד אינה מוכיחה כל התנהגות בפועל. בדיקות ב-29 באוקטובר 2026 השלימו בקשות טקסט והזרמה בשלושת הפורמטים, קריאת פונקציות ב-Chat, פלט אובייקט JSON והמשך תשובה שמורה. לא הוכחו פגיעות במטמון, זמני מטמון מפורשים וכל בקרת תאימות. שדות Messages להלן מובחנים משדות GLM שתועדו על ידי היצרן.

מפרט OpenAPI · תיעוד Markdown · מודל ו-Playground · מדריך תמחור

התחלה מהירה

כל דוגמה שולחת בקשת Chat Completions אחת. max_tokens: 2048 הוא תקציב לדוגמה, לא ברירת המחדל. ההסקה והתשובה הגלויה חולקות את התקציב; בדוק את finish_reason לפני שתתייחס לתשובה כמלאה.

curl https://api.seedrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"glm-5.3","messages":[{"role":"user","content":"Explain an idempotency key with one concrete example."}],"reasoning_effort":"low","max_tokens":2048}'
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["SEEDROUTER_API_KEY"], base_url="https://api.seedrouter.ai/v1")
response = client.chat.completions.create(
    model="glm-5.3",
    messages=[{"role": "user", "content": "Explain an idempotency key with one concrete example."}],
    max_tokens=2048,
    extra_body={"reasoning_effort": "low"},
)
print(response.choices[0].message.content)
print(response.usage)
import OpenAI from 'openai';
const client = new OpenAI({apiKey: process.env.SEEDROUTER_API_KEY, baseURL: 'https://api.seedrouter.ai/v1'});
const response = await client.chat.completions.create({
  model: 'glm-5.3',
  messages: [{role: 'user', content: 'Explain an idempotency key with one concrete example.'}],
  reasoning_effort: 'low',
  max_tokens: 2048,
});
console.log(response.choices[0].message.content);
console.log(response.usage);
package main

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "os"
    "time"
)

func main() {
    body := []byte(`{"model":"glm-5.3","messages":[{"role":"user","content":"Explain an idempotency key with one concrete example."}],"reasoning_effort":"low","max_tokens":2048}`)
    req, err := http.NewRequest("POST", "https://api.seedrouter.ai/v1/chat/completions", bytes.NewReader(body))
    if err != nil { panic(err) }
    req.Header.Set("Authorization", "Bearer " + os.Getenv("SEEDROUTER_API_KEY"))
    req.Header.Set("Content-Type", "application/json")
    client := &http.Client{Timeout: 3 * time.Minute}
    res, err := client.Do(req)
    if err != nil { panic(err) }
    defer res.Body.Close()
    data, err := io.ReadAll(res.Body)
    if err != nil { panic(err) }
    if res.StatusCode != http.StatusOK { panic(fmt.Sprintf("HTTP %d: %s", res.StatusCode, data)) }
    fmt.Println(string(data))
}

Chat Completions

POST /v1/chat/completions מקבל 16 שדות ברמה העליונה. שדות אינם מקבלים null אלא אם צוין במפורש. אפשר להשמיט שדות אופציונליים; אל תשלח null במקום השמטה.

שדהטיפוסנדרשברירת מחדל ומגבלות
modelמחרוזתכןglm-5.3 (Default)
messagesמערךכןלפחות הודעה אחת; חייב לכלול הודעת user או tool
do_sampleבוליאנילאtrue; false מבטל את השפעת temperature ו-top_p
streamבוליאנילאfalse
thinkingאובייקטלאtype: enabled; clear_thinking: true
reasoning_effortמחרוזתלאlow, high, max; ברירת מחדל max
temperatureמספרלא0–1 כולל; ברירת מחדל 1
top_pמספרלא0.01–1 כולל; ברירת מחדל 0.95
max_tokensמספר שלםלא1–131072; אין ברירת מחדל מפורסמת ל-Chat
tool_streamבוליאנילאfalse; true דורש stream: true
toolsמערךלאFunction, retrieval או web_search; עד 128 פריטים
tool_choiceמחרוזתלאauto בלבד
stopמערך מחרוזותלאעד ארבע מחרוזות בסכמה הרשמית; ארבע התקבלו בבקשה אמיתית, אך התאמת עצירה לא נבדקה
response_formatאובייקטלאtype נדרש: text או json_object; ברירת מחדל text
request_idמחרוזתלא6–64 תווים; מזהה ייחודי לבקשת הקורא
user_idמחרוזתלא6–128 תווים; הימנע ממידע אישי

הודעות system ו-user דורשות מחרוזת content. הודעת assistant יכולה לשאת מחרוזת content, את reasoning_content ואת tool_calls. הודעת tool דורשת content ו-tool_call_id. שמור בדיוק את ההסקה ההיסטורית בעת שימוש ב-thinking.clear_thinking: false, כולל סדר קריאות העוזר ותוצאות הכלים. אי אפשר לכבות חשיבה.

כלי פונקציה משתמש ב-{type:"function", function:{name, description, parameters}}. השם מכיל 1–64 אותיות ASCII, ספרות, קווים תחתונים או מקפים. הסכמה למכונה דורשת description ו-parameters; הטקסט מזכיר השמטה לפונקציות ללא פרמטרים. השתמש במבנה המלא עד לפתרון הסתירה. parameters הוא JSON Schema של הפונקציה; הוא אינו מפורש כתוכן הודעה.

כלי אחזור משתמש ב-{type:"retrieval", retrieval:{knowledge_id, prompt_template?}}. מזהה ידע שייך לחשבון שמשרת את הבקשה; הצהרה על הכלי אינה יוצרת בסיס ידע.

כלי חיפוש ברשת משתמש ב-{type:"web_search", web_search:{search_engine:"search_pro_jina"}}. שדות אופציונליים כוללים enable, search_query, count (1–50), search_domain_filter, search_recency_filter (oneDay, oneWeek, oneMonth, oneYear, noLimit), content_size (medium, high), result_sequence (before, after), search_result, require_search ו-search_prompt. ראה OpenAPI לטיפוסים המדויקים. זמינות חיפוש ואחזור לחשבון מסוים דורשת בדיקה בפועל.

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

Responses

POST /v1/responses מקבל 15 שדות יצירה ברמה העליונה. הוא מבוסס על סכמת Responses של היצרן בהתאמה ל-GLM-5.3; ההתנהגות המדויקת בין שירותים עדיין דורשת אימות.

curl https://api.seedrouter.ai/v1/responses \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"glm-5.3","input":[{"type":"message","role":"user","content":"Give a concise example of a safe retry."}],"reasoning":{"effort":"low"},"max_output_tokens":2048,"store":false}'
שדהטיפוסנדרשברירת מחדל ומגבלות
modelמחרוזתכןglm-5.3
inputמחרוזת או מערךכןפריטי קלט מקוריים כמפורט להלן
instructionsמחרוזתלאהוראות מערכת
streamבוליאנילאfalse
temperatureמספרלא0–1, עד שתי ספרות עשרוניות; ברירת מחדל 1
top_pמספרלא0.01–1, עד שתי ספרות עשרוניות; ברירת מחדל 0.95
max_output_tokensמספר שלםלא1–131072; ברירת מחדל 65536, כולל הסקה
stopמערך מחרוזותלאלא הוגדרה מגבלת מספר בפרוטוקול זה
toolsמערךלאFunction, namespace, custom או web_search
tool_choiceמחרוזתלאnone או auto
reasoningאובייקטלאeffort: low, high, max; ברירת מחדל max
textאובייקטלאformat.type: text או json_object
prompt_cache_keyמחרוזתלאמפתח בחירת מטמון; אין מגבלת אורך מתועדת
previous_response_idמחרוזתלאמפנה לתשובה שנשמרה קודם
storeבוליאנילאfalse; האם לשמור תשובה זו

פריטי הודעות בקלט דורשים type: "message", תפקיד (user, system, assistant, developer) ותוכן. התוכן יכול להיות מחרוזת, בלוק טקסט אחד או מערך בלוקי טקסט. השתמש ב-input_text או ב-output_text של העוזר עם מחרוזת text. סכמות תמונה/קובץ כלליות אינן מעניקות יכולת ראייה למודל טקסטואלי זה.

פריטי קריאה לפונקציה בקלט דורשים type: "function_call", את name, את call_id ומחרוזת JSON בשם arguments; השדה namespace אופציונלי. תוצאות דורשות type: "function_call_output", את call_id ומחרוזת output. פריטי הסקה משתמשים ב-type: "reasoning" ובאובייקט content: {type:"reasoning_text", text:"..."} יחיד. שמור אותו בלי להמיר למערך.

כלי פונקציות דורשים type: "function" ו-name, עם description ו-parameters אופציונליים. כלי מרחב שמות דורשים type: "namespace" ו-name ויכולים להכיל פונקציות tools. כלים מותאמים דורשים type: "custom" ו-name. כלי חיפוש ברשת דורשים type: "web_search". אל תעתיק לפורמט הזה את שדות החובה של פונקציות Chat.

התשובה הקודמת שאליה מפנים חייבת להיות שמורה. שמירת התשובה הנוכחית היא בחירה נפרדת; previous_response_id אינו כופה store: true נוכחי. תקופת השמירה של היצרן היא שבעה ימים. בדיקה אמיתית שמרה תשובה והמשיכה מהמזהה שלה עם store: false נוכחי; אין בכך אישור לכל פעולה בתשובות שמורות.

פעולות על תשובות שמורות

לאחר הצלחת store: true, שמור את מזהה התשובה שהוחזר ללא שינוי. הפעולות המאומתות האלו משתמשות באותו חשבון שיצר אותה:

  • GET /v1/responses/{response_id} מאחזר את התשובה השמורה.
  • GET /v1/responses/{response_id}/input_items מציג פריטי קלט. שדות שאילתה אופציונליים: order (asc או desc, ברירת מחדל desc), limit (מספר שלם 1–100, ברירת מחדל 20) ו-after (last_id של העמוד הקודם).
  • DELETE /v1/responses/{response_id} מוחק את התשובה השמורה.

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

תאימות Messages

POST /v1/messages משתמש במעטפת תואמת Anthropic. כלול anthropic-version: 2023-06-01. היצרן מדגים ישירות model, messages, max_tokens ו-stream. הוא אינו מפרסם סכמה מלאה של GLM Messages ומזהיר מהבדלים מ-Claude. יתר הבקרות הן שדות מתיעוד התאימות, ולא יכולות GLM שאומתו בנפרד.

curl https://api.seedrouter.ai/v1/messages \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'anthropic-version: 2023-06-01' \
  -d '{"model":"glm-5.3","messages":[{"role":"user","content":"Explain a safe retry in two sentences."}],"max_tokens":2048}'
שדהמבנה ואימותראיה
modelמחרוזת חובה glm-5.3דוגמת GLM
messagesמערך user/assistant חובה שאינו ריק; מחרוזת או בלוקי טקסט/כלים מקורייםדוגמת טקסט GLM; מבני הבלוקים מתיעוד התאימות
max_tokensמספר שלם חובה 1–131072דוגמת GLM ומגבלת פלט המודל
streamבוליאני; ברירת מחדל falseדוגמת GLM
systemמחרוזת או מערך בלוקי טקסטתיעוד תאימות
temperatureמספר 0–1תיעוד תאימות; המיפוי לא אומת
top_pמספר 0.01–1תיעוד תאימות; המיפוי לא אומת
top_kמספר שלם לא שליליתיעוד תאימות; המיפוי לא אומת
stop_sequencesמערך מחרוזותתיעוד תאימות
toolsכלי לקוח: name, input_schema, ו-description אופציונליתיעוד תאימות
tool_choiceאובייקט עם type שהוא auto, none, any או tool; כלי בשם דורש nameתיעוד תאימות
thinkingenabled עם budget_tokens או adaptive; אי אפשר לכבות חשיבהתיעוד תאימות וכלל החשיבה התמידית של GLM
output_configאובייקט עם effort שהוא low, high או maxכתיב שדה תואם; המיפוי לא אומת
metadataאובייקט עם user_id אופציונליתיעוד תאימות
cache_controlסמן ephemeral, עם ttl אופציונלי 5m או 1hתיעוד פרוטוקול בלבד; התנהגות TTL מפורשת ב-GLM לא אומתה

תקציב enabled thinking התואם הוא לפחות 1024 וקטן מ-max_tokens. בלוקי טקסט דורשים text; היסטוריית חשיבה דורשת thinking ו-signature; חשיבה מושחרת דורשת data. בלוקי שימוש בכלים דורשים id, name ו-input; בלוקי תוצאות דורשים tool_use_id. בלוקי תמונה, שמע או וידאו אינם מתקבלים. סמני מטמון מפורשים אינם מוכיחים פגיעה, משך שמירה או תעריף נפרד. מטמון ההקשר המתועד של המודל אוטומטי.

פלט, הזרמה ושימוש

Chat מחזיר id, created, model, choices ו-usage, עם request_id ו-web_search אופציונליים. קרא את choices[].message.content, את reasoning_content ואת tool_calls. תשובה עם קריאה לכלי עשויה לא לכלול טקסט תשובה. SSE שולח מקטעי הסקה, טקסט וארגומנטים לכלים, ואז [DONE]. חבר מקטעי ארגומנטים לפי אינדקס הקריאה. השדה stream_options אינו חלק מבקשת GLM Chat הרשמית.

Responses מחזיר את איחוד output המקורי: הודעות, הסקה וקריאות לכלים. SSE כולל response.created, response.in_progress, אירועי פריט פלט וחלק תוכן, מקטעי טקסט/הסקה/ארגומנטים לפונקציות, התקדמות חיפוש ולבסוף response.completed, response.incomplete או response.failed. אין חובה לסמן [DONE]. שמור אינדקסים ומספרי רצף.

Messages מחזיר מעטפת הודעה מקורית עם בלוקי תוכן, stop_reason ו-usage. שמות האירועים כוללים message_start, content_block_start/delta/stop, message_delta ו-message_stop. שמור חתימות חשיבה ומזהי כלים כהיסטוריה אטומה.

פורמטכלל הקלטקלט מהמטמוןפלט
Chatprompt_tokensprompt_tokens_details.cached_tokenscompletion_tokens
Responsesinput_tokensinput_tokens_details.cached_tokensoutput_tokens
Messagesinput_tokens בתוספת cache_read_input_tokens וכל cache_creation_input_tokenscache_read_input_tokensoutput_tokens

הסקה היא חלק מהפלט ואינה חיוב נוסף. קלט מהמטמון ב-Chat/Responses הוא חלק מכלל הקלט. הפחת חלקי מטמון שדווחו בנפרד לפני החלת תעריף הקלט הרגיל. תשובות ציבוריות חושפות שימוש בטוקנים ולא חיובים כספיים. המחירים העדכניים מגיעים מהגדרות החיוב הנוכחיות; בקשות שנכשלו אינן מחויבות.

אימות ושגיאות

טיפוסים לא תקינים, חשיבה כבויה, רמה שאינה נתמכת, תקציבי פלט גבוהים מדי וקלט מדיה נכשלים באימות. tool_stream של Chat דורש stream. שדות עליונים לא נתמכים מושמטים ולא מועברים הלאה. נדרשים פרטי גישה; יתרה לא מספקת מונעת בקשה בתשלום. שגיאות משתמשות במעטפת השגיאה הציבורית (Messages משתמש במבנה המקורי שלו). לעולם אל תתייחס לזרם שנקטע כתשובה מלאה ואל תשלח מחדש אוטומטית בקשה עם תוצאה לא ודאית.

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