BestPrivateAI API — viiteopas

Yksi OpenAI-yhteensopiva rajapinta, yksi malli, yksi avain. Jos koodisi puhuu jo /v1/chat/completions:lle, vaihda perus-URL ja avain, ja se puhuu meille.

Perus-URL ja tunnistautuminen

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

Avaimet luodaan avainten sivu:ssa. Avain näytetään vain kerran, luontihetkellä; me tallennamme sen hash-arvon ja viimeiset kuusi merkkiä. Lähetä se vain HTTPS:n yli ja vain Authorization-otsikossa — ei koskaan URL-osoitteessa.

Kaikki on JSON-muodossa (Content-Type: application/json). Vastaukset käyttävät OpenAI:n skeemaa, niin että viralliset openai SDK:t ja mikä tahansa OpenAI-yhteensopiva asiakasohjelma toimivat muuttamattomina.

Mallit

GET /v1/models

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

Käytössä on yksi malli, notrack-uncensored: oma virityksemme, ajettuna omalla laitteistollamme. Mitä tahansa lähetät model:na, ohjataan siihen; käytä julkista id:tä, jotta lokisi täsmäävät meidän lokeihimme.

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
}

Vastaus — vakiomuoto, todellisilla token-määrillä kohdassa usage (tästä sinua laskutetaan):

{
  "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 promptisi hallitsee keskustelua. Lisäämme alkuun täsmälleen yhden rivin — mallin identiteetin (että se on notrack-uncensored, BestPrivateAIin tekemä) — ja ei mitään muuta: ei sääntöjä, ei aihesuodatinta. System-viestisi seuraa sitä ja päättää persoonasta, tyylistä ja kaikesta muusta. Ainoa poikkeus on kohdassa Sisältöpolitiikka.

Streaming

Aseta "stream": true ja lue server-sent-eventtejä, täsmälleen kuten OpenAI:ssa. Viimeinen palanen kantaa usage:n (sisällytämme sen aina, pyydätpä stream_options:ta tai et), sitten data: [DONE]:n.

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]

Parametrit

KenttäHuomiot
messagesPakollinen. Roolit system, user, assistant. Toistaiseksi vain tekstiä — kuvaosat hylätään.
modelKäytä notrack-uncensored.
streamtrue SSE:tä varten. stream_options.include_usage on aina päällä.
max_tokensYläraja completionille. Promptin + completionin on mahduttava 64,000 tokenin ikkunaan.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nVälitetään mallille kuten OpenAI:ssa. Jos et lähetä temperature:ta, käytämme arvoa 0,85, samaa kuin chatissamme. n > 1 kertoo tuotoskustannuksen.
tools, tool_choiceTuettu: auto, none, required, tai nimetty funktio. Vastaus kantaa tool_calls:n ja finish_reason: "tool_calls":n; lähetä tulos takaisin role: "tool"-viestinä. Kun tools on läsnä, streamattu vastaus saapuu yhtenä palana kutsua kohti, ei token kerrallaan.
response_format{"type": "json_object"} on tuettu (kerro promptissa, minkälaisen JSON:n haluat). json_schema ja vanha functions-kenttä eivät ole.

Rajoitukset ja vastausotsikot

RajoitusArvoKun ylittyy
Samanaikaiset pyynnöt per avain8429 concurrency
Pyynnöt minuutissa per avain300429 rate_limit
Kontekstiikkuna (prompti + completion)64,000 tokenia400 context_limit — lyhennä historiaa ja yritä uudelleen
Päivittäinen kulutus per avain (valinnainen)asetat itse avainten sivulla402 key_daily_cap klo 00:00 UTC asti

Joka onnistunut vastaus kantaa:

OtsikkoMerkitys
X-Request-IdMainitse se ottaessasi yhteyttä tukeen; se on ainoa, jonka säilytämme pyynnöstä.
X-NoTrack-Balance-USDSaldosi ennen tämän pyynnön veloitusta, dollareissa.
X-RateLimit-Limit-RequestsTälle avaimelle sallitut pyynnöt minuutissa.
X-RateLimit-Limit-ConcurrencyTälle avaimelle sallitut rinnakkaiset pyynnöt.
X-NoTrack-Content-FlagVain sisällön hylkäyksessä: minor_in_sexual_context tai child_safety.

Virheet

Virheet ovat JSON-muodossa vakaalla type:lla; message on ihmisiä varten ja voi muuttua.

