API BestPrivateAI — αναφορά
Ένα endpoint συμβατό με OpenAI, ένα μοντέλο, ένα κλειδί. Αν ο κώδικας σας ήδη επικοινωνεί με /v1/chat/completions, αλλάξτε το βασικό URL και το κλειδί, και θα επικοινωνεί με εμάς.
Βασικό URL & πιστοποίηση
Base URL: https://api.bestprivateai.com/v1
Header: Authorization: Bearer sk-…
Τα κλειδιά δημιουργούνται στη σελίδα τη σελίδα κλειδιών. Ένα κλειδί εμφανίζεται μία φορά, κατά τη δημιουργία του· εμείς αποθηκεύουμε ένα hash και τους τελευταίους έξι χαρακτήρες του. Στείλτε το μόνο μέσω HTTPS και μόνο στην κεφαλίδα Authorization — ποτέ σε ένα URL.
Όλα είναι JSON (Content-Type: application/json). Οι απαντήσεις χρησιμοποιούν το σχήμα του OpenAI, οπότε τα επίσημα openai SDK και κάθε client συμβατός με OpenAI λειτουργούν χωρίς αλλαγές.
Μοντέλα
GET /v1/models
{ "object": "list",
"data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }
Υπάρχει ένα μόνο μοντέλο, το notrack-uncensored: η δική μας companion ρύθμιση, εξυπηρετούμενη στο δικό μας υλικό. Ό,τι στείλετε ως model δρομολογείται σε αυτό· χρησιμοποιήστε το δημόσιο id ώστε τα logs σας να ταιριάζουν με τα δικά μας.
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
}
Απάντηση — η τυπική μορφή, με πραγματικές μετρήσεις token στο usage (αυτό είναι η βάση της χρέωσης):
{
"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 prompt σας διέπει τη συζήτηση. Προσθέτουμε ακριβώς μία γραμμή στην αρχή — την ταυτότητα του μοντέλου (ότι είναι notrack-uncensored, κατασκευασμένο από τη BestPrivateAI) — και τίποτα άλλο: κανένας κανόνας, κανένα φίλτρο θέματος. Το δικό σας system message ακολουθεί και καθορίζει persona, ύφος και όλα τα υπόλοιπα. Η μόνη εξαίρεση βρίσκεται στο Πολιτική περιεχομένου.
Ροή δεδομένων
Ορίστε "stream": true και διαβάστε server-sent events, ακριβώς όπως στο OpenAI. Το τελευταίο chunk περιέχει usage (το συμπεριλαμβάνουμε πάντα, είτε ζητήσετε stream_options είτε όχι), και μετά 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]
Παράμετροι
| Πεδίο | Σημειώσεις |
|---|---|
messages | Απαιτείται. Ρόλοι system, user, assistant. Προς το παρόν μόνο κείμενο — τα τμήματα εικόνας απορρίπτονται. |
model | Χρησιμοποιήστε notrack-uncensored. |
stream | true για SSE. Το stream_options.include_usage είναι πάντα ενεργό. |
max_tokens | Ανώτατο όριο για το completion. Το prompt + completion πρέπει να χωρούν στο παράθυρο των 64,000 token. |
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n | Μεταβιβάζεται στο μοντέλο όπως στο OpenAI. Αν δεν στείλετε temperature, χρησιμοποιούμε 0,85, όπως στο chat μας. Το n > 1 πολλαπλασιάζει το κόστος εξόδου. |
tools, tool_choice | Υποστηρίζονται: auto, none, required, ή μια ονομαστική συνάρτηση. Η απάντηση περιέχει tool_calls και finish_reason: "tool_calls"· στείλτε πίσω το αποτέλεσμα ως μήνυμα role: "tool". Με εργαλεία παρόντα, μια ροϊκή απάντηση φτάνει ως ένα chunk ανά κλήση και όχι token προς token. |
response_format | Το {"type": "json_object"} υποστηρίζεται (πείτε στο prompt τι JSON θέλετε). Το json_schema και το παλαιό πεδίο functions δεν υποστηρίζονται. |
Όρια & κεφαλίδες απόκρισης
| Όριο | Τιμή | Σε υπέρβαση |
|---|---|---|
| Ταυτόχρονα αιτήματα ανά κλειδί | 8 | 429 concurrency |
| Αιτήματα ανά λεπτό ανά κλειδί | 300 | 429 rate_limit |
| Παράθυρο περιεχομένου (prompt + completion) | 64,000 token | 400 context_limit — περιορίστε το ιστορικό και δοκιμάστε ξανά |
| Ημερήσια δαπάνη ανά κλειδί (προαιρετικό) | ορίζεται από εσάς στη σελίδα κλειδιών | 402 key_daily_cap μέχρι τις 00:00 UTC |
Κάθε επιτυχής απάντηση περιέχει:
| Κεφαλίδα | Σημασία |
|---|---|
X-Request-Id | Αναφέρετέ το όταν γράφετε στην υποστήριξη· είναι το μόνο που κρατάμε για ένα αίτημα. |
X-NoTrack-Balance-USD | Η πίστωσή σας πριν χρεώθηκε αυτό το αίτημα, σε δολάρια. |
X-RateLimit-Limit-Requests | Αιτήματα ανά λεπτό που επιτρέπονται για αυτό το κλειδί. |
X-RateLimit-Limit-Concurrency | Παράλληλα αιτήματα που επιτρέπονται για αυτό το κλειδί. |
X-NoTrack-Content-Flag | Μόνο σε απόρριψη περιεχομένου: minor_in_sexual_context ή child_safety. |
Σφάλματα
Τα σφάλματα είναι JSON με σταθερό type· το message προορίζεται για ανθρώπους και μπορεί να αλλάξει.
{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at bestprivateai.com/api-keys" } }
| HTTP | type | Τι να κάνετε |
|---|---|---|
| 400 | body | Μη έγκυρο JSON ή απουσία messages. |
| 400 | context_limit | Το prompt είναι πολύ μεγάλο για το παράθυρο των 64,000 token. Αφαιρέστε παλαιότερους γύρους. |
| 400 | content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context | Η σκηνή διαβάζεται ως σεξουαλική και ένας χαρακτήρας διαβάζεται ως ανήλικος. Κάντε τους χαρακτήρες αναμφισβήτητα ενήλικες και στείλτε ξανά· δεν χρεώνεται. |
| 401 | auth, invalid_key, key_revoked, key_expired | Διορθώστε ή αντικαταστήστε το κλειδί. |
| 402 | no_credit | Το υπόλοιπο είναι μηδέν. Ανανεώστε την πίστωση· τα αιτήματα συνεχίζονται αμέσως. |
| 402 | key_daily_cap | Αυτό το κλειδί έφτασε το ημερήσιο ανώτατο όριο που ορίσατε. Αυξήστε το ή περιμένετε μέχρι τις 00:00 UTC. |
| 403 | content_policy + X-NoTrack-Content-Flag: child_safety | Απορρίφθηκε και δεν χρεώθηκε. Δείτε Πολιτική περιεχομένου. |
| 429 | rate_limit, concurrency | Χαμηλώστε τον ρυθμό και δοκιμάστε ξανά· σεβαστείτε τις δύο κεφαλίδες X-RateLimit-*. |
| 502 | upstream | Το μοντέλο δεν απάντησε. Δοκιμάστε ξανά με backoff· δεν χρεώνεται. |
| 503 | billing, safety | Μια εξάρτηση μας είναι εκτός λειτουργίας. Δοκιμάστε ξανά σε λίγα δευτερόλεπτα· δεν χρεώνεται. |
Χρεώσεις
Προπληρωμένη πίστωση, χρεωμένη ανά token με βάση το πραγματικό usage κάθε απάντησης: $0.25 ανά 1M token εισόδου, $1.00 ανά 1M token εξόδου. Είσοδος είναι όλα όσα στέλνετε (system prompt, ιστορικό, το νέο μήνυμα)· έξοδος είναι όσα γράφει το μοντέλο.
- Το πρώτο σας κλειδί έρχεται με $0.50 δωρεάν πίστωση, ισχύουσα για 7 ημέρες — αρκετό για ενσωμάτωση και δοκιμές. Απαιτείται επιβεβαιωμένο e-mail για ένα κλειδί (εκεί στέλνεται το "η πίστωση εξαντλείται"). Η πληρωμένη πίστωση δεν λήγει ποτέ.
- Η πίστωση δεν λήγει, δεν υπάρχει συνδρομή και τίποτα δεν ανανεώνεται μόνο του. Ανανεώστε με κάρτα ή σε USDT/USDC στη σελίδα κλειδιών.
- Δεν χρεώνεται τίποτα για απορριφθέντα αιτήματα (
4xx) ή αποτυχημένα (5xx). Ένα αίτημα χρεώνεται μία φορά, μετά την απάντηση, με βάση τοX-Request-Idτου. - Το υπόλοιπο εξαντλείται →
402 no_creditμέχρι να ανανεώσετε την πίστωση. Ορίστε ημερήσιο ανώτατο όριο σε κάθε κλειδί, ώστε ένα κλειδί που διέρρευσε να μην μπορεί να αδειάσει τον λογαριασμό. - Τα πιστωτικά μπορούν να επιστραφούν αν δεν χρησιμοποιηθούν εντός 24 ωρών από την αγορά ή να εφαρμοστούν αργότερα σε ένα πλάνο. Δείτε Πιστωτικά και επιστροφές χρημάτων.
Persona — γυμνό μοντέλο ή ο χαρακτήρας της BestPrivateAI
Κάθε κλειδί έχει ένα ύφος, επιλεγμένο στη σελίδα κλειδιών και εναλλάξιμο ανά πάσα στιγμή:
- Απλό (προεπιλογή) — το system prompt σας είναι ολόκληρο το prompt. Προσθέτουμε μία γραμμή ταυτότητας και τίποτα άλλο.
- Persona BestPrivateAI — ο χαρακτήρας και το ύφος της συνομιλίας στο bestprivateai.com: άμεσο, αφιλτράριστο, χωρίς ηθικολογία, απαντά στη γλώσσα του χρήστη. Ίδιο μοντέλο, ίδια τιμή, ίδια πολιτική περιεχομένου· αλλάζει μόνο το prompt πριν από τα μηνύματά σας. Το δικό σας system message εξακολουθεί να το ακολουθεί και μπορεί να το προσαρμόσει.
Ένα αίτημα μπορεί να παρακάμψει τη ρύθμιση του κλειδιού, είτε με ένα πεδίο, είτε με κατάληξη στο όνομα μοντέλου (για clients που μπορούν να ορίσουν μόνο ένα όνομα μοντέλου):
{ "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: notrack (ο απλός χαρακτήρας), concise, detailed, creative (οι ίδιες παραλλαγές που προσφέρει η συνομιλία), bare. Η κεφαλίδα απόκρισης X-NoTrack-Persona δηλώνει ποια εφαρμόστηκε.
Πολιτική περιεχομένου
Δεν προσθέτουμε system prompt και δεν λειτουργούμε φίλτρο θεμάτων. Μυθοπλασία για ενήλικες, σκοτεινά θέματα, έντονη γλώσσα, βία στη μυθοπλασία — το μοντέλο απαντά όπως είναι γραμμένο. Ένας κανόνας επιβάλλεται στον κώδικα και δεν μπορεί να απενεργοποιηθεί: οτιδήποτε σεξουαλικό που εμπλέκει ανήλικο απορρίπτεται.
403 child_safety— το αίτημα αναζητούσε σεξουαλικό περιεχόμενο που εμπλέκει παιδί. Απορρίφθηκε, δεν χρεώθηκε, καταγράφηκε ως συμβάν ασφαλείας.400 minor_in_sexual_context— η σκηνή είναι σεξουαλική και ένας χαρακτήρας διαβάζεται κάτω των 18 ετών (αναφερόμενη ηλικία, σχολικό περιβάλλον, πλαισίωση "κορίτσι/αγόρι"). Δεν είναι απαγόρευση: κάντε τις ηλικίες και την πλαισίωση αναμφισβήτητα ενήλικες και στείλτε ξανά.
Επαναλαμβανόμενα 403 σε ένα κλειδί οδηγούν στο κλείσιμο του κλειδιού, και στη συνέχεια του λογαριασμού. Το πλήρες κείμενο βρίσκεται στην Πολιτική Αποδεκτής Χρήσης.
Απόρρητο
Τα prompts και τα completions δεν γράφονται στον δίσκο — ούτε από το gateway, ούτε από τους servers του μοντέλου. Ό,τι κρατάμε ανά αίτημα είναι το id αιτήματος, το id κλειδιού, οι μετρήσεις token και η τιμή, επειδή αυτό είναι το λογαριασμό. Οι απορρίψεις ασφαλείας καταγράφονται ανά κατηγορία, χωρίς το κείμενο. Κανένας τρίτος πάροχος μοντέλου δεν βλέπει ποτέ την κίνησή σας: το μοντέλο λειτουργεί σε υλικό που εμείς ενοικιάζουμε και ελέγχουμε.
Clients & SDK
Ο ιστότοπος της BestPrivateAI και η εφαρμογή BestPrivateAI είναι η δική μας συνομιλία — δεν έχουν πεδίο για κλειδί API και δεν θα αποκτήσουν ποτέ. Ένα κλειδί προορίζεται για άλλα προγράμματα: επικολλήστε το σε ένα από τους clients παρακάτω, ή στον δικό σας κώδικα.
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 ενεργό. Διατηρήστε το μέγεθος περιεχομένου στα 64,000 token ή λιγότερο.
Chatbox
Settings → Model Provider → Add → Add Custom Provider, λειτουργία OpenAI API Compatible → επικολλήστε το βασικό URL και το κλειδί, μετά προσθέστε το notrack-uncensored ως μοντέλο.
NextChat
Settings → ενεργοποιήστε Custom Endpoint (συμβατό με OpenAI) → βασικό URL και κλειδί, μετά πληκτρολογήστε το όνομα μοντέλου στο πεδίο μοντέλου.
Cherry Studio
Settings → Model Providers → Add Provider → πληκτρολογήστε OpenAI → βασικό URL και κλειδί, μετά "Add model" → notrack-uncensored.
LobeChat
Settings → AI Service Provider → OpenAI → ενεργοποιήστε custom API endpoint, επικολλήστε το βασικό URL και το κλειδί, και προσθέστε το μοντέλο στη λίστα μοντέλων.
Οτιδήποτε άλλο
LangChain, LlamaIndex, Open WebUI, Continue, ρυθμίσεις proxy JanitorAI, curl — κάθε client με επιλογή "OpenAI-compatible" ή "custom base URL".
Η διατύπωση των μενού παραπάνω αλλάζει μεταξύ εκδόσεων εφαρμογής — αν μια ετικέτα δεν ταιριάζει ακριβώς, αναζητήστε τη ρύθμιση που αναφέρει "custom", "OpenAI-compatible", ή "base URL".
Αν ένας client δεν συνδέεται
- 401 / "invalid API key" — το κλειδί δεν έφτασε ποτέ. Επιβεβαιώστε ότι ο client στέλνει
Authorization: Bearer sk-…με ολόκληρο το κλειδί, συμπεριλαμβανομένου του προθέματος. - 404 / άγνωστο endpoint — οι clients διαφωνούν αν προσθέτουν οι ίδιοι το
/v1. Αν τοhttps://api.bestprivateai.com/v1επιστρέφει 404, δοκιμάστε αντ' αυτού τοhttps://api.bestprivateai.comως βασικό URL (ή το αντίστροφο). - "The Responses API is not supported yet" — μερικοί νεότεροι clients χρησιμοποιούν εξ ορισμού το Responses API του OpenAI. Εμείς εξυπηρετούμε μόνο Chat Completions· αλλάξτε τον client σε αυτή τη λειτουργία.
- Άδεια λίστα μοντέλων — μερικοί clients τη συμπληρώνουν μόνο μετά από έγκυρο έλεγχο κλειδιού. Πληκτρολογήστε
notrack-uncensoredχειροκίνητα. - Δεν συμβαίνει τίποτα σε client Ollama / llama.cpp — αυτοί μιλούν το δικό τους πρωτόκολλο, όχι συμβατό με OpenAI. Χρησιμοποιήστε αντ' αυτού έναν από τους clients παραπάνω.
Κλειδιά
- Έως 20 ενεργά κλειδιά ανά λογαριασμό. Δώστε σε κάθε εφαρμογή το δικό της κλειδί και το δικό της ημερήσιο ανώτατο όριο.
- Προαιρετική ημερομηνία λήξης· η ανάκληση ενός κλειδιού το σταματά αμέσως και δεν μπορεί να αναιρεθεί — εκδώστε ένα νέο αντ' αυτού.
- Η σελίδα κλειδιών εμφανίζει τη δαπάνη ανά κλειδί, την τελευταία χρήση και τα 30-ήμερα σύνολα του λογαριασμού.
Ερωτήσεις ή ένα id αιτήματος για εξέταση: υποστήριξη · bestprivateai.com/support.