عنوان URL الأساسي والمصادقة
يتبع الـ API واجهة chat-completions القياسية الخاصة بـ OpenAI. للتكامل، قم بتحديث تكوين العميل الخاص بك باستخدام عنوان URL الأساسي المحدد لدينا ومفتاح codex api صالح. يتم إنشاء هذا المفتاح أثناء التسجيل في لوحة التحكم. تقبل نقطة النهاية الطلبات القياسية والمتدفقة (streaming)، مما يجعلها بديلاً جاهزًا لمعظم وكلاء البرمجة التي تتوقع بنية متوافقة مع OpenAI.
تعتمد المصادقة على رأس Authorization. أضف مفتاحك كرمز Bearer. إذا كنت تستخدم وسيطًا أو إطار عمل وكيل مخصص، فتأكد من احترامه لرؤوس HTTP القياسية. الخدمة مستقلة؛ لا تمر عبر موردين آخرين أو تجمع نماذج. أنت تتصل مباشرة بـ LLM الخاص بنا بدون رقابة.
إرسال إكمال المحادثة
ابدأ باختبار طلب نصي بسيط. يؤكد ذلك أن المصادقة وعنوان URL الأساسي صحيحان. تقبل نقطة النهاية قائمة من الرسائل مع أدوار مثل user أو assistant. معرف النموذج هو دائمًا uncensored. يعيد هذا الطلب استجابة إكمال قياسية. استخدم هذا للتحقق من قدرة الوكيل الخاص بك على تحليل بنية JSON قبل الانتقال إلى الموجّهات المعقدة.
تأكد من أن حمولة البيانات تبقى ضمن حد حجم الجسم 8 MB. يتم دعم نافذة السياق الكبيرة، لكن إجمالي عدد الرموز (الإدخال بالإضافة إلى الإخراج) يجب أن يبقى أقل من 100,000 رمز. إذا تجاوزت هذه الحدود، سيعيد الخادم خطأ. ابدأ باختبار صغير لتأكيد الاتصال.
curl https://api.getcodexapi.com/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."}]
}'
تمكين البث (SSE)
لوكلاء البرمجة الذين يحتاجون إلى توليد الرموز (tokens) في الوقت الفعلي، فعّل البث المتدفق. اضبط المعلمة stream على true في جسم الطلب. يعيد الخادم تسلسل أحداث مستخدم الخادم (SSE) بدلاً من كائن JSON واحد. يحتوي كل حدث على جزء جزئي من الاستجابة. يقلل هذا من زمن الاستجابة المدرك للمستخدمين ويسمح للوكيل الخاص بك بمعالجة الرموز (tokens) عند وصولها.
لا يغير البث التسعير أو حساب الرموز. لا تزال تدفع مقابل إجمالي رموز الإدخال والإخراج. تعامل مع تدفق SSE في كود العميل الخاص بك لتراكم الاستجابة النهائية أو معالجتها تدريجيًا. هذا مثالي لتوليد الكود حيث تكون النتائج الوسيطة مفيدة.
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)
استخدم استدعاء الدوال
يدعم النموذج استدعاء الدوال (function calling)، مما يسمح لوكيلك بتنفيذ أدوات خارجية. عرّف دوالك في المعلمة tools. سيعيد النموذج استجابة تحتوي على استدعاء أداة بدلاً من نص عادي إذا قرر أن هناك حاجة إلى دالة. يجب على الوكيل الخاص بك تحليل هذه الاستجابة وتنفيذ الأداة، ثم إعادة إدخال النتيجة في المحادثة.
هذه القدرة ضرورية لوكلاء البرمجة الذين يحتاجون إلى تشغيل الكود، أو استعلام قواعد البيانات، أو جلب البيانات المباشرة. يتبع مخطط الأداة التنسيق القياسي الخاص بـ OpenAI. تأكد من أن الوكيل الخاص بك يتعامل بشكل صحيح مع دورة الذهاب والعودة بين النموذج ومنطق تنفيذ الأداة الخاص بك. يحافظ هذا على نافذة السياق بكفاءة عن طريق استبدال النص الخام بنتائج الأدوات المهيكلة.
from openai import OpenAI
client = OpenAI(base_url="https://api.getcodexapi.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)
التحقق من النماذج المتاحة
استخدم نقطة النهاية GET /v1/models للتحقق من النماذج المتاحة. تُرجع نقطة النهاية هذه قائمةً بكائنات النموذج، بما في ذلك معرّفاتها وتواريخ إنشائها. تقدّم واجهة برمجة التطبيقات لدينا نموذجًا واحدًا: uncensored. على عكس وسائط إعادة التوجيه التي تجمع بين مورّدين متعددين، نقدّم نقطة نهاية مخصصة لنموذج لغة كبير واحد مُحسَّن. يضمن ذلك سلوكًا متسقًا وأداءً متوقعًا لمهام البرمجة لديك.
استعلم عن هذه النقطة للتحقق من اتصال العميل بالخدمة الصحيحة. تعيد حقول بيانات قياسية. لا تحتاج إلى إدارة اختيار النموذج يدويًا. يطلب العميل ببساطة معرف النموذج uncensored في جميع استجابات chat-completions. يبسط هذا التكامل ويتجنب أخطاء التوجيه.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.getcodexapi.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);
حدود المعدل والقيود
راقب استخدامك لتجنب الانقطاعات. تفرض واجهة برمجة التطبيقات حدًا قدره 300 طلب في الدقيقة لكل مفتاح. إذا تجاوزت هذا الحد، ستتلقى خطأ 429 Too Many Requests. حجم جسم الطلب محدود بـ 8 ميجابايت. تضمن هذه القيود أداءً مستقرًا للوكلاء ذوي الإنتاجية العالية. عدّل وتيرة طلبات العميل إذا كنت تعالج دفعات كبيرة.
تعيد أخطاء المصادقة حالة 401 إذا كان المفتاح غير صالح. تؤدي الرصيد غير الكافي إلى حالة 402. تأكد من أن رصيدك المسبق الدفع موجب قبل إرسال الطلبات. لا تنتهي صلاحية الرصيد، لذا يمكنك شحن الرصيد عندما يناسبك. يمكن إعادة توليد مفتاح codex api في أي وقت، مما يلغي المفتاح القديم على الفور. احتفظ بمفتاحك بأمان.