مرجع No Restrictions API

نقطة نهاية واحدة متوافقة مع OpenAI، موديل واحد، مفتاح واحد. إذا كان الكود لديك يتحدث بالفعل إلى /v1/chat/completions، غيّر عنوان URL الأساسي والمفتاح، وسيبدأ بالتحدث إلينا.

عنوان URL الأساسي والمصادقة

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

تُنشأ المفاتيح على صفحة المفاتيح. يُعرض المفتاح مرة واحدة فقط، عند إنشائه؛ نحتفظ بتجزئة له وبآخر ستة أحرف منه. أرسله فقط عبر HTTPS وفقط في ترويسة Authorization — لا تضعه أبدًا في عنوان URL.

كل شيء بصيغة JSON (Content-Type: application/json). تستخدم الاستجابات مخطط OpenAI، لذا تعمل SDKs الرسمية لـ openai وأي عميل متوافق مع OpenAI دون أي تغيير.

الموديلات

GET /v1/models

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

يوجد موديل واحد فقط، notrack-uncensored: نسختنا المرافقة الخاصة، تعمل على عتادنا الخاص. أي قيمة ترسلها في model تُوجَّه إليه؛ استخدم المعرّف العام حتى تطابق سجلاتك سجلاتنا.

إكمالات المحادثة

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
}

الاستجابة — الشكل القياسي، مع عدد رموز (tokens) حقيقي في 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، من إنتاج No Restrictions) — ولا شيء آخر: لا قواعد، لا فلترة مواضيع. رسالة النظام (system message) الخاصة بك تأتي بعده وتحدد الشخصية والأسلوب وكل ما تبقى. الاستثناء الوحيد موجود في سياسة المحتوى.

البث

فعّل "stream": true واقرأ أحداث server-sent، بالضبط كما مع 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.
streamtrue لأجل SSE. stream_options.include_usage مفعّل دائمًا.
max_tokensحد أقصى للإكمال. يجب أن يتسع الـ prompt + الإكمال ضمن نافذة 64,000 رمزًا (token).
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, nتُمرَّر إلى الموديل كما في OpenAI. إن لم ترسل temperature نستخدم 0.85، وهي نفس القيمة المستخدمة في محادثتنا. n أكبر من 1 يضاعف تكلفة المخرجات.
tools, tool_choiceالمدعوم: auto، none، required، أو دالة محددة بالاسم. يحمل الرد tool_calls وfinish_reason: "tool_calls"؛ أرسل النتيجة كرسالة role: "tool". مع وجود أدوات (tools) يصل الرد المبثوث كقطعة واحدة لكل استدعاء، لا رمزًا برمز.
response_format{"type": "json_object"} مدعوم (اذكر شكل JSON الذي تريده في الـ prompt). json_schema والحقل القديم functions غير مدعومَين.

الحدود وترويسات الاستجابة

الحدالقيمةعند التجاوز
الطلبات المتزامنة لكل مفتاح8429 concurrency
الطلبات في الدقيقة لكل مفتاح300429 rate_limit
نافذة السياق (prompt + إكمال)64,000 رمزًا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 aiwithnorestrictions.com/api-keys" } }
HTTPtypeما يجب فعله
400bodyJSON غير صالح أو لا يوجد messages.
400context_limitالـ prompt أطول من أن يتسع في نافذة 64,000 رمزًا. تخلَّ عن الأدوار الأقدم.
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_contextالمشهد يُقرأ على أنه جنسي وشخصية تُقرأ على أنها قاصر. اجعل الشخصيات بالغة بلا أي غموض وأعد الإرسال؛ لا فوترة.
401auth, invalid_key, key_revoked, key_expiredأصلح المفتاح أو استبدله.
402no_creditالرصيد صفر. أعد الشحن؛ تُستأنف الطلبات فورًا.
402key_daily_capبلغ هذا المفتاح السقف اليومي الذي حددته. رفعه أو انتظر حتى 00:00 UTC.
403content_policy + X-NoTrack-Content-Flag: child_safetyمرفوض ولا فوترة عليه. راجع سياسة المحتوى.
429rate_limit, concurrencyتباطأ وأعد المحاولة؛ احترم ترويستَي X-RateLimit-*.
502upstreamلم يُجب الموديل. أعد المحاولة مع تأخير متزايد؛ لا فوترة.
503billing, safetyأحد اعتمادياتنا معطّل. أعد المحاولة بعد ثوانٍ قليلة؛ لا فوترة.

الفوترة

رصيد مسبق الدفع، يُحتسب لكل رمز من usage الحقيقي لكل استجابة: $0.25 لكل مليون رمز إدخال، $1.00 لكل مليون رمز إخراج. الإدخال هو كل ما ترسله (system prompt، السجل، الرسالة الجديدة)؛ الإخراج هو ما يكتبه الموديل.

الشخصية — الموديل العاري أو شخصية No Restrictions

لكل مفتاح أسلوب، يُختار على صفحة المفاتيح ويمكن تبديله في أي وقت:

يمكن لطلب أن يتجاوز إعداد المفتاح، إما بحقل أو بلاحقة على اسم الموديل (للعملاء الذين لا يمكنهم ضبط سوى اسم الموديل):

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

أسماء الشخصيات: notrack (الشخصية البسيطة)، concise، detailed، creative (نفس المتغيرات التي تقدمها المحادثة)، bare. ترويسة الاستجابة X-NoTrack-Persona تحدد أيّها طُبِّق.

سياسة المحتوى

لا نضيف system prompt ولا نشغّل أي فلتر مواضيع. الخيال للبالغين، المواضيع الحالكة، اللغة القوية، العنف في الخيال — يجيب الموديل كما كُتب. قاعدة واحدة مطبَّقة في الكود ولا يمكن تعطيلها: أي محتوى جنسي يتعلق بقاصر يُرفض.

تكرار 403 على مفتاح يؤدي إلى إغلاق المفتاح، ثم الحساب. النص الكامل في سياسة الاستخدام المقبول.

الخصوصية

لا تُكتب الـ prompts والإكمالات على القرص — لا من طرف البوابة ولا من طرف خوادم الموديل. ما نحتفظ به لكل طلب هو معرّف الطلب، ومعرّف المفتاح، وعدّادات الرموز والسعر، لأن ذلك هو الفاتورة. تُسجَّل حالات رفض الأمان بحسب الفئة، دون النص. لا يرى أي مزوّد موديل خارجي حركة بياناتك مطلقًا: يعمل الموديل على عتاد نستأجره ونتحكم فيه.

العملاء و SDKs

موقع No Restrictions وتطبيق No Restrictions هما محادثتنا الخاصة — لا يحتويان على حقل لمفتاح API ولن يحتويا عليه أبدًا. المفتاح مخصَّص لبرامج أخرى: ألصقه في أحد العملاء أدناه، أو في كودك الخاص.

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. البث مفعّل. حافظ على حجم السياق عند 64,000 رمزًا أو أقل.

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، إعدادات بروكسي JanitorAI، curl — أي عميل لديه خيار "OpenAI-compatible" أو "custom base URL".

صياغة القوائم أعلاه تختلف بين إصدارات التطبيقات — إذا لم يطابق التسمية بدقة، ابحث عن أي إعداد يذكر "custom" أو "OpenAI-compatible" أو "base URL".

إذا لم يتصل العميل

المفاتيح

أسئلة أو معرّف طلب لمراجعته: الدعم · [email protected].