Artfical AI / API
احصل على مفتاح API افتح tAI
البدء

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

POST /v1/chat/completions هي نقطة النهاية الوحيدة التي تقوم بكل شيء: أسئلة بدورة واحدة، ومحادثات متعددة الأدوار، واستدعاء أدوات، وإدخال صور، حاجبة كانت أم متدفقة (streamed).

الطلب

POST https://api.artfical.com/v1/chat/completions
Authorization: Bearer tai-sk-...
Content-Type: application/json
الحقلالنوعمطلوبالوصف
modelstringنعمأحد معرّفات النماذج المدرجة في صفحة النماذج، مثل "tai-4.1". تُرفض القيمة غير المعروفة بخطأ 400 قبل أن يبدأ أي توليد.
messagesarrayنعمالمحادثة حتى الآن، الأقدم أولاً. راجع الرسائل أدناه لمعرفة شكل كل إدخال.
streambooleanلاالقيمة الافتراضية false. عندما تكون true، تكون الاستجابة تدفق أحداث من جانب الخادم (server-sent events) بدلاً من جسم JSON واحد؛ راجع البث.
toolsarrayلاتعريفات أدوات دالّة بشكل OpenAI قد يختار النموذج استدعاءها. راجع استدعاء الأدوات.
temperature, top_p, presence_penalty, frequency_penalty, seed, stopمتنوعلاضوابط أخذ العينات، تُمرَّر كما أُرسلت. راجع معاملات أخذ العينات للنطاقات المقبولة.

الرسائل

لكل إدخال في messages حقل role وحقل content. يُعترف بأربعة أدوار:

الدورالمعنى
systemتعليمات خلفية للمحادثة. إذا وُجدت أكثر من رسالة system واحدة، تُدمج معًا بالترتيب. لا تتجاوز رسالة النظام أبدًا هوية tAI الأساسية وقواعد سلوكه؛ فهي تضيف إلى سياق المحادثة، لا إلى ما هو tAI في جوهره.
userشيء يقوله الشخص (أو تطبيقك، نيابة عنه).
assistantرد سابق من النموذج. أدرج رسائل assistant السابقة عند إرسال سجل المحادثة حتى يحصل النموذج على تبادل الحديث كاملاً، لا آخر رسالة مستخدم فقط. يمكن لرسالة assistant أن تحمل أيضًا tool_calls؛ راجع استدعاء الأدوات.
toolنتيجة استدعاء أداة نفّذه الكود الخاص بك، مرتبطة بالاستدعاء عبر tool_call_id. راجع استدعاء الأدوات.

لدور نصي بسيط، يكون content مجرد سلسلة نصية:

{"role": "user", "content": "İstanbul'da bugün hava nasıl olur sence?"}

لتضمين صورة إلى جانب النص، يصبح content مصفوفة من أجزاء مصنّفة بدلاً من سلسلة نصية بسيطة؛ راجع الصور لمعرفة الشكل الدقيق وأي النماذج تقبله.

الاستجابة (غير المتدفقة)

مع "stream": false (الافتراضي)، تكون الاستجابة كائن JSON واحد، يُعاد مرة واحدة عند اكتمال التوليد:

{
  "id": "chatcmpl-817c002145ac47feb83a0006c58ff43b",
  "object": "chat.completion",
  "created": 1788961617,
  "model": "tai-4.1",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Merhaba! Ben tAI, size nasıl yardımcı olabilirim?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1303,
    "completion_tokens": 232,
    "total_tokens": 1535
  }
}
الحقلالوصف
idمعرّف فريد لهذا الإكمال، ببادئة chatcmpl-.
choicesدائمًا إدخال واحد بالضبط (بالفهرس 0). لا يدعم tAI طلب عدة إكمالات مرشحة من طلب واحد.
choices[].finish_reason"stop" لرد مكتمل عادي، أو "tool_calls" عندما يطلب النموذج استدعاء أداة واحدة أو أكثر بدلاً من الرد مباشرة. راجع استدعاء الأدوات.
usageعدد الرموز (tokens) لهذا الطلب. يعكس completion_tokens ما ولّده النموذج فعليًا بصرف النظر عن أي سقف من نوع max_tokens.

محادثة كاملة

أدرج السجل بأكمله مع كل طلب؛ فالـ API عديم الحالة (stateless) ولا يحتفظ بأي ذاكرة للاستدعاءات السابقة من تلقاء نفسه. يقف كل طلب مستقلاً بالسياق الذي أرسلته له بالضبط.

{
  "model": "tai-4.1",
  "messages": [
    {"role": "system", "content": "Kısa ve net cevaplar ver."},
    {"role": "user", "content": "3 çarpı 4 kaç eder?"},
    {"role": "assistant", "content": "12."},
    {"role": "user", "content": "Peki onu 2'ye böl."}
  ]
}

طول الاستجابة

لا يوجد حاليًا سقف قابل للضبط من جانب العميل لعدد الرموز التي يمكن أن تحتويها الاستجابة؛ لكل نموذج سقفه الداخلي الخاص المضبوط لذلك النموذج. إذا احتجت إلى أن يفشل الطلب بسرعة بدلاً من أن يطول، فأكثر الوسائل موثوقية هي تسلسلات stop (راجع معاملات أخذ العينات) أو ببساطة طلب الإيجاز في الطلب النصي نفسه.