Developer guide
المصادقة باستخدام مفتاح API
الرأس الذي يتضمن مفتاح API وعنوان base URL الذي يجب ضبطه في SDK
تتناول هذه الصفحة كيفية المصادقة باستخدام مفتاح API مع بوابة CLEVI.
تتم المصادقة باستخدام مفتاح واحد في كل من المسار المتوافق مع OpenAI والمسار المتوافق مع Anthropic،
لكن نطاق قبول الرأس الذي يتضمن المفتاح وعنوان base URL الذي يجب ضبطه في SDK يختلفان حسب المواصفة.
رأس المصادقة
تتم المصادقة باستخدام مفتاح API واحد في كلتا المواصفتين المتوافقتين. يتم إصدار المفتاح من شاشة مفاتيح API في وحدة التحكم، كما تتم إدارة إلغائه ونطاق استخدامه من الشاشة نفسها.
| الرأس | متوافق مع OpenAI | متوافق مع Anthropic |
|---|---|---|
| X-API-Key: <키> | متاح للاستخدام | متاح للاستخدام |
| Authorization: Bearer <키> | متاح للاستخدام | متاح للاستخدام |
| Authorization: <키> (بدون Bearer) | مرفوض | متاح للاستخدام |
لا تتأثر أسماء الرؤوس بحالة الأحرف. يعمل x-api-key الذي يرسله Anthropic SDK كما هو.
base URL
يمكنك الاستمرار في استخدام SDK الذي كنت تستخدمه بمجرد تغيير base URL إلى العنوان أدناه. يختلف العنوانان في ما إذا كانا يتضمنان /v1.
| المواصفة | base URL | قاعدة المسار |
|---|---|---|
| متوافق مع OpenAI | https://platform.clevi.net/api/v2/aiservice/openai/v1 | يجب تضمين /v1 حتى نهايته في base URL. |
| متوافق مع Anthropic | https://platform.clevi.net/api/v2/aiservice/anthropic | يضيف Anthropic SDK المسار /v1 تلقائيًا، لذا ينتهي العنوان قبل /v1. |
التحقق من المصادقة
يمكنك معرفة ما إذا تمت المصادقة فورًا عن طريق إدخال المفتاح وbase URL والاستعلام عن قائمة النماذج. تنفذ الطرق الثلاث أدناه الاستعلام نفسه باستخدام curl وOpenAI SDK وAnthropic SDK.
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"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)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)ضع المفتاح الصادر من شاشة مفاتيح API مكان sk-....
- إذا كانت الاستجابة 200، فهذا يعني أن المصادقة تمت. تتضمن data قائمة النماذج التي يمكن استدعاؤها باستخدام هذا المفتاح.
- إذا كانت الاستجابة 401، فتحقق بالترتيب الوارد في قسم فشل المصادقة أدناه.
الرأس المستخدم معًا
كلها اختيارية. لتتبّع المشكلة، يُفضّل تضمين 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. |
فشل المصادقة
إذا لم يكن المفتاح موجودًا أو أُرسل مفتاح منتهي الصلاحية أو مُلغى، فستكون النتيجة 401. عند الاستدعاء دون مفتاح في المسارات المتوافقة مع OpenAI، يظهر النص الأساسي أدناه، بينما يكون error.type في المسارات المتوافقة مع Anthropic هو authentication_error.
{
"error": {
"message": "API key is required.",
"type": "invalid_request_error"
}
}- تحقق من حالة المفتاح في شاشة مفاتيح API. إذا كان المفتاح منتهي الصلاحية أو مُلغى، فأصدر مفتاحًا جديدًا.
- تحقق مما إذا كان اسم الرأس هو X-API-Key أو Authorization.
- إذا كنت تستخدم Authorization في المسارات المتوافقة مع OpenAI، فتحقق من بادئة Bearer.
