المصادقة
تتم المصادقة باستخدام مفتاح API واحد. يمكنك تسجيل الدخول باستخدام Google أو كلمة مرور بالبريد الإلكتروني في صفحة الحصول على مفتاح API. يظهر المفتاح فورًا ويرتبط برصيدك المسبق للدفع. على عكس المزودين الكبار، لا توجد اشتراكات شهرية أو بطاقات ائتمان مطلوبة للتجربة. استخدم الرأس Authorization: Bearer YOUR_API_KEY لجميع الطلبات. مفتاحك هو الاعتماد الوحيد النشط لكل حساب؛ إنشاء مفتاح جديد يلغي صلاحية المفتاح السابق.
إكمال أساسي
أرسل طلب إكمال محادثة قياسي إلى نقطة النهاية المتوافقة مع OpenAI. معرف النموذج هو uncensored. هذا النموذج مفتوح الأوزان ومضبط للإجابة دون رفض المحتوى للاستخدام القانوني للبالغين. إنه ليس GPT أو Claude أو أي نموذج من مزود آخر. يتم توفير عنوان URL الأساسي لهذه الخدمة أدناه.
curl https://api.ornith.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'استبدل YOUR_API_KEY بمفتاحك من لوحة التحكم. يتضمن الرد النص المُولّد في choices[0].message.content. تشير الأخطاء مثل 401 إلى مفتاح غير صالح، بينما يعني 402 أن رصيدك المسبق للدفع قد استنفد.
واجهة برمجة تطبيقات Python
استخدم حزمة Python الرسمية openai. وجهها إلى عنوان URL الأساسي لـ Ornith وقم بتوفير مفتاح API الخاص بك. يضمن ذلك التوافق مع بنية عميل OpenAI القياسي. يمكنك تمرير الرسائل كقائمة من القواميس التي تحتوي على role و content. يتعامل العميل مع طلبات HTTP تلقائيًا. يعمل هذا النهج لكل من توليد النصوص البسيط والتفاعلات الأكثر تعقيدًا باستخدام الأدوات أو وضع JSON.
from openai import OpenAI
client = OpenAI(base_url="https://api.ornith.top/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)يعكس كائن الاستجابة هيكل OpenAI القياسي. يمكنك الوصول إلى النص المُولّد مباشرة من كائن الاستجابة. هذه الطريقة مثالية لخدمات الخلفية أو البرامج النصية حيث تحتاج إلى وصول برمجي لإخراج النموذج.
واجهة برمجة تطبيقات Node
ثبّت حزمة npm openai. قم بتهيئة العميل بعنوان URL الأساسي لـ Ornith ومفتاح API الخاص بك. هيكل الطلب مطابق لـ SDK بايثون. استخدم طريقة chat.completions.create. هذا مناسب لبيئات JavaScript، سواء كنت تبني خادمًا خلفيًا للويب أو أداة CLI. يتعامل العميل مع تسلسل وفك تسلسل الاستجابة.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ornith.top/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);عالج الأخطاء بشكل مناسب. ستؤدي أخطاء الشبكة أو أخطاء واجهة برمجة التطبيقات إلى طرح استثناءات. تحقق من رمز الحالة للتمييز بين فشل المصادقة، حدود المعدل، أو أخطاء الخادم. تحتوي الاستجابة على تفاصيل الإكمال بنفس تنسيق واجهة برمجة تطبيقات Python.
استجابات البث المتدفق
تمكين البث المتدفق عن طريق تعيين stream: true في طلبك. هذا يعيد تدفق الرموز كما يتم توليدها. استخدم هذا لتحديثات واجهة المستخدم في الوقت الفعلي أو عرض النص التدريجي. ينتهي التدفق بقطعة نهائية تحتوي على إجمالي استخدام الرموز. يتيح لك ذلك تتبع التكاليف في الوقت الفعلي دون انتظار الاستجابة الكاملة. هذا فعال للسياقات الطويلة حيث تريد عرض التقدم.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)كرر عبر التدفق لمعالجة كل قطعة. تتضمن القطعة الأخيرة حقل usage. هذا مفيد لشفافية الفواتير. تأكد من أن عميلك يتعامل مع التدفق بشكل صحيح لتجنب مشاكل الذاكرة مع الاستجابات الكبيرة.
الحدود، الأخطاء والسياق
تبلغ نافذة السياق 100,000 رمز (token) للموجّه والإكمال معاً. الحد الأقصى للإخراج لكل طلب هو 32,000 رمز (token) (2,048 إذا لم يتم ضبط max_tokens). أنت مقيد بـ 300 طلب في الدقيقة و8 طلبات متزامنة لكل مفتاح. يجب أن تكون أحجام الطلبات أقل من 8 ميجابايت. إذا تجاوزت حدّ المعدل، ستتلقى خطأ 429. يتم رفض المحتوى المرتبط بالأحداث الصغرية بشكل ثابت وينطبق دائماً. لا تستهلك الأخطاء الرصيد. الرصيد مسبق الدفع ولا ينتهي.