NoTrack API — referenca

Jedan endpoint kompatibilan sa OpenAI, jedan model, jedan ključ. Ako vaš kod već komunicira sa /v1/chat/completions, promenite osnovni URL i ključ i komuniciraće sa nama.

Osnovni URL i autentikacija

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

Ključevi se kreiraju na stranici ključeva. Ključ se prikazuje samo jednom, prilikom kreiranja; čuvamo njegov heš i poslednjih šest karaktera. Šaljite ga samo preko HTTPS i samo u zaglavlju Authorization — nikada u URL-u.

Sve je u JSON formatu (Content-Type: application/json). Odgovori koriste OpenAI šemu, tako da zvanični openai SDK-ovi i svaki klijent kompatibilan sa OpenAI radi bez izmena.

Modeli

GET /v1/models

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

Postoji jedan model, notrack-uncensored: naš sopstveni model, koji radi na našim sopstvenim GPU serverima. Sve što prosledite kao model se usmerava ka njemu; koristite javni id da se vaši logovi poklapaju sa našim.

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
}

Odgovor — standardni oblik, sa stvarnim brojem tokena u usage (to je osnova za naplatu):

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

Vaš sistemski prompt upravlja razgovorom. Na početak dodajemo tačno jednu liniju — identitet modela (da je to notrack-uncensored, koji je napravio NoTrack) — i ništa drugo: nikakva pravila, nikakav filter tema. Vaša sistemska poruka je nastavlja i odlučuje o personi, stilu i svemu ostalom. Jedini izuzetak je u Politika sadržaja.

Striming

Postavite "stream": true i čitajte server-sent events, potpuno kao kod OpenAI. Poslednji deo nosi usage (uvek ga uključujemo, bez obzira da li tražite stream_options), pa zatim 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

PoljeNapomene
messagesObavezno. Uloge system, user, assistant. Za sada samo tekst — delovi sa slikom se odbijaju.
modelKoristite notrack-uncensored.
streamtrue za SSE. stream_options.include_usage je uvek uključeno.
max_tokensOgraničenje za completion. Prompt + completion moraju stati u prozor od 100,000 tokena.
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nProsleđuje se modelu kao u OpenAI. Ako ne pošaljete temperature, koristimo 0.85, isto kao naš chat. n > 1 multiplicira cenu output-a.
tools, tool_choicePodržano: auto, none, required, ili imenovana funkcija. Odgovor nosi tool_calls i finish_reason: "tool_calls"; rezultat pošaljite nazad kao poruku role: "tool". Kada su prisutni alati, striming odgovor stiže kao jedan deo po pozivu, a ne token po token.
response_format{"type": "json_object"} je podržano (u promptu navedite kakav JSON želite). json_schema i zastareo functions nisu.

Ograničenja i zaglavlja odgovora

OgraničenjeVrednostKada se premaši
Istovremeni zahtevi po ključu8429 concurrency
Zahtevi po minuti po ključu300429 rate_limit
Kontekstni prozor (prompt + completion)100,000 tokena400 context_limit — smanjite istoriju i pokušajte ponovo
Dnevna potrošnja po ključu (opcionalno)podešava se od vas na stranici ključeva402 key_daily_cap do 00:00 UTC

Probni ključevi (pre prve uplate): istovremenih zahteva — 2, zahteva u minuti — 60. Posle prve uplate ključ dobija pune limite: 8 i 300.

Svaki uspešan odgovor nosi:

ZaglavljeZnačenje
X-Request-IdNavedite ga kada pišete podršci; to je jedino što čuvamo o zahtevu.
X-NoTrack-Balance-USDVaš kredit pre je ovaj zahtev naplaćen, u dolarima.
X-RateLimit-Limit-RequestsBroj zahteva po minuti dozvoljen za ovaj ključ.
X-RateLimit-Limit-ConcurrencyBroj paralelnih zahteva dozvoljen za ovaj ključ.
X-NoTrack-Content-FlagSamo pri odbijanju sadržaja: minor_in_sexual_context ili child_safety.

Greške

Greške su u JSON formatu sa stabilnim type; message je za ljude i može se menjati.

