API BestPrivateAI — referenční dokumentace

Jeden endpoint kompatibilní s OpenAI, jeden model, jeden klíč. Pokud váš kód už komunikuje s /v1/chat/completions, změňte základní URL a klíč a bude komunikovat s námi.

Základní URL a autentizace

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

Klíče se vytvářejí na stránku s klíči. Klíč se zobrazí jen jednou, při vytvoření; ukládáme jeho hash a posledních šest znaků. Odesílejte ho jen přes HTTPS a jen v hlavičce Authorization — nikdy v URL.

Vše je ve formátu JSON (Content-Type: application/json). Odpovědi používají schéma OpenAI, takže oficiální SDK pro openai i každý klient kompatibilní s OpenAI funguje bez úprav.

Modely

GET /v1/models

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

Existuje jeden model, notrack-uncensored: náš vlastní companion tuning, provozovaný na našem vlastním hardwaru. Cokoliv předáte jako model, se přesměruje na něj; používejte veřejné id, aby se vaše logy shodovaly s našimi.

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
}

Odpověď — standardní tvar, s reálným počtem tokenů v usage (podle toho se účtuje):

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

Konverzaci řídí váš system prompt. Na začátek přidáváme přesně jeden řádek — identitu modelu (že je to notrack-uncensored, vytvořený společností BestPrivateAI) — a nic víc: žádná pravidla, žádný filtr témat. Vaše systémová zpráva ho následuje a rozhoduje o personě, stylu a všem ostatním. Jedinou výjimkou je Zásady obsahu.

Streamování

Nastavte "stream": true a čtěte server-sent events, přesně jako u OpenAI. Poslední fragment nese usage (vždy ho zahrnujeme, ať stream_options požadujete nebo ne), pak 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]

Parametry

PolePoznámky
messagesPovinné. Role system, user, assistant. Zatím jen text — obrazové části jsou odmítnuty.
modelPoužijte notrack-uncensored.
streamtrue pro SSE. stream_options.include_usage je vždy zapnuto.
max_tokensStrop pro completion. Prompt + completion se musí vejít do okna 64,000 tokenů.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nPředává se modelu stejně jako u OpenAI. Pokud neposílíte temperature, použijeme 0,85, stejně jako v našem chatu. n > 1 násobí cenu výstupu.
tools, tool_choicePodporováno: auto, none, required, nebo pojmenovaná funkce. Odpověď nese tool_calls a finish_reason: "tool_calls"; výsledek odešlete zpět jako zprávu role: "tool". Když jsou přítomny nástroje, streamovaná odpověď přichází jako jeden fragment na volání, ne token po tokenu.
response_format{"type": "json_object"} je podporováno (řekněte v promptu, jaké JSON chcete). json_schema a zastaralé pole functions nejsou.

Limity a hlavičky odpovědí

LimitHodnotaPři překročení
Souběžné požadavky na klíč8429 concurrency
Požadavky za minutu na klíč300429 rate_limit
Kontextové okno (prompt + completion)64,000 tokenů400 context_limit — zkraťte historii a zkuste to znovu
Denní útrata na klíč (volitelné)nastavíte na stránce s klíči402 key_daily_cap do 00:00 UTC

Každá úspěšná odpověď nese:

HlavičkaVýznam
X-Request-IdUveďte ho při psaní na podporu; je to jediná věc, kterou o požadavku uchováváme.
X-NoTrack-Balance-USDVáš kredit před tím, než byl tento požadavek zúčtován, v dolarech.
X-RateLimit-Limit-RequestsPočet požadavků za minutu povolený pro tento klíč.
X-RateLimit-Limit-ConcurrencyPočet paralelních požadavků povolený pro tento klíč.
X-NoTrack-Content-FlagPouze při odmítnutí obsahu: minor_in_sexual_context nebo child_safety.

Chyby

Chyby jsou JSON se stabilním type; message je určeno lidem a může se měnit.