{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at bestprivateai.com/api-keys" } }
HTTPtypeMitä tehdä
400bodyVirheellinen JSON tai ei messages:ta.
400context_limitPrompti on liian pitkä 64,000 tokenin ikkunaan. Poista vanhempia vuoroja.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextKohtaus luetaan seksuaaliseksi ja hahmo luetaan alaikäiseksi. Tee hahmoista kiistattoman aikuisia ja lähetä uudelleen; ei laskuteta.
401auth, invalid_key, key_revoked, key_expiredKorjaa tai vaihda avain.
402no_creditSaldo on nolla. Lataa saldoa; pyynnöt jatkuvat välittömästi.
402key_daily_capTämä avain saavutti asettamasi päivittäisen katon. Nosta sitä tai odota klo 00:00 UTC asti.
403content_policy + X-NoTrack-Content-Flag: child_safetyHylätty, ei laskuteta. Katso Sisältöpolitiikka.
429rate_limit, concurrencyHidasta ja yritä uudelleen; kunnioita molempia X-RateLimit-*-otsikoita.
502upstreamMalli ei vastannut. Yritä uudelleen backoffilla; ei laskuteta.
503billing, safetyYksi riippuvuuksistamme on poikki. Yritä uudelleen muutaman sekunnin kuluttua; ei laskuteta.

Laskutus

Ennakkoon maksettu saldo, laskutetaan tokenia kohti joka vastauksen todellisen usage:n perusteella: $0.25 / 1M syötetokenia, $1.00 / 1M tuotostokenia. Syöte on kaikki, mitä lähetät (system prompt, historia, uusi viesti); tuotos on se, mitä malli kirjoittaa.

Persoona — paljas malli vai BestPrivateAIin hahmo

Joka avaimella on tyyli, valittu avainten sivulla ja vaihdettavissa milloin tahansa:

Pyyntö voi ohittaa avaimen asetuksen joko kentällä tai mallin liitteellä (asiakasohjelmille, jotka voivat asettaa vain mallin nimen):

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

Persoonanimet: notrack (yksinkertainen hahmo), concise, detailed, creative (samat variantit, joita chat tarjoaa), bare. Vastausotsikko X-NoTrack-Persona kertoo, mikä niistä sovellettiin.

Sisältöpolitiikka

Emme lisää system promptia eikä käytä aihesuodatinta. Aikuisfiktio, synkät teemat, karkea kieli, väkivalta fiktiossa — malli vastaa niin kuin se on kirjoitettu. Yksi sääntö on koodissa pakotettu ja sitä ei voi kytkeä pois: kaikki alaikäiseen liittyvä seksuaalinen sisältö hylätään.

Toistuvat 403 avaimella johtavat avaimen ja sitten tilin sulkemiseen. Koko teksti löytyy hyväksyttävän käytön käytännöstä:sta.

Tietosuoja

Prompteja ja completioneja ei kirjoiteta levylle — ei gatewaylla, ei mallipalvelimilla. Pyynnöstä säilytämme pyynnön id:n, avaimen id:n, token-määrät ja hinnan, koska se muodostaa laskun. Turvallisuushylkäykset kirjataan kategorioittain, ilman tekstiä. Mikään kolmannen osapuolen mallintarjoaja ei koskaan näe liikennettäsi: malli toimii laitteistolla, jonka vuokraamme ja hallitsemme itse.

Asiakasohjelmat ja SDK:t

BestPrivateAIin verkkosivusto ja BestPrivateAIin sovellus ovat oma chattimme — niissä ei ole kenttää API-avaimelle, eikä koskaan tule olemaan. Avain on tarkoitettu ulkopuolisille ohjelmille: liitä se johonkin alla olevista asiakasohjelmista, tai omaan koodiisi.

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äällä. Pidä kontekstin koko 64,000 tokenissa tai alle.

Chatbox

Settings → Model Provider → Add → Add Custom Provider, tila OpenAI API Compatible → liitä perus-URL ja avain, lisää sitten notrack-uncensored malliksi.

NextChat

Settings → kytke päälle Custom Endpoint (OpenAI-yhteensopiva) → perus-URL ja avain, kirjoita sitten mallin nimi malli-kenttään.

Cherry Studio

Settings → Model Providers → Add Provider → kirjoita OpenAI → perus-URL ja avain, sitten "Add model" → notrack-uncensored.

LobeChat

Settings → AI Service Provider → OpenAI → ota käyttöön custom API endpoint, liitä perus-URL ja avain, ja lisää malli mallilistaan.

Kaikki muu

LangChain, LlamaIndex, Open WebUI, Continue, JanitorAI:n proxy-asetukset, curl — mikä tahansa asiakasohjelma, jossa on "OpenAI-compatible"- tai "custom base URL" -vaihtoehto.

Yllä olevat valikkotekstit vaihtelevat sovellusversioittain — jos otsikko ei täsmää tarkalleen, etsi asetus, joka mainitsee "custom", "OpenAI-compatible" tai "base URL".

Jos asiakasohjelma ei muodosta yhteyttä

Avaimet

Kysymyksiä tai tarkistettava pyynnön id: tuki · bestprivateai.com/support.