BestPrivateAI API — מסמך עזר

endpoint אחד תואם OpenAI, מודל אחד, מפתח אחד. אם הקוד שלך כבר מדבר עם /v1/chat/completions, החלף את כתובת ה-URL הבסיסית ואת המפתח, והוא ידבר איתנו.

כתובת URL בסיסית ואימות

Base URL:  https://api.bestprivateai.com/v1
Header:    Authorization: Bearer sk-…

מפתחות נוצרים ב-עמוד המפתחות. מפתח מוצג פעם אחת בלבד, בעת היצירה; אנחנו שומרים hash ואת שש התווים האחרונים שלו. שלח אותו רק ב-HTTPS ורק בכותרת Authorization — לעולם לא בתוך URL.

הכול הוא JSON (Content-Type: application/json). התגובות משתמשות בסכימה של OpenAI, כך שה-SDK הרשמיים של openai וכל לקוח תואם OpenAI פועלים בלי שינוי.

מודלים

GET /v1/models

{ "object": "list",
  "data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }

יש מודל אחד, notrack-uncensored: הכוונון שלנו, המוגש על החומרה שלנו. כל מה שתעביר בשדה model מנותב אליו; השתמש במזהה הציבורי כדי שהלוגים שלך יתאימו לשלנו.

Chat completions

POST /v1/chat/completions

{
  "model": "notrack-uncensored",
  "messages": [
    { "role": "system",    "content": "You are Mira, a wry bartender in 1920s Berlin." },
    { "role": "user",      "content": "Evening. What's good tonight?" }
  ],
  "max_tokens": 400,
  "temperature": 0.9
}

תגובה — הצורה הסטנדרטית, עם ספירת טוקנים אמיתית ב-usage (זה הבסיס לחיוב שלך):

{
  "id": "chatcmpl-…", "object": "chat.completion", "model": "notrack-uncensored",
  "choices": [ { "index": 0, "finish_reason": "stop",
                 "message": { "role": "assistant", "content": "…" } } ],
  "usage": { "prompt_tokens": 41, "completion_tokens": 118, "total_tokens": 159 }
}

ה-system prompt שלך מנהל את השיחה. אנחנו מוסיפים בתחילה שורה אחת בלבד — הזהות של המודל (שהוא notrack-uncensored, שנוצר על ידי BestPrivateAI) — ולא יותר מזה: אין חוקים, אין מסנן נושאים. הודעת המערכת שלך מגיעה אחריה וקובעת את הפרסונה, הסגנון וכל השאר. החריג היחיד נמצא ב-מדיניות תוכן.

Streaming

הגדר "stream": true וקרא server-sent events, בדיוק כמו ב-OpenAI. הקטע האחרון נושא את usage (אנחנו כוללים אותו תמיד, בין אם ביקשת stream_options ובין אם לא), ואז data: [DONE].

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Ev"}}]}
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"ening"}}]}
…
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[],"usage":{"prompt_tokens":41,"completion_tokens":118,"total_tokens":159}}
data: [DONE]

פרמטרים

שדההערות
messagesשדה חובה. תפקידים system, user, assistant. טקסט בלבד לעת עתה — חלקי תמונה נדחים.
modelהשתמש ב-notrack-uncensored.
streamtrue עבור SSE. stream_options.include_usage מופעל תמיד.
max_tokensתקרה על ה-completion. ה-prompt + ה-completion צריכים להיכנס בחלון של 64,000 טוקנים.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nמועבר למודל כמו ב-OpenAI. אם לא תשלח temperature נשתמש ב-0.85, בדיוק כמו בצ'אט שלנו. n > 1 מכפיל את עלות הפלט.
tools, tool_choiceנתמך: auto, none, required, או פונקציה בשם מוגדר. התגובה נושאת tool_calls ו-finish_reason: "tool_calls"; שלח את התוצאה בחזרה כהודעת role: "tool". כשקיימים tools, תגובה בזרימה מגיעה כקטע אחד לכל קריאה ולא טוקן אחר טוקן.
response_format{"type": "json_object"} נתמך (ציין ב-prompt איזה JSON אתה רוצה). json_schema והשדה הישן functions אינם נתמכים.

מגבלות וכותרות תגובה

מגבלהערךכשחוצים אותה
בקשות מקבילות למפתח8429 concurrency
בקשות בדקה למפתח300429 rate_limit
חלון הקשר (prompt + completion)64,000 טוקנים400 context_limit — קצץ את ההיסטוריה וניסה שוב
הוצאה יומית למפתח (אופציונלי)מוגדר על ידך בעמוד המפתחות402 key_daily_cap עד 00:00 UTC

כל תגובה מוצלחת נושאת:

כותרתמשמעות
X-Request-Idציטוט שלו כשכותבים לתמיכה; זה הדבר היחיד שאנחנו שומרים על בקשה.
X-NoTrack-Balance-USDהיתרה שלך לפני החיוב על בקשה זו, בדולרים.
X-RateLimit-Limit-Requestsבקשות בדקה המותרות למפתח זה.
X-RateLimit-Limit-Concurrencyבקשות מקבילות המותרות למפתח זה.
X-NoTrack-Content-Flagרק בסירוב תוכן: minor_in_sexual_context או child_safety.

שגיאות

שגיאות הן JSON עם type יציב; ה-message מיועד לבני אדם ועשוי להשתנות.

