BestPrivateAI API — referanse

Ett OpenAI-kompatibelt endepunkt, én modell, én nøkkel. Hvis koden din allerede snakker med /v1/chat/completions, endrer du base-URL-en og nøkkelen, og den snakker med oss.

Base-URL og autentisering

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

Nøkler opprettes på nøkkelsiden. En nøkkel vises kun én gang, ved opprettelse; vi lagrer en hash og de siste seks tegnene. Send den kun over HTTPS og kun i Authorization-headeren — aldri i en URL.

Alt er JSON (Content-Type: application/json). Responser bruker OpenAI-skjemaet, så de offisielle openai-SDK-ene og alle OpenAI-kompatible klienter fungerer uten endringer.

Modeller

GET /v1/models

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

Det finnes én modell, notrack-uncensored: vår egen companion-tune, kjørt på vår egen maskinvare. Uansett hva du sender som model, blir det rutet til den; bruk den offentlige id-en slik at loggene dine matcher våre.

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
}

Respons — standardformen, med faktiske token-tall i usage (det er dette du faktureres for):

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

Systempromptet ditt styrer samtalen. Vi setter inn nøyaktig én linje først — modellens identitet (at den er notrack-uncensored, laget av BestPrivateAI) — og ingenting annet: ingen regler, ingen temafilter. Systemmeldingen din følger etter og bestemmer persona, stil og alt annet. Det eneste unntaket er i Innholdspolicy.

Streaming

Sett "stream": true og les server-sent events, nøyaktig som med OpenAI. Den siste chunken inneholder usage (vi tar alltid med den, uansett om du ber om stream_options eller ikke), deretter 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]

Parametere

FeltMerknader
messagesObligatorisk. Roller system, user, assistant. Kun tekst foreløpig — bildedeler avvises.
modelBruk notrack-uncensored.
streamtrue for SSE. stream_options.include_usage er alltid på.
max_tokensGrense for completion. Prompt + completion må passe innenfor vinduet på 64,000 tokens.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nSendes videre til modellen som i OpenAI. Sender du ingen temperature, bruker vi 0,85, samme som chatten vår. n > 1 multipliserer output-kostnaden.
tools, tool_choiceStøttet: auto, none, required, eller en navngitt funksjon. Svaret inneholder tool_calls og finish_reason: "tool_calls"; send resultatet tilbake som en role: "tool"-melding. Med tools til stede kommer et strømmet svar som én chunk per kall i stedet for token for token.
response_format{"type": "json_object"} er støttet (si i prompten hvilken JSON du vil ha). json_schema og det utgåtte functions-feltet er ikke det.

Grenser og response-headere

GrenseVerdiVed overskridelse
Samtidige forespørsler per nøkkel8429 concurrency
Forespørsler per minutt per nøkkel300429 rate_limit
Kontekstvindu (prompt + completion)64,000 tokens400 context_limit — kort ned historikken og prøv igjen
Daglig forbruk per nøkkel (valgfritt)angitt av deg på nøkkelsiden402 key_daily_cap til 00:00 UTC

Hver vellykkede respons inneholder:

HeaderBetydning
X-Request-IdReferer til denne når du skriver til support; det er det eneste vi lagrer om en forespørsel.
X-NoTrack-Balance-USDSaldoen din før denne forespørselen ble belastet, i dollar.
X-RateLimit-Limit-RequestsForespørsler per minutt tillatt for denne nøkkelen.
X-RateLimit-Limit-ConcurrencyParallelle forespørsler tillatt for denne nøkkelen.
X-NoTrack-Content-FlagKun ved et innholdsavslag: minor_in_sexual_context eller child_safety.

Feil

Feil er JSON med en stabil type; message er for mennesker og kan endres.