{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at notrack.ai/api-keys" } }
HTTPtypeŠta uraditi
400bodyNevažeći JSON ili nedostaje messages.
400context_limitPrompt je previše dugačak za prozor od 100,000 tokena. Uklonite starije poteze.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextScena se čita kao seksualna, a lik se čita kao maloletan. Učinite likove jednoznačno punoletnim i ponovo pošaljite; se ne naplaćuje.
401auth, invalid_key, key_revoked, key_expiredPopravite ili zamenite ključ.
402no_creditStanje je nula. Dopunite; zahtevi se odmah nastavljaju.
402key_daily_capOvaj ključ je dostigao dnevni limit koji ste postavili. Povećajte ga ili sačekajte do 00:00 UTC.
403content_policy + X-NoTrack-Content-Flag: child_safetyOdbijeno i nenaplaćeno. Pogledajte Politika sadržaja.
429rate_limit, concurrencySmanjite tempo i pokušajte ponovo; poštujte oba zaglavlja X-RateLimit-*.
502upstreamModel nije odgovorio. Pokušajte ponovo sa odlaganjem; se ne naplaćuje.
503billing, safetyJedna od naših zavisnosti ne radi. Pokušajte ponovo za nekoliko sekundi; se ne naplaćuje.

Naplata

Unapred plaćen kredit, naplaćuje se po tokenu na osnovu stvarnog usage svakog odgovora: $0.15 po 1M ulaznih tokena, $0.50 po 1M izlaznih tokena. Input je sve što pošaljete (sistemski prompt, istorija, nova poruka); output je ono što napiše model.

Persona — čist model ili NoTrack karakter

Svaki ključ ima stil, koji se bira na stranici ključeva i može se promeniti u bilo kom trenutku:

Zahtev može prepisati podešavanje ključa, bilo poljem ili sufiksom naziva modela (za klijente koji mogu podesiti samo naziv modela):

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

Nazivi persona: notrack (jednostavan karakter), concise, detailed, creative (iste varijante koje nudi chat), bare. Zaglavlje odgovora X-NoTrack-Persona govori koja je primenjena.

Politika sadržaja

Ne dodajemo nikakav sistemski prompt i ne pokrećemo nikakav filter tema. Fikcija za odrasle, mračne teme, snažan jezik, nasilje u fikciji — model odgovara tačno kako je napisano. Jedno pravilo je sprovedeno u kodu i ne može se isključiti: sve seksualno sa učešćem maloletnika se odbija.

Ponovljeni 403 na ključu vode do zatvaranja ključa, a zatim naloga. Kompletan tekst je u Politici prihvatljivog korišćenja.

Privatnost

Promptovi i odgovori se ne upisuju na disk — ni od strane gateway-a, ni od strane servera modela. Ono što čuvamo po zahtevu je id zahteva, id ključa, broj tokena i cena, jer to čini račun. Bezbednosna odbijanja se zapisuju po kategoriji, bez teksta. Nijedan treći dobavljač modela nikada ne vidi vaš saobraćaj: model radi na našim sopstvenim GPU serverima.

Klijenti i SDK-ovi

NoTrack sajt i NoTrack aplikacija su naš sopstveni chat — nemaju polje za API ključ i nikada neće imati. Ključ je namenjen drugih programima: nalepite ga u jedan od klijenata ispod, ili u sopstveni kod.

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. Striming uključen. Održavajte veličinu konteksta na ili ispod 100,000 tokena.

Chatbox

Settings → Model Provider → Add → Add Custom Provider, režim OpenAI API Compatible → nalepite osnovni URL i ključ, zatim dodajte notrack-uncensored kao model.

NextChat

Settings → uključite Custom Endpoint (kompatibilno sa OpenAI) → osnovni URL i ključ, zatim upišite naziv modela u polje za model.

Cherry Studio

Settings → Model Providers → Add Provider → upišite OpenAI → osnovni URL i ključ, zatim „Add model“ → notrack-uncensored.

LobeChat

Settings → AI Service Provider → OpenAI → uključite custom API endpoint, nalepite osnovni URL i ključ, i dodajte model na listu modela.

Nešto drugo

LangChain, LlamaIndex, Open WebUI, Continue, podešavanja proxy-ja za JanitorAI, curl — svaki klijent sa opcijom „OpenAI-compatible“ ili „custom base URL“.

Formulacije menija iznad se razlikuju između verzija aplikacije — ako se oznaka ne poklapa tačno, potražite podešavanje koje pominje „custom“, „OpenAI-compatible“ ili „base URL“.

Ako se klijent ne povezuje

Ključevi

Pitanja ili id zahteva za pregled: podrška · [email protected].