דילוג לתוכן
NotHolyתיעוד

מדריך API

השלמות צ׳אט

POST /v1/chat/completions בפורמט של OpenAI, עם סטרימינג, כלים, תמונות וחשיבה.

להציג כ-Markdown

הבקשה והתשובה של Chat Completions של OpenAI, על מודלים של NotHoly. מספיק לכוון SDK של OpenAI לכתובת הבסיס, בלי לשנות שום דבר אחר.

POSThttps://api.notholy.com/v1/chat/completions

בקשה

שדהסוגחובההערות
modelstringכןמזהה מודל, למשל notholy-specter. פרטים במודלים
messagesarrayכןהתפקידים system, developer (מטופל כמו system), user, assistant או tool. התוכן הוא מחרוזת או רשימת חלקים מסוג text או image_url
max_completion_tokens / max_tokensnumberלאמגבלת הפלט. אם שניהם מוגדרים, max_completion_tokens קובע. ברירת המחדל היא הפלט המקסימלי של המודל, וערך גדול יותר מחזיר 400
streambooleanלאהערך true מחזיר server-sent events. פרטים בסטרימינג
toolsarrayלאכלי פונקציה בלבד. סוגי כלים אחרים מחזירים 400 unsupported_parameter
tool_choicestring או objectלאמועבר למודל כשהשדה tools מוגדר
reasoning_effortstringלאאחד מערכי reasoning_efforts של המודל. כל ערך אחר מחזיר 400. פרטים בחשיבה
response_formatobjectלאמועבר למודל
temperature, top_p, stopnumber, number, string או arrayלאמועברים למודל
nnumberלארק 1

שדות לא מוכרים לא נלקחים בחשבון. תמונות מתקבלות במודלים שהשדה input_modalities שלהם כולל image. בשאר המודלים הן מחזירות 400 unsupported_parameter.

תשובה בלי סטרימינג

JSON
{
  "id": "chatcmpl-8Kp2c1Vx",
  "object": "chat.completion",
  "created": 1793836800,
  "model": "notholy-specter",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "An IDOR lets a user read or change another user's object by changing its ID…",
        "refusal": null,
        "reasoning_content": "…"
      },
      "finish_reason": "stop",
      "logprobs": null
    }
  ],
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 118,
    "total_tokens": 160,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 64 }
  }
}
  • השדה reasoning_content מופיע רק כשהמודל הפעיל חשיבה.
  • כשיש קריאות לכלים, השדה message.tool_calls מכיל פריטים מהצורה {id, type: "function", function: {name, arguments}}, הערך של finish_reason הוא tool_calls, והשדה content הוא null כשאין טקסט.
  • הערך של finish_reason הוא stop, length, tool_calls או content_filter.
  • בסטרימינג, ה-chunk האחרון לפני data: [DONE] תמיד כולל usage, גם בלי לשלוח את stream_options.include_usage.

דוגמה

curl https://api.notholy.com/v1/chat/completions \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "notholy-specter",
    "messages": [
      {"role": "system", "content": "You are reviewing code for an authorized assessment."},
      {"role": "user", "content": "What does a missing ownership check in GET /api/invoices/:id lead to?"}
    ]
  }'

כותרות התשובה

כותרתמשמעות
x-request-idיש לצרף אותו לפנייה לתמיכה על בעיה
x-notholy-concurrency-limitמספר הבקשות שאפשר להריץ במקביל
x-notholy-concurrency-remainingמקומות פנויים בזמן שהבקשה הזו התחילה
x-notholy-credits-remainingהקרדיטים הזמינים בדולרים בזמן שהבקשה הזו התחילה

שגיאות

400 גוף או פרמטר לא תקינים · 401 מפתח חסר או לא תקין · 402 אין מספיק קרדיטים או תקציב מפתח · 403 המפתח לא מורשה להשתמש במודל הזה · 404 מודל לא מוכר · 429 מגבלת קצב או מקביליות (יש לכבד את retry-after) · 502/504 המודל נכשל או חרג מזמן ההמתנה · 503 המודל לא זמין. הטבלה המלאה: שגיאות.