Developer guide

المصادقة باستخدام مفتاح API

رأس الطلب الذي يتضمن مفتاح API وbase URL المطلوب ضبطه في SDK

تُجري بوابة CLEVI المصادقة على المسارات المتوافقة مع OpenAI والمسارات المتوافقة مع Anthropic باستخدام مفتاح API واحد.
القيمتان اللتان يجب ضبطهما على العميل هما رأس المصادقة الذي يتضمن المفتاح وbase URL الخاص بـ SDK، وتختلف صيغ الرؤوس المسموح بها وbase URL حسب المواصفة.
بعد إكمال الإعداد، يمكنك التحقق فورًا من نجاح المصادقة من خلال الاستعلام عن قائمة النماذج.
تُرجع البوابة 401 عند فشل المصادقة، و403 عند اجتياز المصادقة ولكن عدم استيفاء شروط الصلاحيات أو الحدود.

أصدر مفتاح API من شاشة مفاتيح API في وحدة التحكم. يمكنك أيضًا من الشاشة نفسها إدارة إلغاء المفتاح ونطاق استخدامه.

رأس المصادقة

تضع كلتا المواصفتين مفتاح API في رأس طلب واحد. يمكنك استخدام رأس X-API-Key أو رأس Authorization، وتختلف الصيغة المسموح بها حسب المواصفة.

الرأسمتوافق مع OpenAIمتوافق مع Anthropic
X-API-Key: <키>مسموحمسموح
Authorization: Bearer <키>مسموحمسموح
Authorization: <키> (بدون Bearer)مرفوضمسموح

عند استخدام رأس Authorization في المسار المتوافق مع OpenAI، تكون بادئة Bearer مطلوبة. إذا أرسلت المفتاح وحده من دون البادئة، فسترفض البوابة الطلب.

لا تميّز أسماء الرؤوس بين الأحرف الكبيرة والصغيرة، ولذلك يعمل أيضًا رأس x-api-key الذي يرسله Anthropic SDK كما هو. عند تحديد الرأسين معًا، تُطبّق قيمة X-API-Key أولًا.

base URL

يمكنك استخدام SDK الحالي كما هو بمجرد تغيير base URL إلى العنوان أدناه. يختلف العنوانان في ما إذا كانا يتضمنان /v1، لذا حدّد العنوان المطابق للمواصفة كما هو.

المواصفةbase URLقاعدة المسار
متوافق مع OpenAIhttps://platform.clevi.net/api/v2/aiservice/openai/v1يجب تضمين /v1 في base URL.
متوافق مع Anthropichttps://platform.clevi.net/api/v2/aiservice/anthropicينتهي العنوان قبل /v1، لأن Anthropic SDK يضيف /v1 مباشرةً إلى مسار الطلب.

التحقق من المصادقة

بعد إعداد المفتاح وbase URL، يمكنك التحقق من نجاح المصادقة من خلال الاستعلام عن قائمة النماذج. ينفّذ المثال أدناه الاستعلام نفسه باستخدام curl وOpenAI SDK وAnthropic SDK. استبدل sk-... بالمفتاح الصادر من شاشة مفاتيح API.

عند إجراء الاستعلام باستخدام curl، حدّد المسار الكامل حتى /v1/models في كلا التنسيقين. يستخدم الأمر الأول عنوان X-API-Key في المسار المتوافق مع OpenAI، بينما يستخدم الأمر الثاني عنوان Authorization في المسار المتوافق مع Anthropic.

curl https://platform.clevi.net/api/v2/aiservice/openai/v1/models \
  -H "X-API-Key: sk-..."

curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/models \
  -H "Authorization: Bearer sk-..." \
  -H "anthropic-version: 2023-06-01"

في OpenAI SDK، حدّد عنوانًا يتضمن /v1 في base_url.

from openai import OpenAI

client = OpenAI(
    api_key="sk-...",
    base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)

for model in client.models.list():
    print(model.id)

