إكمالات المحادثة
/v1/chat/completions — نقطة نهاية المحادثة المتوافقة مع OpenAI. المعاملات model و messages و stream و temperature. بثّ SSE. أمثلة على الطلب والاستجابة بـ curl و Python (openai) و Node.
نقطة نهاية المحادثة المتوافقة مع OpenAI. تعمل مع أي OpenAI SDK — ما عليك سوى تغيير base_url إلى https://getvibeapi.com/v1.
معاملات جسم الطلب
يطبّق GetVibe عقدًا متوافقًا مع Chat Completions، لا تمريرًا حرفيًا بايت ببايت: فهو يتحقق من الوصول، ويحلّ معرّف النموذج العام، ويطبّق الحدود، وقد يطبّع حقول الطلب المدعومة. كما تُطبَّع الاستجابات والأخطاء ولا تضمن حقولًا أو ترويسات خاصة بالمزوّد upstream. لمعظم المهام تكفي الثلاثة الأولى — model وmessages وstream.
| المعلمة | النوع | الوصف |
|---|---|---|
modelreq. | string | اسم نموذج من الكتالوج، على سبيل المثال gpt-6.1-sol أو claude-opus-5.5. |
messagesreq. | array | مصفوفة رسائل { role, content }. الأدوار: system، user، assistant. |
stream | boolean | true — بث الاستجابة عبر SSE. |
max_tokens | integer | الحد الأقصى للرموز في الاستجابة. نوصي بـ 64 على الأقل: فمع قيمة صغيرة جدًا (مثل ≤ 16) قد يبلغ النموذج الحد (finish_reason: length) قبل أول رمز ظاهر ويعيد استجابة فارغة. إذا أردت نتيجة قصيرة — فاطلبها في التوجيه، واترك مساحة كافية في max_tokens. |
temperature | number | عشوائية الإخراج، من 0 إلى 2. الافتراضي 1. |
| المعلمة | النوع | الوصف |
|---|---|---|
top_p | numbermodel-dependent | أخذ العينات النووي (0–1). بديل عن temperature؛ ولا يُنصح بتغيير كليهما في الوقت نفسه. |
top_k | numberClaude | أخذ عينات Top-K. لموديلات Anthropic فقط. |
seed | integerGPT | يثبّت النتيجة لضمان قابلية إعادة الإنتاج. خاصة بسلسلة GPT؛ وتُتجاهل في غيرها. |
stop | string | arraymodel-dependent | تسلسل الإيقاف: سلسلة واحدة أو قائمة تضم حتى 4 سلاسل. |
frequency_penalty | numberGPT · Claude | عقوبة تكرار الرموز حسب التكرار (-2 إلى 2). |
presence_penalty | numberGPT · Claude | عقوبة الرموز التي ظهرت سابقًا (-2 إلى 2). |
logprobs | boolean— | لا يُرجع أي مسار حالي احتمالات لوغاريتمية: تُزال المعلمة قبل الإرسال ويُبلَّغ عنها في ترويسة x-getvibe-warnings (param_dropped:logprobs)؛ ولا يُرفض الطلب. |
top_logprobs | integer— | تُزال مع logprobs ويُبلَّغ عنها في x-getvibe-warnings. |
logit_bias | objectGPT | معرّف الرمز → انحياز اللوغيت (-100 إلى 100). |
user | stringmodel-dependent | معرّف المستخدم النهائي (يُمرَّر إلى المنبع لتتبّع حدود المعدل). |
response_format | objectGPT · Claude | فرض الإخراج بصيغة JSON. اعرف المزيد ← |
tools / tool_choice | array / 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-* variants | or-* | يمرّر الطلب عبر مجمّع منفصل. يعتمد دعم المعاملات على المزوّد المحدد. قد لا يعمل tool_choice: "required" وبعض معاملات المعاينة. |
: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.