البدء
التوافق مع OpenAI SDK
استخدم حِزم OpenAI SDK الرسمية دون تعديل، وانتقل من OpenAI أو أي API متوافق معها إلى api14 بتغيير Base URL ومفتاح API فقط.
يتحدث api14 لغة OpenAI API. تعمل أي OpenAI SDK رسمية، وأي أداة تقبل عنوان OpenAI أساسيًا مخصصًا، دون أي تغيير في الكود، كل ما تغيّره هو العنوان الأساسي (base URL) ومفتاح API.
القيمتان اللتان يجب تغييرهما
| الإعداد | القيمة |
|---|---|
| العنوان الأساسي (Base URL) | https://api14.com/api/v1 |
| مفتاح API | مفتاحك sk-api14-... |
import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://api14.com/api/v1',
apiKey: process.env.API14_API_KEY,
})
import os
from openai import OpenAI
client = OpenAI(base_url="https://api14.com/api/v1", api_key=os.environ["API14_API_KEY"])
تقرأ كثير من حِزم الـ SDK أيضًا متغيّرَي البيئة OPENAI_BASE_URL وOPENAI_API_KEY، فيمكنك التبديل دون لمس الكود إطلاقًا.
ما هو متوافق
| ميزة OpenAI | api14 |
|---|---|
chat.completions.create بما في ذلك stream وtools وresponse_format | مدعومة لكل نماذج النصوص |
responses.create | مدعومة |
completions.create | مدعومة |
embeddings.create | مدعومة |
images.generate | مدعومة (/images/generations) |
audio.speech.create | مدعومة |
audio.transcriptions.create | مدعومة (multipart) |
models.list / models.retrieve | مدعومة، مع الأسعار والفئات |
صيغة الخطأ { error: { message, type, code } } | مطابقة، تُطلق حِزم الـ SDK استثناء APIError المعتاد |
نقاط النهاية الموجودة لدى OpenAI فقط (Assistants وThreads والضبط الدقيق (fine-tuning) والملفات والدفعات (batches) ومخازن المتجهات (vector stores) والإشراف (moderations)) غير متاحة.
الانتقال من OpenAI
- اضبط العنوان الأساسي على
https://api14.com/api/v1واستخدم مفتاح api14 الخاص بك. - أضف اسم المزوّد قبل أسماء النماذج: يصبح
gpt-5-miniهوopenai/gpt-5-mini، ويصبحtext-embedding-3-smallهوopenai/text-embedding-3-small. - هذا كل شيء. يمكنك الآن أيضًا التبديل إلى أي مزوّد آخر بتغيير معرّف النموذج، مثل
anthropic/claude-sonnet-4.5أوgoogle/gemini-2.5-pro.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
الانتقال من API آخر متوافق مع OpenAI
- اجعل العنوان الأساسي
https://api14.com/api/v1. - استبدل مفتاح API بمفتاح api14 الخاص بك.
- استخدم معرّفات النماذج بصيغة
provider/model(مثلopenai/gpt-5-mini). وتعمل أيضًا المتغيّرات (:freeو:onlineو:nitroو:floor)، وتوجيهprovider، والنماذج الاحتياطيةmodels، وreasoningوpluginsوtransformsوusage.
فروق يجب معرفتها:
- الفوترة تعتمد على رصيد بالدولار. تُعيد
GET /creditsالحقلينtotal_creditsوtotal_usageبالدولار الأمريكي، إضافةً إلى الحقلbalance_usd. راجع الرصيد ومعلومات المفتاح. - تكلفة الاستخدام مضمّنة دائمًا. تطلب البوابة دائمًا
usage.costمن المزوّد الأصلي، فتُبلغك كل استجابة بسعرها. - الترويسات مثل
HTTP-RefererوX-Titleتضبطها البوابة؛ ولا حاجة لإرسالها. - روابط مهام الفيديو تشير إلى api14 (
/api/v1/videos/{id})، وليس إلى المزوّد الأصلي أبدًا. راجع الفيديو.
المعاملات الإضافية في حِزم الـ SDK
لا يزال بإمكانك إرسال الحقول التي لا تعرفها OpenAI SDK:
await client.chat.completions.create({
model: 'openai/gpt-5-mini',
messages: [{ role: 'user', content: 'Hi' }],
// @ts-expect-error api14 extension
provider: { sort: 'price' },
})
client.chat.completions.create(
model="openai/gpt-5-mini",
messages=[{"role": "user", "content": "Hi"}],
extra_body={"provider": {"sort": "price"}},
)
راجع توجيه المزوّدين والنماذج الاحتياطية والاستدلال والبحث على الويب.