في Anthropic SDK، حدّد base_url بحيث ينتهي قبل /v1.
تُستخدم للمصادقة قيمة عنوان x-api-key التي يرسلها SDK كما هي.

from anthropic import Anthropic

client = Anthropic(
    api_key="sk-...",
    base_url="https://platform.clevi.net/api/v2/aiservice/anthropic",
)

for model in client.models.list(limit=20).data:
    print(model.id)

في أي من الأمثلة، إذا كانت الاستجابة 200 فهذا يعني نجاح المصادقة، وتتضمن data في الاستجابة قائمة النماذج التي يمكن استدعاؤها باستخدام هذا المفتاح. إذا كانت الاستجابة 401، فتحقّق من السبب بالترتيب الوارد في القسم التالي.

فشل المصادقة

يُرجع النظام 401 عند إرسال مفتاح غير موجود أو منتهي الصلاحية أو ملغى. عند إجراء استدعاء من دون مفتاح في المسار المتوافق مع OpenAI، يُرجع النظام النص التالي، بينما تكون قيمة error.type في المسار المتوافق مع Anthropic هي authentication_error.

{
  "error": {
    "message": "API key is required.",
    "type": "invalid_request_error"
  }
}

عند تلقي 401، تحقّق بالترتيب التالي.

  1. تحقّق من حالة المفتاح في شاشة مفاتيح API. إذا كان المفتاح منتهي الصلاحية أو ملغى، فأصدر مفتاحًا جديدًا.
  2. تحقّق من أن اسم العنوان هو X-API-Key أو Authorization.
  3. إذا كنت تستخدم عنوان Authorization في المسار المتوافق مع OpenAI، فتحقّق من وجود البادئة Bearer.

بعد التعديل، أعد تنفيذ الاستعلام عن قائمة النماذج في قسم التحقق من المصادقة، وتحقّق من وصول الاستجابة 200.

العناوين المستخدمة معًا

جميع العناوين التالية اختيارية. نوصي بتحديد X-Request-Id لتسهيل تتبّع المشكلات.

العنوانالغرضعند حذفه
X-Request-Idمُعرّف لتتبّع الطلبات. يعيد المسار المتوافق مع Anthropic القيمة نفسها في ترويسة request-id للاستجابة.يُصدره الخادم.
X-Region-Codeيحدد منطقة الاستدعاء.القيمة هي global.
X-Product-Sku (يمكن تحديده أيضًا باستخدام product_sku في الاستعلام)يحدد Product SKU المستخدم للفوترة مباشرةً. تكون أولوية الترويسة أعلى من أولوية الاستعلام، ويُستخدم أساسًا في مسارات الصوت والصوتيات.لا يمكن حذفه في مسارات الصوتيات. يختار audio/speech وaudio/transcriptions الـ Product باستخدام model في نص الطلب.
anthropic-version / anthropic-betaيُمرَّر كما هو في المسار المتوافق مع Anthropic.الإصدار هو 2023-06-01.

إذا تكررت أخطاء 5xx، فأبلغنا عبر المساعدة والتواصل، مع X-Request-Id. وإذا كانت القيمة محددة مباشرةً، فيمكن مطابقتها فورًا مع سجلات العميل.

اللغة والمنطقة

تُترجم اللغات المترجمة آليًا بواسطة clevi/cip-5.5-im ويُشار إليها على هذا النحو. ينطبق ذلك على اللغات التي تتوفر لها حزمة موقع منشورة.

137 لغة

موصى به

1

شرق آسيا

7

جنوب شرق آسيا

11

جنوب آسيا

18

وسط آسيا

5

الشرق الأوسط والقوقاز

10

غرب أوروبا وجنوب أوروبا

17

المملكة المتحدة وأيرلندا

4

شمال أوروبا

10

أوروبا الوسطى والبلقان

14

شرق أوروبا

5

شرق أفريقيا

8

غرب أفريقيا ووسط أفريقيا

9

أفريقيا الجنوبية

8

الأمريكتان

5

أوقيانوسيا

5