نستخدم ملفات تعريف الارتباط. تُبقيك ملفات تعريف الارتباط وتخزين المتصفح مسجّلًا للدخول وتتذكر تفضيلاتك. وبإذنك نقيس أيضًا كيفية استخدام الموقع. يمكنك في أي وقت. راجع سياسة ملفات تعريف الارتباط.

Chat completions

نقاط النهاية

Chat completions

نقطة النهاية POST /chat/completions بصيغة محادثة OpenAI تعمل مع كل النماذج النصية، مع المعاملات والبث والاستجابة والأخطاء وأمثلة الطلب.

جرّبه في ساحة التجربة

تستخدم نقطة نهاية chat completions صيغة المحادثة الخاصة بـ OpenAI وتعمل مع كل نموذج نصي في الكتالوج: GPT وClaude وGemini وLlama وDeepSeek وMistral ومئات غيرها. يُمرَّر جسم الطلب إلى المزوّد الأصلي دون تغيير. يقتصر دور api14 على التحقق من مفتاحك والنموذج والحدود والرصيد، ثم تسجيل الاستخدام عند انتهاء الطلب.

POST https://api14.com/api/v1/chat/completions
Authorization: Bearer sk-api14-...
Content-Type: application/json

الطلب

المعاملالنوعالوصف
modelstring، إلزاميمعرّف النموذج، مثل anthropic/claude-sonnet-4.5. المتغيّرات مثل :online أو :nitro مسموح بها. راجع معرّفات النماذج.
messagesarray، إلزاميالمحادثة على شكل كائنات { role, content }. الأدوار: system وdeveloper وuser وassistant وtool.
modelsstring[]نماذج احتياطية تُجرَّب بالترتيب إذا فشل النموذج الأول. راجع توجيه المزوّدين.
streambooleanبثّ الـ tokens كأحداث server-sent events. راجع Streaming.
max_tokens / max_completion_tokensintegerالحد الأعلى للـ tokens المولَّدة.
temperaturenumberدرجة حرارة أخذ العيّنات، عادةً 0–2.
top_p, top_k, min_p, top_anumberعناصر تحكم أخرى في أخذ العيّنات. تتجاهلها النماذج التي لا تدعمها.
frequency_penalty, presence_penalty, repetition_penaltynumberعناصر التحكم في التكرار.
stopstring | string[]تسلسلات الإيقاف.
seedintegerأخذ عيّنات حتمي قدر الإمكان.
logprobs, top_logprobsboolean, integerإرجاع لوغاريتمات احتمالات الـ tokens عندما يدعمها النموذج.
tools, tool_choice, parallel_tool_callsاستدعاء الدوال. راجع استدعاء الأدوات.
response_formatobjectوضع JSON أو مخرجات وفق JSON Schema. راجع المخرجات المهيكلة.
reasoning, include_reasoningobject, booleanعناصر التحكم في التفكير. راجع الاستدلال.
plugins, web_search_optionsالبحث على الويب. راجع البحث على الويب.
providerobjectتفضيلات المزوّد الأصلي. راجع توجيه المزوّدين.
modalitiesstring[]مثل ["image", "text"] لمخرجات الصور، أو ["text", "audio"] لمخرجات الصوت.
predictionobjectمخرجات متوقعة ({ type: "content", content }) لتقليل زمن الاستجابة عند التعديلات.
transformsstring[]مثل ["middle-out"] لضغط الـ prompts التي تتجاوز نافذة السياق.
userstringمعرّف المستخدم النهائي الخاص بك.

يمكن أن يكون content في الرسالة نصًا أو مصفوفة من أجزاء المحتوى (text وimage_url وfile وinput_audio). راجع الرؤية والملفات.

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);

الاستجابة

{
  "id": "gen-1760000000-abc123",
  "object": "chat.completion",
  "created": 1760000000,
  "model": "anthropic/claude-sonnet-4.5",
  "provider": "Anthropic",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": { "role": "assistant", "content": "Hello! How can I help you today?" }
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 9,
    "total_tokens": 21,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 },
    "cost": 0.000171
  }
}

usage.cost هو تكلفة الطلب بالدولار الأمريكي. يخصمها api14 من رصيدك بعد انتهاء الطلب. أما id فهو معرّف عملية التوليد، ويمكنك الاستعلام عنه لاحقًا عبر الاستعلام عن عملية توليد.

ملاحظات حول الفوترة

  • تدفع السعر المُعلَن للنموذج؛ وتُعاد قيمة الرسوم في usage.cost. راجع الأسعار والفوترة.
  • لا تُحتسب عليك الطلبات الفاشلة (أي رمز حالة 4xx أو 5xx).
  • إذا تضمّن الطلب models: [...]، فيجب أن يكون كل نموذج احتياطي مسموحًا به لمفتاحك وخطتك، وإلا رفضت البوابة الطلب قبل إرساله إلى المزوّد الأصلي.

الأخطاء

الحالةالرمزمتى
400model_requiredالحقل model مفقود.
400invalid_jsonجسم الطلب ليس كائن JSON.
401invalid_api_keyالمفتاح مفقود أو غير صالح أو ملغى.
402insufficient_balanceرصيدك بالدولار يساوي $0.
403model_not_allowed / plan_requiredقائمة النماذج المسموح بها لمفتاحك أو خطتك لا تشمل هذا النموذج.
404model_not_foundمعرّف نموذج غير معروف أو معطَّل.
413payload_too_largeحجم جسم الطلب أكبر من 25 MB.
429rate_limited / daily_limit_reachedتم بلوغ حد RPM أو الحد اليومي بالدولار للمفتاح.
502upstream_unavailableتعذّر الوصول إلى المزوّد الأصلي.

تعود أخطاء المزوّد الأصلي، مثل تجاوز طول السياق أو الإشراف على المحتوى، برمز حالتها الأصلي وبصيغة الخطأ نفسها. راجع الأخطاء.