عنوان URL الأساسي والمصادقة
أرسل الطلبات إلى عنوان URL الأساسي https://api.codexapipricing.com/v1 باستخدام مفتاح API الخاص بك. هذه نقطة النهاية متوافقة مع مكتبات OpenAI القياسية، لذا تحتاج فقط إلى تحديث عنوان URL الأساسي وتقديم مفتاحك. المصادقة تتم بتمرير الرأس Authorization: Bearer YOUR_API_KEY مع كل طلب. يمكنك إنشاء مفتاح فورًا بتسجيل الدخول باستخدام Google أو البريد الإلكتروني وكلمة المرور. يظهر المفتاح مرة واحدة فقط بعد الإنشاء، لذا احفظه بأمان. لا تُستخدم نصوصك في التدريب، مما يضمن خصوصية بياناتك.
نقطة نهاية إكمال الدردشة
استخدم ال POST /v1/chat/completions نقطة النهاية لتوليد النص. هذه هي الواجهة الأساسية لإرسال المطالبات واستقبال الاستجابات. معرف النموذج هو دائماً uncensored, بغض النظر عن إصدار النموذج الذي يعمل على خوادمنا. يمكنك التحقق من النماذج المتاحة عبر GET /v1/models. أرسل سجل محادثاتك في messages
المعلمات المدعومة ووضع JSON
تحكّم في التوليد باستخدام معاملات مثل temperature, top_p، و stop. استخدم response_format تعيين إلى {"type": "json_object"} لإجبار إخراج JSON. هذا مفيد لاستخراج البيانات المنظمة أو استدعاء الوظائف. يمكنك أيضًا تعيين max_tokens لتقييد طول المخرجات، مع افتراض 2,048 إذا تم حذفها. يدعم نافذة السياق ما يصل إلى 100,000 رمز للمطالبة والإكمال معًا. مرر seed لنتائج حتمية أو presence_penalty و frequency_penalty لضبط التكرار. تتيح هذه المعايير ضبط سلوك النموذج بدقة بدون تكوين معقد. يضمن وضع JSON التنسيق الصارم للتنسيق الموثوق في تطبيقك.
الاستجابات التدفقية عبر SSE
فعّل البث عن طريق تعيين stream: true في طلبك. يعيد الواجهة البرمجية أحداث الإرسال من الخادم (SSE) أثناء توليد الرموز. هذا يقلل من زمن الانتظار المُدرَك للاستجابات الطويلة. تظهر تفاصيل استخدام الرموز في الشريحة الأخيرة من التدفق. يمكنك معالجة الرموز تدريجياً لعرض النص في الوقت الفعلي. تعمل هذه الميزة مع جميع مكتبات SDK المتوافقة مع OpenAI. يعد التدفق مثالياً لواجهات الدردشة حيث يتوقع المستخدمون ملاحظات فورية. تحتوي الشريحة الأخيرة على إجمالي عدد الرموات لدقة الفواتير. استخدم هذه الطريقة للتعامل مع المخرجات الكبيرة بأناقة دون انتظار الاستجابة الكاملة.
حدود المعدلات وأجسام الطلبات
مقيد كل مفتاح API بـ 300 طلب في الدقيقة و8 طلبات متزامنة. الحد الأقصى لحجم جسم الطلب هو 8 ميجابايت. إذا تجاوزت هذه الحدود، ستتلقى خطأ 429. يمكنك إنشاء مفاتيح جديدة لاستبدال المفاتيح الحالية، لكن مفتاحاً واحداً فقط يكون نشطاً لكل حساب. لا تحتسب الأخطاء والرفضات ضمن حد معدل الطلبات الخاص بك. تتيح نافذة السياق التي تبلغ 100,000 رمز تاريخ محادثات موسع. حافظ على أحجام طلباتك موجزة للبقاء ضمن حدود الحجم. راقب استخدامك لتجنب الانقطاعات خلال أوقات الذروة. تضمن هذه الحدود الاستخدام العادل لجميع العملاء المدفوعين مسبقاً.
معالجة الأخطاء واستكشاف الأخطاء
التعامل مع الأخطاء من خلال التحقق من رمز حالة HTTP. يشير خطأ 401 إلى مفتاح API غير صالح أو مفقود. يعني خطأ 402 استنفاد رصيدك المدفوع مسبقاً. يشير خطأ 429 إلى تجاوز حدود المعدل. استخدم ال error field في الاستجابة للحصول على التفاصيل. الأخطاء مثل الشحن المزدوج تُصلح عبر صفحة الدعم. الرصيد لا ينتهي، لذا يمكنك الإضافة لاحقًا. الرفضات لانتهاكات سياسة المحتوى مجانية. يساعدك هذا الهيكل المتوقع للأخطاء في تصحيح مشاكل التكامل بسرعة دون تخمين السبب.
cURL
curl https://api.codexapipricing.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the hourly rates for the large model."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.codexapipricing.com/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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.codexapipricing.com/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);التدفق
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)