عنوان URL الأساسي والمصادقة
قم بالاتصال فورًا عن طريق توجيه عميلك إلى عنوان URL الأساسي الخاص بنا وتمرير مفتاحك في الرأس. المصادقة مباشرة: قم بتضمين Authorization: Bearer YOUR_API_KEY مع كل طلب. تحصل على مفتاحك فورًا بعد التسجيل باستخدام Google أو البريد الإلكتروني. لا يلزم رقم هاتف، ويظهر المفتاح على الشاشة مباشرة. تعمل هذه الإعدادات مع أي SDK متوافق مع OpenAI لأننا نتبع نفس هيكل الواجهة. لا تحتاج إلى إدارة جلسات تسجيل الدخول المعقدة أو التعامل مع انتهاء صلاحية الجلسات التي تعاني منها منصات أخرى. مفتاحك هو الاعتماد الوحيد الذي تحتاجه لجميع الروابط. يعني هذا البساطة أنه يمكنك دمج API في نصوصك أو تطبيقاتك دون القلق بشأن دورات تجديد الرمز أو تدفقات OAuth. الخدمة مصممة للمطورين الذين يريدون وصولاً مباشرًا دون عقبات بيروقراطية. نقدم واجهة نظيفة ومتوقعة تتصرف تمامًا مثل المعيار الصناعي. هذا يقلل وقت التكامل بشكل كبير مقارنة بالتعامل مع أنظمة تسجيل الدخول الخاصة.
نقطة نهاية إكمال الدردشة
أرسل الرسائل إلى النموذج غير الخاضع للرقابة باستخدام نقطة نهاية إكمال الدردشة القياسية. تقبل النقطة طلبات POST إلى /v1/chat/completions مع جسم JSON يحتوي على رسائلك. يجب أن تحدد معرف النموذج كـ uncensored لاستخدام نموذج اللغة الكبير الخاص بنا. يُعيد النظام استجابات نصية يمكنك معالجتها أو عرضها. هذه واجهة برمجية للنص إلى النص (text-in, text-out) ولا تدعم توليد الصور أو الصوت. تتحكم في النبرة والأسلوب عن طريق ضبط معلمات مثل درجة الحرارة (temperature) أو top_p. تنسيق الاستجابة ثابت ومتوقع، مما يسهل تحليله في أي لغة. يمكنك إرسال عدة جولات في طلب واحد للحفاظ على سجل المحادثة. يحاكي هذا سلوك المزودين الكبار مع تقديم نموذجنا الخاص غير الخاضع للرقابة. إنها الوظيفة الأساسية لبناء روبوتات الدردشة، والمساعدات، أو مولدات المحتوى. النقطة النهائية (Endpoint) محسنة للسرعة والموثوقية.
تكامل واجهة برمجة تطبيقات Python
دمج بسرعة باستخدام Python SDK الرسمي مع الحد الأدنى من التكوين. تحتاج فقط إلى تعيين عنوان URL الأساسي ومفتاح API في تهيئة العميل. يوضح مقتطف الرمز أدناه كيفية إنشاء طلب إكمال دردشة بسيط. تعمل هذه الطريقة بسلاسة مع قواعد بيانات OpenAI الموجودة لأن الواجهة متطابقة. يمكنك تمرير قائمة من الرسائل مع أدوار مثل system, user, أو assistant. يمنحك كائن الاستجابة الوصول إلى النص المُولّد واستخدام الرموز المميزة. يجعل هذا تصحيح الأخطاء ومراقبة تطبيقك أمرًا مباشرًا. لا تحتاج إلى كتابة عملاء HTTP مخصصين أو التعامل مع تسلسل JSON يدويًا. يتولى SDK كل العمل الشاق نيابة عنك. يقلل هذا من كود القالب (boilerplate) ويسرع دورات التطوير بشكل كبير. يمكنك البدء في النمذجة الأولية في دقائق والتوسع لاحقًا عند الحاجة. المكتبة موثقة جيدًا ويتم صيانتها بنشاط.
تكامل Node SDK
استخدم حزمة Node.js للتكامل مع واجهة برمجة التطبيقات في مشاريع JavaScript أو TypeScript الخاصة بك. الإعداد مشابه لـ Python: قم بتكوين عنوان URL الأساسي والمفتاح مرة واحدة. يوضح مثال التعليمات البرمجية طلبًا بسيطًا إلى نقطة النهاية chat. يمكنك استخدام نفس هيكل الرسائل كما في Python، مما يضمن الاتساق عبر مجموعة الأدوات الخاصة بك. يوفر كائن الاستجابة نص الإكمال وإحصائيات الاستخدام. هذا مفيد لتتبع استهلاك الرموز في تطبيقات Node الخاصة بك. تتعامل الحزمة مع التدفق ومعالجة الأخطاء داخليًا، مما يبسط التعليمات البرمجية الخاصة بك. يمكنك دمج هذا في طرق Express أو الوظائف الخالية من الخوادم أو المهام الخلفية. الواجهة مألوفة لأي شخص استخدم مكتبة OpenAI Node. هذا يعني أنه يمكنك إعادة استخدام المنطق والأنماط الحالية دون تعلم هيكل API جديد. يناسب بشكل طبيعي النظم الإيكولوجية الحديثة لـ JavaScript. تحصل على فوائد واجهة موحدة مع إمكانيات النموذج المحددة لدينا. يقلل هذا من الحمل المعرفي عند التبديل بين أجزاء مختلفة من تطبيقك.
استجابات البث
تمكين المخرجات في الوقت الفعلي عن طريق ضبط معلمة stream على true في طلبك. تُعيد الواجهة البرمجية تدفقاً للشرائح بدلاً من استجابة كاملة واحدة. هذا مثالي لواجهات الدردشة حيث تريد عرض النص بمجرد توليده. تحتوي كل شريحة على استجابة جزئية، مما يسمح لك بتحديث واجهة المستخدم تدريجياً. تتضمن الشريحة الأخيرة إجمالي استخدام الرموز للطلب. تعمل هذه الميزة مع مكتبات Python وNode مع تغييرات قليلة في الكود. تتعامل مع التدفق عن طريق التكرار عبر الشرائح وإضافة النص. هذا يخلق تجربة مستخدم أكثر سلاسة مقارنة بالانتظار للاستجابة الكاملة. إنه مفيد بشكل خاص لتوليد المحتوى طويل المدى أو مهام الاستدلال المعقدة. قدرة التدفق قياسية في واجهات برمجة تطبيقات الذكاء الاصطناعي الحديثة وهي مدعومة بالكامل هنا. يمكنك التحكم في التدفق عن طريق إدارة معدل استهلاك التدفق. هذا يمنحك تحكماً دقيقاً في كيفية عرض المخرجات للمستخدم.
حدود، أخطاء، والسياق
تدعم نافذة السياق ما يصل إلى 100,000 رمز مرمز لمجموع النص الوارد والإجابة المولدة معاً. يمكنك إرسال ما يصل إلى 16,000 طلب متزامن لكل مفتاح و300 طلب في الدقيقة. إذا تجاوزت هذه الحدود، ستتلقى خطأ حد المعدل 429. تُرجع أخطاء المصادقة حالة 401 إذا كان المفتاح غير صالح. تشير حالة 402 إلى استنفاد رصيدك المدفوع مسبقاً. يمكنك الشحن بالعملات المشفرة في أي وقت لاستئناف الخدمة. لا تستهلك الأخطاء رصيدك، لذا تكون الطلبات الفجيرة مجانية. الحد الأقصى للإخراج في كل طلب هو 16,000 رمز مرمز، أو 2,048 إذا لم تحدد حداً. تُقصر أحجام الطلبات على 8 MB. صُممت هذه الحدود لضمان الاستخدام العادل واستقرار النظام. يمكنك مراقبة استخدامك عبر رؤوس الاستجابة أو كائنات SDK. يساعدك هذا الشفافية في إدارة ميزانيتك وتخطيط بنية تطبيقك بفعالية. يعني نموذج الدفع المسبق أنك تدفع فقط مقابل ما تستخدمه، دون رسوم خفية.
cURL
curl https://api.mistralapilogin.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Fix my token expiry error"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.mistralapilogin.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.mistralapilogin.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)