NoTrack API — referencia

Egy OpenAI-kompatibilis végpont, egy modell, egy kulcs. Ha a kódod már /v1/chat/completions-hoz beszél, cseréld ki az alap URL-t és a kulcsot, és velünk fog beszélni.

Alap URL és hitelesítés

Base URL:  https://api.notrack.ai/v1
Header:    Authorization: Bearer sk-notrack-…

A kulcsok itt jönnek létre: a kulcsok oldal. Egy kulcs csak egyszer jelenik meg, a létrehozásakor; mi egy hash-t és az utolsó hat karakterét tároljuk. Csak HTTPS-en és csak a Authorization fejben küldd el — soha ne URL-ben.

Minden JSON (Content-Type: application/json). A válaszok az OpenAI sémáját használják, így a hivatalos openai SDK-k és minden OpenAI-kompatibilis kliens változatlanul működik.

Modellek

GET /v1/models

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

Egyetlen modell van, notrack-uncensored: saját modellünk, saját GPU-szervereinken futtatva. Amit model-ként megadsz, ahhoz irányítjuk; használd a nyilvános id-t, hogy a naplóid egyezzenek a mieinkkel.

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
}

Válasz — a szokásos forma, valós token-számokkal a usage-ban (ez alapján számlázunk):

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

A system promptod irányítja a beszélgetést. Pontosan egy sort illesztünk elé — a modell identitását (hogy ez notrack-uncensored, a NoTrack készítette) — és semmi mást: nincs szabály, nincs témaszűrő. A system messaged ezt követi, és ez dönt a personáról, a stílusról és minden másról. Az egyetlen kivétel a Tartalompolitika-ban van.

Streaming

Állítsd be a "stream": true-t, és olvasd a server-sent eventeket, pont úgy, mint OpenAI-nál. Az utolsó darab hordozza a usage-t (mindig belefoglaljuk, kérted a stream_options-t vagy nem), majd a data: [DONE]-t.

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]

Paraméterek

MezőMegjegyzések
messagesKötelező. system, user, assistant szerepek. Jelenleg csak szöveg — a kép részek elutasításra kerülnek.
modelHasználd a notrack-uncensored-t.
streamtrue az SSE-hez. A stream_options.include_usage mindig be van kapcsolva.
max_tokensFelső korlát a completionre. A promptnak + a completionnek bele kell férnie a 100,000-tokenes ablakba.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nUgyanúgy átadva a modellnek, mint OpenAI-nál. Ha nem küldesz temperature-t, 0,85-öt használunk, mint a chatünkben. A n > 1 megsokszorozza a kimeneti költséget.
tools, tool_choiceTámogatott: auto, none, required, vagy egy megnevezett függvény. A válasz hordozza a tool_calls-t és az finish_reason: "tool_calls"-t; az eredményt role: "tool" üzenetként küldd vissza. Ha tools van jelen, a streamelt válasz híváskénti egy darabban érkezik, nem tokenenként.
response_formatA {"type": "json_object"} támogatott (mondd meg a promptban, milyen JSON-t szeretnél). A json_schema és a régi functions mező nem támogatott.

Limitek és válaszfejek

LimitÉrtékTúllépés esetén
Egyidejű kérések kulcsonként8429 concurrency
Kérések percenként kulcsonként300429 rate_limit
Kontextusablak (prompt + completion)100,000 token400 context_limit — csökkentsd az előzményt, és próbáld újra
Napi költés kulcsonként (opcionális)te állítod be a kulcsok oldalon402 key_daily_cap 00:00 UTC-ig

Próbakulcsok (az első feltöltés előtt): egyidejű kérések — 2, kérések percenként — 60. Az első feltöltés után a kulcs megkapja a teljes korlátokat: 8 és 300.

Minden sikeres válasz hordozza:

FejJelentés
X-Request-IdIdézd, ha a supportnak írsz; ez az egyetlen, amit egy kérésről megtartunk.
X-NoTrack-Balance-USDAz egyenleged a kérés megterhelése előtt, dollárban.
X-RateLimit-Limit-RequestsPercenként engedélyezett kérések ennél a kulcsnál.
X-RateLimit-Limit-ConcurrencyEgyidejűleg engedélyezett kérések ennél a kulcsnál.
X-NoTrack-Content-FlagCsak tartalmi elutasításnál: minor_in_sexual_context vagy child_safety.

Hibák

A hibák JSON formátumúak, stabil type-val; a message embereknek szól, és változhat.

