نقاط النهاية
Embeddings
نقطة النهاية POST /embeddings تحوّل النص إلى متجهات للبحث الدلالي والتجميع والاسترجاع في RAG، بنفس صيغة OpenAI وبأسعار شفافة لكل رمز.
جرّبه في ساحة التجربةحوّل النص إلى متجهات للبحث الدلالي والتجميع وإزالة التكرار والتوليد المعزَّز بالاسترجاع (RAG). لنقطة النهاية الشكل نفسه الذي لـ POST /embeddings في OpenAI، لذا يعمل client.embeddings.create(...) دون تغيير.
POST https://api14.com/api/v1/embeddings
الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
model | string | نعم | معرّف نموذج embeddings، مثل openai/text-embedding-3-small. |
input | string أو string[] | نعم | النص المراد تحويله. مرّر مصفوفة لتحويل عدة مدخلات في طلب واحد. |
dimensions | integer | لا | حجم متجه المخرجات، للنماذج التي تدعم التقصير (مثل text-embedding-3-*). |
encoding_format | string | لا | float (الافتراضي) أو base64. |
user | string | لا | معرّف المستخدم النهائي الخاص بك، يُمرَّر إلى المزوّد. |
provider | object | لا | تفضيلات توجيه المزوّد. راجع توجيه المزوّد. |
مثال
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.embeddings.create({
"model": "openai/text-embedding-3-small",
"input": [
"The quick brown fox",
"Lorem ipsum"
]
});
console.log(result.data.map((d) => d.embedding.length));
الاستجابة
{
"object": "list",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0023, -0.0091, 0.0154, "..."] }
],
"model": "openai/text-embedding-3-small",
"usage": { "prompt_tokens": 8, "total_tokens": 8, "cost": 0.00000016 }
}
يطابق data[i].index موضع المدخل في مصفوفة input لديك.
اختيار النموذج
اعرض نماذج embeddings مع أسعارها دون مفتاح API:
curl https://api14.com/api/v1/embeddings/models
# or, with categories and our prices:
curl "https://api14.com/api/v1/models?category=embeddings"
المتجهات الصادرة من نماذج مختلفة غير قابلة للمقارنة. احفظ معرّف النموذج بجانب كل متجه، وأعد توليد متجهات المجموعة كلها عند تبديل النموذج.
الأسعار
تُحاسَب embeddings لكل رمز إدخال بسعر النموذج المعلن، ويظهر بصيغة "$ / 1M tokens". تكلفة كل طلب تُعاد في usage.cost (بالدولار) وتُخصم من رصيدك. راجع الأسعار والفوترة.
نصائح
- جمّع المدخلات: طلب واحد يحوي 100 سلسلة أسرع، ويُحتسب طلبًا واحدًا ضمن حد الطلبات.
- أبقِ كل مدخل أقل من طول سياق النموذج، فالنص الأطول يرفضه المزوّد.
- طبّع المتجهات (معظم النماذج تُعيدها بطول وحدة أصلًا) واستخدم تشابه جيب التمام (cosine similarity).
الأخطاء
| الحالة | الرمز | متى يحدث |
|---|---|---|
| 400 | model_required / invalid_json | model مفقود أو الجسم ليس كائن JSON. |
| 401 | invalid_api_key | المفتاح مفقود أو غير صالح. |
| 402 | insufficient_balance | رصيدك بالدولار يساوي 0. |
| 403 | model_not_allowed | قائمة النماذج المسموح بها للمفتاح لا تتضمن هذا النموذج. |
| 404 | model_not_found | معرّف نموذج غير معروف أو معطّل. |
| 429 | rate_limited | تجاوز عدد الطلبات في الدقيقة. |
القائمة الكاملة: الأخطاء.