البدء السريع
تتحدث Zyloo واجهة OpenAI API حرفيًا. إذا كان كودك يتواصل مع api.openai.com، فأعد توجيهه إلى عنوان الأساس لدينا وانتهى الأمر.
أدوات سطر الأوامر الوكيلة — مثل Claude Code وopencode وما شابهها — توجَّه إلى https://api.zyloo.io. أما العملاء والمحررات بنمط OpenAI مثل Cursor فتستخدم https://api.zyloo.io/v1.
# 1. Install the official SDK (any language)
npm install openai
# 2. Get your key from https://zyloo.io/dashboard
export ZYLOO_KEY=sk-zy-...
# 3. Make your first call
curl https://api.zyloo.io/v1/chat/completions \
-H "Authorization: Bearer $ZYLOO_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "zyloo/claude-opus-4-7",
"messages": [{"role": "user", "content": "Hello"}]
}'تستخدم أداة برمجة وكيلة عبر سطر الأوامر؟ اضبط عنوان الأساس لديها على https://api.zyloo.io مع مفتاح Zyloo الخاص بك، ثم شغّلها كالمعتاد.
# Claude Code, opencode, and other agentic CLIs
export ANTHROPIC_BASE_URL=https://api.zyloo.io
export ANTHROPIC_API_KEY=$ZYLOO_KEY
# Cursor and other OpenAI-compatible editors
# Base URL: https://api.zyloo.io/v1
# API key: $ZYLOO_KEYالمصادقة
يجب أن يتضمن كل طلب رمز bearer في ترويسة Authorization. المفاتيح مقيّدة بنطاق كل مشروع ويمكن إبطالها فورًا من لوحة التحكم.
Authorization: Bearer sk-zy-9f3a0e5b...للتطوير المحلي، نوصي بتخزين المفتاح في ملف .env وتحميله عبر بيئة التشغيل لديك — ولا ترفع المفاتيح أبدًا إلى نظام التحكم بالمصادر.
النماذج
أشِر إلى أي نموذج بمعرّفه القياسي في Zyloo. كل معرّف يقع ضمن نطاق zyloo/... بحيث لا يكون هناك أي لبس بين المزوّدين. القائمة الكاملة المكوّنة من 52 نموذجًا موجودة في صفحة النماذج.
# A few examples — see /dashboard/models for the full list
zyloo/claude-opus-4-7-thinking
zyloo/claude-opus-4-7
zyloo/gpt-5.5
zyloo/gemini-3.5-flash
zyloo/deepseek-v4-pro
zyloo/grok-4.3curl https://api.zyloo.io/v1/models \
-H "Authorization: Bearer $ZYLOO_KEY"النماذج ذات الاستدلال الموسّع تنتهي بـ -thinking — على سبيل المثال zyloo/claude-opus-4-7-thinking أو zyloo/gpt-5.5-xhigh.
إكمالات المحادثة
نفس بنية JSON المستخدمة في /v1/chat/completions لدى OpenAI. الأدوات ووضع JSON والرؤية والمخرجات المهيكلة مدعومة على كل نموذج متوافق.
import OpenAI from "openai";
const zyloo = new OpenAI({
apiKey: process.env.ZYLOO_KEY,
baseURL: "https://api.zyloo.io/v1",
});
const res = await zyloo.chat.completions.create({
model: "zyloo/gemini-3.5-flash",
messages: [
{ role: "system", content: "You are concise." },
{ role: "user", content: "Summarize this PR..." },
],
temperature: 0.2,
max_tokens: 512,
});
console.log(res.choices[0].message.content);توليد الصور
تولّد نماذج الصور صورًا من موجّه نصي عبر /v1/images/generations — بنفس شكل الطلب والاستجابة في Images API لدى OpenAI. تُفوتر نماذج الصور لكل صورة وليس لكل رمز، وتظهر في صفحة النماذج بسعر لكل صورة.
const image = await zyloo.images.generate({
model: "zyloo/your-image-model", // any model marked "Image" on /models
prompt: "A watercolor lighthouse at dawn",
n: 1, // 1–4 images per request
size: "1024x1024",
});
console.log(image.data[0].url ?? image.data[0].b64_json);curl https://api.zyloo.io/v1/images/generations \
-H "Authorization: Bearer $ZYLOO_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "zyloo/your-image-model",
"prompt": "A watercolor lighthouse at dawn",
"n": 1
}'- يُحتسب كل طلب على أساس السعر لكل صورة × عدد الصور المسلَّمة. يحدد `n` عدد الصور المراد توليدها (من 1 إلى 4، والافتراضي 1).
- لا تُحاسَب إلا على الصور التي تم تسليمها فعليًا: إذا فشل المزوّد أو انتهت المهلة أو أعاد خطأً، يُعاد الحجز إلى رصيدك تلقائيًا.
- تتطلب نماذج الصور رصيدًا مدفوعًا — لا يمكن استخدام الرصيد الترحيبي أو رصيد المكافآت معها.
النماذج الموسومة بدعم التعديلات تقبل أيضًا POST /v1/images/edits بجسم multipart form (صورة المصدر + موجّه نصي) وبنفس السعر لكل صورة. أما النماذج غير الموسومة فتُعيد الخطأ 400 على تلك النقطة.
curl https://api.zyloo.io/v1/images/edits \
-H "Authorization: Bearer $ZYLOO_KEY" \
-F "model=zyloo/your-image-model" \
-F "image=@photo.png" \
-F "prompt=Add a red scarf" \
-F "n=1"البث
مرّر stream: true لتلقّي أحداث Server-Sent Events بنفس تنسيق delta المستخدم لدى OpenAI.
const stream = await zyloo.chat.completions.create({
model: "zyloo/claude-opus-4-7",
stream: true,
messages: [{ role: "user", content: "Tell me a story" }],
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}الأخطاء
تُعيد Zyloo كائنات أخطاء متوافقة مع OpenAI. أشهر الرموز:
| الرمز | المعنى | الإجراء |
|---|---|---|
| 401 | مفتاح غير صالح | بدّل المفتاح من لوحة التحكم |
| 402 | رصيد غير كافٍ | اشحن المحفظة |
| 429 | تقييد المعدل | تراجع مؤقتًا، وسنوجّه الطلب إلى مزوّد شقيق |
| 5xx | فشل في المصدر (upstream) | إعادة محاولة تلقائية مع idempotency-key |