{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at notrack.ai/api-keys" } }
HTTPtypeMit tegyél
400bodyÉrvénytelen JSON vagy nincs messages.
400context_limitA prompt túl hosszú a 100,000-tokenes ablakhoz. Dobd el a régebbi köröket.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextA jelenet szexuálisnak, egy karakter kiskorúnak olvasható. Tedd egyértelműen felnőtté a karaktereket, és küldd újra; nincs számlázva.
401auth, invalid_key, key_revoked, key_expiredJavítsd vagy cseréld a kulcsot.
402no_creditAz egyenleg nulla. Egyenlegfeltöltés; a kérések azonnal folytatódnak.
402key_daily_capEz a kulcs elérte az általad beállított napi plafont. Emeld fel, vagy várj 00:00 UTC-ig.
403content_policy + X-NoTrack-Content-Flag: child_safetyElutasítva, nincs számlázva. Lásd: Tartalompolitika.
429rate_limit, concurrencyLassíts, és próbáld újra; tartsd tiszteletben a két X-RateLimit-* fejet.
502upstreamA modell nem válaszolt. Próbáld újra backoffal; nincs számlázva.
503billing, safetyEgy függőségünk nem elérhető. Próbáld újra néhány másodperc múlva; nincs számlázva.

Számlázás

Előre fizetett egyenleg, tokenenként számlázva minden válasz valós usage-ja alapján: $0.15 / 1M bemeneti token, $0.50 / 1M kimeneti token. A bemenet minden, amit elküldesz (system prompt, előzmény, az új üzenet); a kimenet az, amit a modell ír.

Persona — csupasz modell vagy a NoTrack karaktere

Minden kulcsnak van egy stílusa, amelyet a kulcsok oldalon választhatsz, és bármikor átválthatsz:

Egy kérés felülírhatja a kulcs beállítását, egy mezővel vagy egy modell-utótaggal (olyan klienseknek, amelyek csak modellnevet tudnak beállítani):

{ "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 nevek: notrack (az egyszerű karakter), concise, detailed, creative (ugyanazok a variánsok, amiket a chat kínál), bare. A válaszfej X-NoTrack-Persona megmondja, melyik érvényesült.

Tartalompolitika

Nem adunk hozzá system promptot, és nem futtatunk témaszűrőt. Felnőtt fikció, sötét témák, erős nyelvezet, erőszak a fikcióban — a modell úgy válaszol, ahogy megírtad. Egy szabály be van építve a kódba, és nem kapcsolható ki: minden, ami szexuális és kiskorút érint, elutasításra kerül.

Egy kulcson ismétlődő 403 a kulcs, majd a fiók lezárásához vezet. A teljes szöveg a elfogadható használati szabályzatban-ban található.

Adatvédelem

A promptokat és a completionöket nem írjuk lemezre — sem a gateway, sem a modell-szerverek. Kérésenként a kérés id-jét, a kulcs id-jét, a token-számokat és az árat tartjuk meg, mert ez alkotja a számlát. A biztonsági elutasításokat kategóriánként naplózzuk, szöveg nélkül. Semmilyen harmadik féltől származó modell-szolgáltató nem látja soha a forgalmadat: a modell a saját GPU-szervereinken fut.

Kliensek és SDK-k

A NoTrack weboldal és a NoTrack app a saját chatünk — nincs bennük mező API-kulcshoz, és nem is lesz. Egy kulcs külső programokhoz van: illeszd be az alábbi kliensek egyikébe, vagy a saját kódodba.

Python

from openai import OpenAI
client = OpenAI(base_url="https://api.notrack.ai/v1", api_key="sk-notrack-…")
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.notrack.ai/v1", apiKey: process.env.NOTRACK_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.notrack.ai/v1 → Custom API Key → Connect → Model notrack-uncensored. Streaming bekapcsolva. Tartsd a kontextusméretet 100,000 tokenen vagy alatta.

Chatbox

Settings → Model Provider → Add → Add Custom Provider, OpenAI API Compatible mód → illeszd be az alap URL-t és a kulcsot, majd add hozzá a notrack-uncensored-t modellként.

NextChat

Settings → kapcsold be a Custom Endpoint-t (OpenAI-kompatibilis) → alap URL és kulcs, majd írd be a modell nevét a modell mezőbe.

Cherry Studio

Settings → Model Providers → Add Provider → írd be: OpenAI → alap URL és kulcs, majd „Add model" → notrack-uncensored.

LobeChat

Settings → AI Service Provider → OpenAI → engedélyezd a custom API endpoint-t, illeszd be az alap URL-t és a kulcsot, majd add hozzá a modellt a modelllistához.

Bármi más

LangChain, LlamaIndex, Open WebUI, Continue, a JanitorAI proxy-beállításai, curl — bármely kliens, amelyben van „OpenAI-kompatibilis" vagy „egyéni alap URL" opció.

A fenti menüszövegek app-verziónként változnak — ha egy címke nem egyezik pontosan, keresd azt a beállítást, amely „custom", „OpenAI-compatible" vagy „base URL" szót tartalmaz.

Ha egy kliens nem csatlakozik

Kulcsok

Kérdés vagy megnézendő kérés-id: support · [email protected].