BestPrivateAI API — referință

Un endpoint compatibil OpenAI, un model, o cheie. Dacă codul tău deja comunică cu /v1/chat/completions, schimbă URL-ul de bază și cheia și va comunica cu noi.

URL de bază și autentificare

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

Cheile se creează pe pagina de chei. O cheie este afișată o singură dată, la creare; noi stocăm un hash și ultimele șase caractere. Trimite-o doar prin HTTPS și doar în header-ul Authorization — niciodată într-un URL.

Totul este JSON (Content-Type: application/json). Răspunsurile folosesc schema OpenAI, așa că SDK-urile oficiale openai și orice client compatibil cu OpenAI funcționează neschimbate.

Modele

GET /v1/models

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

Există un model, notrack-uncensored: propria noastră versiune de companion, servit pe propriul nostru hardware. Orice trimiți ca model este direcționat către el; folosește id-ul public ca să corespundă log-urile tale cu ale noastre.

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
}

Răspuns — formatul standard, cu numărul real de tokeni în usage (acesta este ceea ce se facturează):

{
  "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 }
}

Prompt-ul de sistem stabilit de tine guvernează conversația. Adăugăm exact o linie la început — identitatea modelului (că este notrack-uncensored, creat de BestPrivateAI) — și nimic altceva: nicio regulă, niciun filtru de subiecte. Mesajul tău de sistem urmează după aceasta și decide persona, stilul și tot restul. Singura excepție este în Politica de conținut.

Streaming

Setează "stream": true și citește evenimentele server-sent, exact ca la OpenAI. Ultimul fragment aduce usage (îl includem întotdeauna, indiferent dacă ceri stream_options sau nu), apoi 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]

Parametri

CâmpNote
messagesObligatoriu. Rolurile system, user, assistant. Doar text pentru moment — părțile de tip imagine sunt respinse.
modelFolosește notrack-uncensored.
streamtrue pentru SSE. stream_options.include_usage este mereu activ.
max_tokensLimita pentru completion. Prompt + completion trebuie să încapă în fereastra de 64,000 tokeni.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nTransmis modelului ca la OpenAI. Dacă nu trimiți temperature, folosim 0.85, la fel ca chat-ul nostru. n > 1 multiplică costul de output.
tools, tool_choiceSuportat: auto, none, required, sau o funcție numită. Răspunsul aduce tool_calls și finish_reason: "tool_calls"; trimite rezultatul înapoi ca mesaj role: "tool". Cu unelte prezente, un răspuns în streaming ajunge ca un fragment per apel, nu token cu token.
response_format{"type": "json_object"} este suportat (spune în prompt ce JSON vrei). json_schema și câmpul vechi functions nu sunt.

Limite și headere de răspuns

LimităValoareLa depășire
Cereri simultane per cheie8429 concurrency
Cereri pe minut per cheie300429 rate_limit
Fereastră de context (prompt + completion)64,000 tokeni400 context_limit — reduce istoricul și încearcă din nou
Consum zilnic per cheie (opțional)setat de tine pe pagina de chei402 key_daily_cap până la 00:00 UTC

Fiecare răspuns cu succes aduce:

HeaderSemnificație
X-Request-IdCitează-l atunci când scrii la suport; este singurul lucru pe care îl păstrăm despre o cerere.
X-NoTrack-Balance-USDCreditul tău înainte această cerere a fost taxată, în dolari.
X-RateLimit-Limit-RequestsCereri pe minut permise pentru această cheie.
X-RateLimit-Limit-ConcurrencyCereri paralele permise pentru această cheie.
X-NoTrack-Content-FlagDoar la un refuz de conținut: minor_in_sexual_context sau child_safety.

Erori

Erorile sunt JSON cu un type stabil; message este pentru oameni și se poate schimba.

