المظهر
اللغة

إكمالات المحادثة

/v1/chat/completions — نقطة نهاية المحادثة المتوافقة مع OpenAI. المعاملات model و messages و stream و temperature. بثّ SSE. أمثلة على الطلب والاستجابة بـ curl و Python (openai) و Node.

نقطة نهاية المحادثة المتوافقة مع OpenAI. تعمل مع أي OpenAI SDK — ما عليك سوى تغيير base_url إلى https://getvibeapi.com/v1.

POSThttps://getvibeapi.com/v1/chat/completions

معاملات جسم الطلب

يطبّق GetVibe عقدًا متوافقًا مع Chat Completions، لا تمريرًا حرفيًا بايت ببايت: فهو يتحقق من الوصول، ويحلّ معرّف النموذج العام، ويطبّق الحدود، وقد يطبّع حقول الطلب المدعومة. كما تُطبَّع الاستجابات والأخطاء ولا تضمن حقولًا أو ترويسات خاصة بالمزوّد upstream. لمعظم المهام تكفي الثلاثة الأولى — model وmessages وstream.

أساسي — يعمل مع جميع النماذج
المعلمةالنوعالوصف
modelreq.stringاسم نموذج من الكتالوج، على سبيل المثال gpt-6.1-sol أو claude-opus-5.5.
messagesreq.arrayمصفوفة رسائل { role, content }. الأدوار: system، user، assistant.
streambooleantrue — بث الاستجابة عبر SSE.
max_tokensintegerالحد الأقصى للرموز في الاستجابة. نوصي بـ 64 على الأقل: فمع قيمة صغيرة جدًا (مثل ≤ 16) قد يبلغ النموذج الحد (finish_reason: length) قبل أول رمز ظاهر ويعيد استجابة فارغة. إذا أردت نتيجة قصيرة — فاطلبها في التوجيه، واترك مساحة كافية في max_tokens.
temperaturenumberعشوائية الإخراج، من 0 إلى 2. الافتراضي 1.
متقدم — يعتمد الدعم على النموذج
المعلمةالنوعالوصف
top_pnumbermodel-dependentأخذ العينات النووي (0–1). بديل عن temperature؛ ولا يُنصح بتغيير كليهما في الوقت نفسه.
top_knumberClaudeأخذ عينات Top-K. لموديلات Anthropic فقط.
seedintegerGPTيثبّت النتيجة لضمان قابلية إعادة الإنتاج. خاصة بسلسلة GPT؛ وتُتجاهل في غيرها.
stopstring | arraymodel-dependentتسلسل الإيقاف: سلسلة واحدة أو قائمة تضم حتى 4 سلاسل.
frequency_penaltynumberGPT · Claudeعقوبة تكرار الرموز حسب التكرار (-2 إلى 2).
presence_penaltynumberGPT · Claudeعقوبة الرموز التي ظهرت سابقًا (-2 إلى 2).
logprobsboolean—لا يُرجع أي مسار حالي احتمالات لوغاريتمية: تُزال المعلمة قبل الإرسال ويُبلَّغ عنها في ترويسة x-getvibe-warnings (param_dropped:logprobs)؛ ولا يُرفض الطلب.
top_logprobsinteger—تُزال مع logprobs ويُبلَّغ عنها في x-getvibe-warnings.
logit_biasobjectGPTمعرّف الرمز → انحياز اللوغيت (-100 إلى 100).
userstringmodel-dependentمعرّف المستخدم النهائي (يُمرَّر إلى المنبع لتتبّع حدود المعدل).
response_formatobjectGPT · Claudeفرض الإخراج بصيغة JSON. اعرف المزيد ←
tools / tool_choicearray / stringGPT · Claudeاستدعاء الدوال. اعرف المزيد ←

الشارات في عمود «الدعم»: GPT — سلسلة GPT فقط، Claude — نماذج Anthropic فقط، GPT · Claude — العائلتان معًا، يعتمد على النموذج — راجع وثائق ذلك النموذج.

دعم المعلمات حسب متغير المسار

يمكن للنموذج نفسه أن يُخدَم عبر مسارات مختلفة (المتغيّرات :1، :2، …). وتختلف المسارات في السعر والسرعة ومجموعة المعاملات المدعومة.

مقارنة متغيّرات المسارات
المعلمةالنوعالوصف
Default variant (:1)basicمجموعة معاملات OpenAI الكاملة: temperature, top_p, seed, stop, penalties, logprobs, tools, response_format, والبث مع مقطع usage.
Subscription variants (:2, :3…)advancedمجموعة المعاملات تطابق الأساسية، لكن المسار يستخدم بنية تحتية مختلفة. قد تكون بعض المعاملات غير مدعومة — نوضّح ذلك في وصف المتغيّر.
or-* variantsor-*يمرّر الطلب عبر مجمّع منفصل. يعتمد دعم المعاملات على المزوّد المحدد. قد لا يعمل tool_choice: "required" وبعض معاملات المعاينة.
يُتجاهل المعامل غير المعروف من قِبل المزوِّد أو يعيد 400. إذا كان المعامل مهمًا، فاستخدم المتغيّر :1 (الافتراضي) أو تحقّق من الدعم في وصف المتغيّر على صفحة Models.

طلب مثال

curl https://getvibeapi.com/v1/chat/completions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "messages": [
      {"role": "user", "content": "Hello! Who are you?"}
    ]
  }'

استجابة مثال

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "model": "gpt-6.1-sol",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hi! I'm an assistant available through GetVibe API."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 14,
    "total_tokens": 26
  }
}

البث (SSE)

مع "stream": true تأتي الإجابة كتدفّق من Server-Sent Events: أحداث data: … مع الفروقات، وتنتهي بـ data: [DONE].

curl https://getvibeapi.com/v1/chat/completions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "stream": true,
    "messages": [{"role": "user", "content": "Count to three"}]
  }'

الجزء الأخير مع usage

الجزء الأخير قبل data: [DONE] يحمل choices: [] فارغًا وحقل usage يتضمّن إحصاءات الرموز. استخدمه للفوترة — لا تجمع الفروق يدويًا.

data: {"id":"chatcmpl-...","choices":[],"usage":{"prompt_tokens":42,"completion_tokens":87,"total_tokens":129},"model":"gpt-6.1-sol","object":"chat.completion.chunk"}

data: [DONE]

تتضمّن كل استجابة غير بثّية يمكن تقدير تكلفتها ترويسة الاستجابة x-pv-cost-rub. ولا تحتوي أجسام البثّ على pv_cost_rub افتراضيًا؛ أرسل x-pv-cost: 1 لإضافة التكلفة إلى حدث الاستخدام النهائي لذلك البروتوكول. هذا تقدير بأفضل جهد؛ وللاطلاع على الخصم الفعلي، راجع سجل الطلبات GET /v1/generations.

التوافق

نقطة النهاية متوافقة مع OpenAI SDKs (Python وNode وغيرها)، ومع Codex CLI وClaude Code. يعمل Claude Code عبر /v1/messages مع ترويسة x-api-key — انظر Messages and Responses.

واجهة Chat Completions من GetVibe — أمثلة بلغة Python وcurl | GetVibe API