{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at bestprivateai.com/api-keys" } }
HTTPtypeHva du skal gjøre
400bodyUgyldig JSON eller ingen messages.
400context_limitPrompt for lang for vinduet på 64,000 tokens. Fjern eldre runder.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextScenen leses som seksuell og en karakter leses som mindreårig. Gjør karakterene utvetydig voksne og send på nytt; ikke fakturert.
401auth, invalid_key, key_revoked, key_expiredFiks eller erstatt nøkkelen.
402no_creditSaldo er null. Fyll på; forespørsler gjenopptas umiddelbart.
402key_daily_capDenne nøkkelen har nådd det daglige taket du satte. Øk det eller vent til 00:00 UTC.
403content_policy + X-NoTrack-Content-Flag: child_safetyAvslått og ikke fakturert. Se Innholdspolicy.
429rate_limit, concurrencyTrapp ned og prøv igjen; respekter de to X-RateLimit-*-headerne.
502upstreamModellen svarte ikke. Prøv igjen med backoff; ikke fakturert.
503billing, safetyEn av våre avhengigheter er nede. Prøv igjen om noen sekunder; ikke fakturert.

Fakturering

Forhåndsbetalt saldo, belastet per token basert på faktisk usage for hver respons: $0.25 per 1M input-tokens, $1.00 per 1M output-tokens. Input er alt du sender (systemprompt, historikk, den nye meldingen); output er det modellen skriver.

Persona — ren modell eller BestPrivateAIs karakter

Hver nøkkel har en stil, valgt på nøkkelsiden og kan endres når som helst:

En forespørsel kan overstyre nøkkelens innstilling, enten med et felt eller med et modellsuffiks (for klienter som bare kan angi et modellnavn):

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

Persona-navn: notrack (den vanlige karakteren), concise, detailed, creative (de samme variantene som chatten tilbyr), bare. Response-headeren X-NoTrack-Persona viser hvilken som ble brukt.

Innholdspolicy

Vi legger ikke til noe systemprompt og kjører ingen temafilter. Voksenfiksjon, mørke temaer, sterkt språk, vold i fiksjon — modellen svarer som skrevet. Én regel er kodefestet og kan ikke slås av: alt seksuelt som involverer en mindreårig, avslås.

Gjentatte 403-er på en nøkkel fører til at nøkkelen, og deretter kontoen, stenges. Hele teksten finnes i Acceptable Use policy.

Personvern

Prompter og completions skrives ikke til disk — ikke av gatewayen, ikke av modell-serverne. Det vi lagrer per forespørsel er forespørsels-id, nøkkel-id, token-tall og pris, fordi det er det fakturaen bygger på. Sikkerhetsavslag logges etter kategori, uten teksten. Ingen tredjeparts modellleverandør ser noensinne trafikken din: modellen kjører på maskinvare vi leier og kontrollerer.

Klienter og SDK-er

BestPrivateAI-nettsiden og BestPrivateAI-appen er vår egen chat — de har ikke noe felt for en API-nøkkel, og vil aldri få det. En nøkkel er for andre-programmer: lim den inn i en av klientene nedenfor, eller din egen kode.

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 på. Hold kontekststørrelsen på eller under 64,000 tokens.

Chatbox

Settings → Model Provider → Add → Add Custom Provider, modus OpenAI API Compatible → lim inn base-URL-en og nøkkelen, legg deretter til notrack-uncensored som modell.

NextChat

Settings → slå på Custom Endpoint (OpenAI-kompatibel) → base-URL og nøkkel, skriv deretter modellnavnet i modellfeltet.

Cherry Studio

Settings → Model Providers → Add Provider → skriv OpenAI → base-URL og nøkkel, deretter «Add model» → notrack-uncensored.

LobeChat

Settings → AI Service Provider → OpenAI → slå på custom API endpoint, lim inn base-URL-en og nøkkelen, og legg modellen til modellisten.

Noe annet

LangChain, LlamaIndex, Open WebUI, Continue, JanitorAI proxy-innstillinger, curl — enhver klient med et «OpenAI-kompatibel»- eller «egendefinert base-URL»-alternativ.

Menytekstene ovenfor endres mellom appversjoner — hvis en etikett ikke stemmer eksakt, se etter innstillingen som nevner «custom», «OpenAI-compatible» eller «base URL».

Hvis en klient ikke kobler til

Nøkler

Spørsmål eller en forespørsels-id å se på: support · bestprivateai.com/support.