اربط أدواتك بواجهة Reeva AI API في خمس دقائق
بقلم فريق Reeva · 2 أكتوبر 2026 · آخر تحديث 15 أكتوبر 2026
واجهة API لنماذج الذكاء الاصطناعي من Reeva متوافقة مع واجهة OpenAI. إذا كانت أداة أو مكتبة تعمل مع OpenAI، فستعمل مع Reeva أيضًا: تغيّر إعدادين وتختار نموذجًا. إليك الطريقة.
ما تحتاج إليه
- مفتاح Reeva AI API. اختر خطة من صفحة واجهة API لنماذج الذكاء الاصطناعي. يصدر مفتاحك الأول فور إتمام الدفع عبر PayPal.
- عنوان الأساس (base URL):
https://api.reeva.me/v1 - اسم النموذج:
deepseek-v4.1-flashللمحادثة والنصوص والأكواد والوكلاء، أوqwen-imageللصور. - متاح أيضًا:
qwen3.6-35b-a3b(Qwen 3.6)، نموذج خفيف للمهام القصيرة والسريعة. - التضمينات، في Pro وScale:
nemotron-embed-8bللمستندات وnemotron-embed-8b-queryلأسئلة البحث.
أنشئ مفتاحًا منفصلًا لكل أداة، باسم تتعرف عليه بسهولة. يمكنك إنشاء ما يصل إلى 10 مفاتيح، وإلغاء
أحدها لا يؤثر في البقية. احفظ المفاتيح في متغير بيئة، لا داخل الكود. الأمثلة أدناه تقرأ المفتاح
من REEVA_API_KEY.
Python
ثبّت مكتبة OpenAI الرسمية بالأمر pip install openai، ثم وجّهها إلى Reeva:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.reeva.me/v1",
api_key=os.environ["REEVA_API_KEY"],
)
r = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user",
"content": "Summarize this email in three bullets"}],
)
print(r.choices[0].message.content)
Node.js
ثبّت المكتبة بالأمر npm install openai، ثم احفظ هذا الكود في ملف باسم index.mjs وشغّله
بالأمر node index.mjs:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.reeva.me/v1",
apiKey: process.env.REEVA_API_KEY,
});
const r = await client.chat.completions.create({
model: "deepseek-v4.1-flash",
messages: [{ role: "user", content: "Write a Python function that checks a number with the Luhn algorithm." }],
});
console.log(r.choices[0].message.content);
curl
طلب محادثة:
curl https://api.reeva.me/v1/chat/completions \
-H "Authorization: Bearer $REEVA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "Translate to French: Same-day repairs, guaranteed."}]
}'
صورة:
curl https://api.reeva.me/v1/images/generations \
-H "Authorization: Bearer $REEVA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image",
"prompt": "A winter campaign banner in pink and purple, no text",
"n": 1
}'
تستغرق الصورة وقتًا أطول من الإجابة النصية حتى تصل.
أدوات البرمجة
تستطيع opencode وCline وContinue وAider وRoo Code كلها العمل مع موفّر متوافق مع OpenAI. لكل أداة شاشة إعدادات أو ملف إعدادات خاص بها، لكنك تضبط الأشياء نفسها في كل منها:
- الموفّر: متوافق مع OpenAI، أو OpenAI مع عنوان أساس مخصص
- عنوان الأساس:
https://api.reeva.me/v1 - مفتاح API: مفتاحك من Reeva
- النموذج:
deepseek-v4.1-flashللبرمجة والوكلاء والتعديلات السريعة والمحادثة
في Aider مثلًا، يكفي متغيرا بيئة واسم نموذج:
export OPENAI_API_BASE=https://api.reeva.me/v1
export OPENAI_API_KEY=$REEVA_API_KEY
aider --model openai/deepseek-v4.1-flash
التضمينات (Pro وScale)
تشمل Pro وScale التضمينات عبر /v1/embeddings، بنموذج Nemotron-3-Embed-8B من nvidia. للنموذج
معرّفان، ويحتاج البحث إلى كليهما: nemotron-embed-8b للمستندات التي تخزّنها
وnemotron-embed-8b-query للأسئلة التي تبحث بها. استخدام معرّف واحد للاثنين لا يعيد أي خطأ،
لكن البحث يرتّب النتائج أسوأ بكثير.
docs = ["Invoices are due 30 days after issue.",
"Refunds go back to the original card."]
d = client.embeddings.create(model="nemotron-embed-8b", input=docs)
q = client.embeddings.create(model="nemotron-embed-8b-query",
input="When is an invoice due?")
# The vectors are normalized: a dot product is the cosine similarity.
qv = q.data[0].embedding
scores = [sum(a * b for a, b in zip(qv, x.embedding)) for x in d.data]
print(docs[scores.index(max(scores))])
للمتجهات 4096 بُعدًا. يقبل الطلب حتى 64 مُدخلًا و120,000 حرف إجمالًا. يُضمَّن كل مُدخل حتى
4,096 رمزًا، ويُقصّ النص الأطول دون أي خطأ (يتوقف usage.prompt_tokens في الاستجابة عند 4,096)،
لذا قسّم المستندات الطويلة إلى أجزاء قبل تضمينها. حد حجم الطلب الواحد في خطتك خاص بالمحادثة
ولا ينطبق هنا، لكن رموز التضمين تُحتسب مثل رموز المحادثة تمامًا.
الحدود والأخطاء
الرموز غير محدودة، لكن كل خطة تضع حدودًا في الدقيقة وللطلبات المتزامنة ولكل طلب. وهذا ما يحدث عند تجاوز أحدها.
- HTTP 429، طلبات كثيرة جدًا في الدقيقة. تبدأ النافذة من جديد كل دقيقة، فأعد المحاولة خلال دقيقة. تسمح Mini بـ 5 طلبات في الدقيقة، وStarter بـ 20، وPro بـ 60، وScale بـ 120.
- طلبات متزامنة كثيرة جدًا: الطلب ينتظر. يبدأ فور انتهاء أحد طلباتك الجارية. وإذا لم تتحرر خانة خلال دقيقتين، يُرفض مع HTTP 429. في Mini يعمل طلب واحد في كل مرة، وفي Starter طلبان، وفي Pro 4 طلبات، وفي Scale 8 طلبات.
- HTTP 429، صور كثيرة جدًا في طلب واحد. يمكن للطلب الواحد أن يطلب حتى 3 صور (
n) في Mini، و10 في Starter، و16 في Pro وScale. ويُرفض الطلب بقيمةnأكبر فورًا؛ اطلب عددًا أقل. - الاستخدام العادل. الاستخدام المكثف يبطئ طلباتك. ولا يُوقف مؤقتًا إلا الاستخدام المفرط المستمر طوال يوم كامل، إلى أن يخف. وأثناء الإيقاف تتلقى الطلبات HTTP 429.
- HTTP 400،
request_too_large. الطلب أكبر مما تسمح به خطتك: 32k رمز في Mini، و128k في Starter وPro. أما Scale فليس له حد خاص، بل سياق DeepSeek v4.1 البالغ 256k رمز فقط. يشمل الحجم الـ prompt مع قيمةmax_tokensالتي تطلبها، ويُتحقق منه قبل تنفيذ الطلب. اختصر الـ prompt أو خفّضmax_tokens. لـ Qwen 3.6 حد خاص قدره 32k رمز للطلب الواحد في كل الخطط؛ ويُرفض الطلب الأكبر أيضًا مع HTTP 400. أُوقفgpt-oss-20b، وتُرفض الطلبات التي تسمّيه. استخدمdeepseek-v4.1-flashللأكواد والوكلاء. - HTTP 401. المفتاح غير صالح، مثلًا لأنه أُلغي.
تعيد مكتبات OpenAI SDK لـ Python وNode.js محاولة الطلب بعد 429 تلقائيًا، مع انتظار يتزايد تدريجيًا (backoff).
الخطوات التالية
اختر خطتك من صفحة واجهة API لنماذج الذكاء الاصطناعي، أو اقرأ إعلان الإطلاق لمقارنة كاملة بين الخطط.