{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at bestprivateai.com/api-keys" } }
HTTPtypeCe să faci
400bodyJSON invalid sau fără messages.
400context_limitPrompt prea lung pentru fereastra de 64,000 tokeni. Elimină rundele mai vechi.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextScena este citită ca sexuală, iar un personaj este citit ca minor. Fă personajele în mod neechivoc adulte și retrimite; nu se taxează.
401auth, invalid_key, key_revoked, key_expiredRepară sau înlocuiește cheia.
402no_creditSoldul este zero. Reîncarcă; cererile se reiau imediat.
402key_daily_capAceastă cheie a atins plafonul zilnic pe care l-ai setat. Ridică-l sau așteaptă până la 00:00 UTC.
403content_policy + X-NoTrack-Content-Flag: child_safetyRefuzat și netaxat. Vezi Politica de conținut.
429rate_limit, concurrencyRedu ritmul și încearcă din nou; respectă cele două headere X-RateLimit-*.
502upstreamModelul nu a răspuns. Încearcă din nou cu backoff; nu se taxează.
503billing, safetyO dependență a noastră este indisponibilă. Încearcă din nou în câteva secunde; nu se taxează.

Facturare

Credit preplătit, taxat per token pe baza usage real al fiecărui răspuns: $0.25 per 1M tokeni de input, $1.00 per 1M tokeni de output. Input este tot ce trimiți (prompt de sistem, istoric, mesajul nou); output este ce scrie modelul.

Persona — model simplu sau personajul BestPrivateAI

Fiecare cheie are un stil, ales pe pagina de chei și schimbabil în orice moment:

O cerere poate suprascrie setarea cheii, fie cu un câmp, fie cu un sufix de model (pentru clienții care pot seta doar un nume de model):

{ "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

Nume de persona: notrack (personajul simplu), concise, detailed, creative (aceleași variante oferite de chat), bare. Header-ul de răspuns X-NoTrack-Persona indică care a fost aplicată.

Politica de conținut

Nu adăugăm niciun prompt de sistem și nu rulăm niciun filtru de subiecte. Ficțiune pentru adulți, teme obscure, limbaj dur, violență în ficțiune — modelul răspunde exact cum e scris. O regulă este impusă în cod și nu poate fi dezactivată: orice conținut sexual care implică un minor este refuzat.

403-uri repetate pe o cheie duc la închiderea cheii, apoi a contului. Textul integral este în Politica de utilizare acceptabilă.

Confidențialitate

Prompturile și completions nu sunt scrise pe disc — nici de gateway, nici de serverele modelului. Ceea ce păstrăm per cerere este id-ul cererii, id-ul cheii, numărul de tokeni și prețul, pentru că acestea formează factura. Refuzurile de siguranță sunt înregistrate pe categorii, fără text. Niciun furnizor terț de model nu vede vreodată traficul tău: modelul rulează pe hardware pe care îl închiriem și îl controlăm.

Clienți și SDK-uri

Site-ul BestPrivateAI și aplicația BestPrivateAI sunt propriul nostru chat — nu au un câmp pentru o cheie API și nici nu vor avea vreodată. O cheie este pentru programe altele: lipește-o într-unul dintre clienții de mai jos, sau în propriul tău cod.

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 activat. Păstrează dimensiunea contextului la sau sub 64,000 tokeni.

Chatbox

Settings → Model Provider → Add → Add Custom Provider, mod OpenAI API Compatible → lipește URL-ul de bază și cheia, apoi adaugă notrack-uncensored ca model.

NextChat

Settings → activează Custom Endpoint (compatibil OpenAI) → URL de bază și cheie, apoi scrie numele modelului în câmpul de model.

Cherry Studio

Settings → Model Providers → Add Provider → scrie OpenAI → URL de bază și cheie, apoi „Add model” → notrack-uncensored.

LobeChat

Settings → AI Service Provider → OpenAI → activează custom API endpoint, lipește URL-ul de bază și cheia, și adaugă modelul la lista de modele.

Altceva

LangChain, LlamaIndex, Open WebUI, Continue, setările de proxy JanitorAI, curl — orice client cu o opțiune „OpenAI-compatible” sau „custom base URL”.

Denumirile din meniu de mai sus diferă între versiunile aplicației — dacă o etichetă nu se potrivește exact, caută setarea care menționează „custom”, „OpenAI-compatible” sau „base URL”.

Dacă un client nu se conectează

Chei

Întrebări sau un id de cerere de verificat: suport · bestprivateai.com/support.