{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at bestprivateai.com/api-keys" } }
HTTPtypeCo dělat
400bodyNeplatný JSON nebo chybí messages.
400context_limitPrompt je na okno 64,000 tokenů příliš dlouhý. Odstraňte starší tahy.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextScéna vyznívá sexuálně a postava vyznívá jako nezletilá. Udělejte postavy nezpochybnitelně dospělými a odešlete znovu; neúčtuje se.
401auth, invalid_key, key_revoked, key_expiredOpravte nebo nahraďte klíč.
402no_creditZůstatek je nulový. Doplňte kredit; požadavky se obnoví okamžitě.
402key_daily_capTento klíč dosáhl denního stropu, který jste nastavili. Zvyšte ho nebo počkejte do 00:00 UTC.
403content_policy + X-NoTrack-Content-Flag: child_safetyOdmítnuto a neúčtováno. Viz Zásady obsahu.
429rate_limit, concurrencyZpomalte a zkuste to znovu; respektujte obě hlavičky X-RateLimit-*.
502upstreamModel neodpověděl. Zkuste to znovu s odstupem; neúčtuje se.
503billing, safetyJedna z našich závislostí je nedostupná. Zkuste to znovu za pár sekund; neúčtuje se.

Fakturace

Předplacený kredit, účtovaný za token podle skutečné usage každé odpovědi: $0.25 za 1M vstupních tokenů, $1.00 za 1M výstupních tokenů. Vstup je vše, co odešlete (system prompt, historie, nová zpráva); výstup je to, co napíše model.

Persona — holý model nebo postava BestPrivateAIu

Každý klíč má styl, zvolený na stránce s klíči a kdykoli přepínatelný:

Požadavek může přepsat nastavení klíče, buď polem, nebo přípisem k názvu modelu (pro klienty, kteří umí nastavit jen název modelu):

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

Názvy person: notrack (jednoduchá postava), concise, detailed, creative (stejné varianty, jaké nabízí chat), bare. Hlavička odpovědi X-NoTrack-Persona říká, která se použila.

Zásady obsahu

Nepřidáváme žádný system prompt a nespouštíme žádný filtr témat. Fikce pro dospělé, temná témata, silný jazyk, násilí ve fikci — model odpovídá tak, jak je napsáno. Jedno pravidlo je vynuceno v kódu a nelze ho vypnout: cokoliv sexuálního s účastí nezletilého se odmítá.

Opakované 403 na klíči vedou k uzavření klíče a poté účtu. Celý text je v Zásadách přijatelného použití.

Soukromí

Prompty a completions se nezapisují na disk — ani branou, ani servery modelu. U každého požadavku uchováváme id požadavku, id klíče, počty tokenů a cenu, protože to je vyúčtování. Bezpečnostní odmítnutí se zaznamenávají podle kategorie, bez textu. Žádný poskytovatel modelu třetí strany nikdy neuvidí váš provoz: model běží na hardwaru, který si pronajímáme a řídíme sami.

Klienti a SDK

Web BestPrivateAI a aplikace BestPrivateAI jsou náš vlastní chat — nemají pole pro API klíč a nikdy nebudou. Klíč je určen pro jiné programy: vložte ho do jednoho z klientů níže, nebo do vlastního kódu.

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 zapnutý. Velikost kontextu udržujte na 64,000 tokenech nebo níže.

Chatbox

Settings → Model Provider → Add → Add Custom Provider, režim OpenAI API Compatible → vložte základní URL a klíč, poté přidejte notrack-uncensored jako model.

NextChat

Settings → zapněte Custom Endpoint (kompatibilní s OpenAI) → základní URL a klíč, poté zapište název modelu do pole modelu.

Cherry Studio

Settings → Model Providers → Add Provider → zapište OpenAI → základní URL a klíč, poté "Add model" → notrack-uncensored.

LobeChat

Settings → AI Service Provider → OpenAI → zapněte custom API endpoint, vložte základní URL a klíč, a přidejte model do seznamu modelů.

Cokoliv jiného

LangChain, LlamaIndex, Open WebUI, Continue, proxy nastavení JanitorAI, curl — jakýkoli klient s možností "OpenAI-compatible" nebo "custom base URL".

Znění menu výše se mezi verzemi aplikací liší — pokud popisek přesně nesedí, hledejte nastavení, které zmiňuje "custom", "OpenAI-compatible" nebo "base URL".

Když se klient nepřipojí

Klíče

Dotazy nebo id požadavku k prošetření: podpora · bestprivateai.com/support.