البدء السريع لمستخدمي OpenRouter
قم بنقل استدعاءات واجهة برمجة تطبيقات OpenRouter إلى نقطة النهاية الخاصة بنا بدون رقابة في دقائق عن طريق تغيير عنوان URL الأساسي ومفتاح API. يغطي هذا الدليل التكاملات الأساسية لتوليد النصوص، والبث المتدفق، والمخرجات المهيكلة.
التثبيت والإعداد
تتوافق واجهة برمجة التطبيقات لدينا تمامًا مع مكتبات OpenAI القياسية. للانتقال من OpenRouter، تحتاج فقط إلى تحديث قيمتي تكوين: base_url و api_key. وجّه عميلك إلى https://api.openrouterapi.cc/v1 واستخدم المفتاح الذي تم إنشاؤه على لوحة التحكم الخاصة بنا. لا توجد حاجة إلى رؤوس مخصصة أو منطق توجيه معقد. معرف النموذج المطلوب هو uncensored.
تأكد من أن إصدار SDK الخاص بك يدعم معلمة base_url. إذا كنت تستخدم عميل HTTP خام، قم ببساطة بتحديث عنوان URL المستهدف. يضمن هذا الإعداد عمل رمز العميل الحالي دون تعديل، بشرط أن ترسل فقط طلبات إكمال النص.
المصادقة
يتم التعامل مع المصادقة عبر الرأس القياسي Authorization. مرر مفتاح API الخاص بك كرمز Bearer. إذا كان المفتاح غير صالح أو منتهي الصلاحية، تُعيد واجهة برمجة التطبيقات خطأ 401. على عكس بعض المزودين، لا نcharge عن الطلبات الفاشلة؛ الأخطاء والرفض مجانيان، لذا يمكنك اختبار المصادقة دون استهلاك الرصيد.
يدعم كل حساب مفتاحًا نشطًا واحدًا في وقت واحد. يؤدي إنشاء مفتاح جديد إلى إبطال المفتاح السابق فورًا. احفظ مفتاحك بأمان وقم بتدويره إذا اشتبهت في تعرضه. يظهر المفتاح مباشرة بعد تسجيل الدخول، لذا انسخه قبل مغادرة الصفحة.
إكمال الدردشة الأساسي
الوظيفة الأساسية هي نقطة النهاية POST /v1/chat/completions. أرسل الموجّه الخاص بك كقائمة من الرسائل واحصل على استجابة نصية. النموذج مضبوط للإجابة بدون رفض محتوى للاستخدام البالغ القانوني، مما يجعله مناسبًا للمواضيع الإبداعية أو المثيرة أو أبحاث الأمان.
حدد حقل model إلى uncensored. يمكنك التحكم في السلوك باستخدام معاملات مثل temperature، وtop_p، وstop. تدعم واجهة برمجة التطبيقات وضع JSON عبر response_format واستدعاء الدوال عبر tools. تتم معالجة جميع الطلبات بشكل غير متزامن، وتتلقى الإكمال الكامل بمجرد انتهاء النموذج.
استجابات البث المتدفق
فعّل البث المتدفق عن طريق تعيين stream: true في طلبك. تُعيد واجهة برمجة التطبيقات أحداث الإرسال من الخادم (SSE) مع استجابات جزئية. تتلقى أجزاء النص كما يتم إنشاؤها، مما يسمح بالعرض في الوقت الفعلي في تطبيقك.
يتم توفير معلومات استخدام الرموز في الجزء الأخير من البث. يتيح لك ذلك تتبع التكاليف بدقة دون تحليل كل رمز فردي. البث المتدفق مثالي لواجهات الدردشة حيث يهم زمن الاستجابة. تأكد من أن عميلك يتعامل مع SSE بشكل صحيح ويغلق الاتصال عند انتهاء البث.
استدعاء الدوال
تدعم واجهة برمجة التطبيقات استدعاء الدوال عبر معلمة tools. عرّف دوالك في مصفوفة tools وحدد tool_choice إلى auto أو اسم دالة محدد. سيعيد النموذج حجج JSON المهيكلة إذا تم تفعيل دالة.
هذه الميزة مفيدة لدمج LLM مع واجهات برمجة التطبيقات الخارجية أو قواعد البيانات. تأكد من أن تعريفات الدوال دقيقة، حيث يعتمد النموذج عليها لتوليد حجج صالحة. لا تنفذ واجهة برمجة التطبيقات الدوال؛ يجب عليك معالجة منطق التنفيذ في شفرة التطبيق الخاصة بك.
وضع JSON
للمخرجات المهيكلة، استخدم response_format: {"type": "json_object"}. هذا يجبر النموذج على إرجاع JSON صالح، وهو أمر ضروري لتحليل البيانات في التطبيقات التالية. وضع JSON أكثر موثوقية غالبًا من استدعاء الدوال لمهام استخراج البيانات البسيطة.
تأكد من أن الموجّهات توضح بوضوح للنموذج إرجاع JSON. قد تحدث استجابات JSON غير صالحة إذا كان الموجّه غامضًا. يتم دعم وضع JSON في كل من الوضعين القياسي والبث المتدفق. استخدمه عندما تحتاج إلى مخرجات قابلة للقراءة الآلية ومتوقعة.
الحدود والأخطاء والسياق
نافذة السياق هي 100,000 رمز للموجّه والإكمال معًا. الحد الأقصى للإخراج هو 32,000 رمز لكل طلب (2,048 إذا لم يتم تعيين max_tokens). حدود المعدل هي 300 طلب في الدقيقة و8 طلبات متزامنة لكل مفتاح. حجم جسم الطلب محدود بـ 8 ميجابايت.
تُعيد الأخطاء أكواد HTTP القياسية: 401 للمفاتيح غير الصالحة، و402 لعدم كفاية الرصيد، و429 لحدّ المعدل. الرصيد مسبق الدفع، لذا يعني خطأ 402 أنك بحاجة إلى شحن الرصيد. الأخطاء والرفض مجانيان، لذا يمكنك إعادة المحاولة دون تكلفة. حد المحتوى الصارم يمنع المحتوى الجنسي الذي يتضمن قاصرين.
cURL
curl https://api.openrouterapi.cc/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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouterapi.cc/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.openrouterapi.cc/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)مواصفات API
كل الحدود والميزات الفعلية للـ API في مكان واحد — راجعها قبل شحن الرصيد.
| البند | القيمة |
|---|---|
| صيغة API | متوافق مع OpenAI: يعمل أي SDK من OpenAI بتغيير base URL والمفتاح فقط |
| معرّف النموذج | uncensored |
| المصادقة | Authorization: Bearer YOUR_KEY |
| نقاط النهاية | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.openrouterapi.cc/v1 |
| البث المتدفق | نعم — server-sent events؛ آخر جزء يتضمن استهلاك الرموز |
| استدعاء الدوال | نعم — tools و tool_choice؛ الرد يتضمن tool_calls حتى أثناء البث؛ تُرسل النتائج كرسالة role: tool |
| المعاملات | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| نافذة السياق | 100,000 رمز (المدخلات والمخرجات معاً) |
| أقصى مخرجات | حتى ما تبقى من نافذة 100,000 رمزًا؛ max_tokens اختياري (بلا حد منفصل) |
| وضع JSON | response_format: {"type": "json_object"} |
| حدّ المعدل | 300 طلب في الدقيقة لكل مفتاح |
| الطلبات المتزامنة | حتى 8 في الوقت نفسه لكل مفتاح |
| ترويسات الرد | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| حجم الطلب | حتى 8 MB |
| الفوترة | رصيد مسبق الدفع حسب الاستهلاك الفعلي؛ الأخطاء والرفض مجانية |
| مكافأة | +5% من $50، +10% من $100 |
| رصيد تجريبي مجاني | $0.50 لمدة 7 أيام، بدون بطاقة · مفتاح تجريبي: طلبان متوازيان، 60 طلبًا في الدقيقة؛ الحدود الكاملة (8 و300) بعد أول شحن |
| الصلاحية | الرصيد المدفوع لا تنتهي صلاحيته، بدون اشتراك |
| شحن الرصيد | USDT (TRC20) أو USDC (Base)، أي مبلغ صحيح من $10 إلى $500 |
| السعر | $0.25 لكل مليون رمز مدخلات · $1.00 لكل مليون رمز مخرجات |
| المفاتيح | مفتاح نشط واحد لكل حساب؛ المفتاح الجديد يحل محل القديم |
| تسجيل الدخول | Google أو البريد الإلكتروني وكلمة المرور |
| المحتوى | محتوى البالغين مسموح؛ يُرفض أي محتوى جنسي يتعلق بالقاصرين |
رموز الأخطاء
تصل الأخطاء بصيغة JSON مع type ثابت؛ الطلبات الفاشلة أو المرفوضة لا تُحتسب.
| الرمز | النوع | المعنى |
|---|---|---|
400 | bad_request | JSON غير صالح أو رسائل فارغة أو معامل خاطئ أو تجاوز نافذة السياق |
401 | missing_key · invalid_key · key_revoked | لا يوجد مفتاح أو المفتاح خاطئ أو تم استبداله |
402 | no_credit | الرصيد فارغ — اشحن وتستأنف الطلبات فوراً |
403 | content_blocked | محتوى جنسي يتعلق بقاصرين — مرفوض دون احتساب |
404 | not_found | نقطة نهاية غير معروفة |
413 | request_too_large | جسم الطلب أكبر من 8 MB |
429 | rate_limited · concurrency | تجاوز 300 في الدقيقة أو 8 متزامنة — انتظر ثم أعد المحاولة |
503 | upstream_busy | النموذج مشغول — أعد المحاولة بعد ثوانٍ |
أسئلة وأجوبة
هل هذه هي واجهة برمجة تطبيقات OpenRouter الرسمية؟
لا، هذه خدمة مستقلة. نقدم نموذجًا واحدًا بدون رقابة متوافقًا مع بنية عنوان URL الأساسي لـ OpenRouter. لا نقدم نماذج OpenRouter المجمعة أو منطق التوجيه.
كيف أدفع مقابل واجهة برمجة التطبيقات؟
نقبل الدفعات عبر العملات المشفرة فقط: USDT (TRC20) أو USDC (Base). يمكنك شحن أي مبلغ صحيح يتراوح بين $10 و$500. لا نقبل بطاقات الائتمان أو PayPal.
هل تُستخدم الموجّهات للتدريب؟
لا، لا تُستخدم الموجّهات الخاصة بك للتدريب. نطلب فقط عنوان بريد إلكتروني لحسابك، ولا نخزن بياناتك أو نستخدمها لتحسين النموذج.
مفتاحك على بُعد نموذج واحد
أنشئ حسابًا، انسخ المفتاح، غيّر عنوان URL الأساسي. هذا هو الإعداد بالكامل.