{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at bestprivateai.com/api-keys" } }
HTTPtypeמה לעשות
400bodyJSON לא תקין או ללא messages.
400context_limitה-prompt ארוך מכדי להיכנס לחלון של 64,000 טוקנים. הסר תורות ישנות יותר.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextהסצנה נקראת כמינית ודמות נקראת כקטינה. הפוך את הדמויות לחד-משמעית בוגרות ושלח מחדש; לא מחויב.
401auth, invalid_key, key_revoked, key_expiredתקן או החלף את המפתח.
402no_creditהיתרה היא אפס. טעינה; הבקשות מתחדשות באופן מיידי.
402key_daily_capמפתח זה הגיע לתקרה היומית שהגדרת. העלה אותה או המתן ל-00:00 UTC.
403content_policy + X-NoTrack-Content-Flag: child_safetyנדחה ולא חויב. ראה מדיניות תוכן.
429rate_limit, concurrencyהאט וניסה שוב; כבד את שתי כותרות X-RateLimit-*.
502upstreamהמודל לא הגיב. ניסה שוב עם backoff; לא מחויב.
503billing, safetyאחת מהתלויות שלנו לא זמינה. ניסה שוב בעוד כמה שניות; לא מחויב.

חיוב

יתרה בתשלום מראש, מחויבת לפי טוקן על בסיס ה-usage האמיתי של כל תגובה: $0.25 ל-1M טוקני קלט, $1.00 ל-1M טוקני פלט. הקלט הוא כל מה שאתה שולח (system prompt, היסטוריה, ההודעה החדשה); הפלט הוא מה שהמודל כותב.

פרסונה — מודל עירום או הדמות של BestPrivateAI

לכל מפתח יש סגנון, שנבחר בעמוד המפתחות וניתן להחליף בכל עת:

בקשה יכולה לעקוף את ההגדרה של המפתח, בין באמצעות שדה ובין באמצעות סיומת מודל (עבור לקוחות שיכולים להגדיר רק שם מודל):

{ "model": "notrack-uncensored", "notrack": { "persona": "notrack" }, "messages": [ … ] }

{ "model": "notrack-uncensored:notrack", "messages": [ … ] }      // same thing, by model name
{ "model": "notrack-uncensored:bare",    "messages": [ … ] }      // force the bare model on a persona key

שמות פרסונה: notrack (הדמות הפשוטה), concise, detailed, creative (אותם וריאנטים שהצ'אט מציע), bare. כותרת התגובה X-NoTrack-Persona מציינת איזו מהן הופעלה.

מדיניות תוכן

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

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

פרטיות

prompts ו-completions לא נכתבים לדיסק — לא על ידי ה-gateway ולא על ידי שרתי המודל. מה שאנחנו שומרים לכל בקשה הוא מזהה הבקשה, מזהה המפתח, ספירות הטוקנים והמחיר, כי זה מה שמרכיב את החשבונית. סירובי בטיחות נרשמים לפי קטגוריה, בלי הטקסט. שום ספק מודל צד שלישי לא רואה אף פעם את התעבורה שלך: המודל רץ על חומרה שאנחנו שוכרים ושולטים בה.

לקוחות ו-SDK

האתר של BestPrivateAI והאפליקציה של BestPrivateAI הם הצ'אט שלנו — אין להם שדה למפתח API ולעולם לא יהיה. מפתח מיועד לתוכנות חיצוניות: הדבק אותו באחד מהלקוחות למטה, או בקוד שלך.

Python

from openai import OpenAI
client = OpenAI(base_url="https://api.bestprivateai.com/v1", api_key="sk-…")
stream = client.chat.completions.create(model="notrack-uncensored",
    messages=[{"role": "user", "content": "Hello"}], stream=True)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Node.js

import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.bestprivateai.com/v1", apiKey: process.env.API_KEY });
const r = await client.chat.completions.create({ model: "notrack-uncensored",
  messages: [{ role: "user", content: "Hello" }] });
console.log(r.choices[0].message.content);

SillyTavern

API Connections ← API: Chat Completion ← Source: Custom (OpenAI-compatible) ← Custom Endpoint https://api.bestprivateai.com/v1 ← Custom API Key ← Connect ← Model notrack-uncensored. Streaming מופעל. שמור על גודל ההקשר ב-64,000 טוקנים או פחות.

Chatbox

Settings ← Model Provider ← Add ← Add Custom Provider, מצב OpenAI API Compatible ← הדבק את כתובת ה-URL הבסיסית והמפתח, ואז הוסף את notrack-uncensored כמודל.

NextChat

Settings ← הפעל Custom Endpoint (תואם OpenAI) ← כתובת URL בסיסית ומפתח, ואז הקלד את שם המודל בשדה המודל.

Cherry Studio

Settings ← Model Providers ← Add Provider ← הקלד OpenAI ← כתובת URL בסיסית ומפתח, ואז "Add model" ← notrack-uncensored.

LobeChat

Settings ← AI Service Provider ← OpenAI ← הפעל custom API endpoint, הדבק את כתובת ה-URL הבסיסית והמפתח, והוסף את המודל לרשימת המודלים.

כל דבר אחר

LangChain, LlamaIndex, Open WebUI, Continue, הגדרות ה-proxy של JanitorAI, curl — כל לקוח עם אפשרות "OpenAI-compatible" או "custom base URL".

הניסוח בתפריטים לעיל משתנה בין גרסאות האפליקציה — אם תווית מסוימת לא תואמת בדיוק, חפש הגדרה שמזכירה "custom", "OpenAI-compatible" או "base URL".

אם לקוח לא מתחבר

מפתחות

שאלות או מזהה בקשה לבדיקה: תמיכה · bestprivateai.com/support.