Developer guide

فوری آغاز

فوری آغاز

یہ دستاویز CLEVI API کلید حاصل کرنے، پہلی درخواست بھیجنے اور جواب موصول کرنے کے مراحل کا احاطہ کرتی ہے۔ ایک URL اور ایک کلید کے ذریعے cip-5.5-im اور cip-5.5-mm کو کال کریں۔ درخواست اور جواب OpenAI Chat Completions فارمیٹ کی پیروی کرتے ہیں، اس لیے آپ کو اپنے موجودہ OpenAI SDK میں صرف base_url اور api_key کی دو قدریں تبدیل کرنی ہوں گی۔ Anthropic SDK کے راستے اور ایمبیڈنگ و صوتی راستے API کال کرنے کی دستاویز میں موجود ہیں۔

API کلید حاصل کرنا

کلید CLEVI Cloud کنسول کے API کلید صفحے سے حاصل کریں۔ اسی صفحے سے کلید منسوخ اور اس کے استعمال کا دائرہ کار منظم بھی کیا جا سکتا ہے۔ نیچے دیے گئے مراحل پر عمل کرنے سے آپ کو درخواستوں کے لیے ایک کلید مل جائے گی۔

  1. https://platform.clevi.net/account/login پر لاگ اِن کریں یا اکاؤنٹ بنائیں۔
  2. https://clevi.app/cloud پر ورک اسپیس شامل کریں۔
  3. https://clevi.app/cloud/keys پر جائیں۔
  4. نئی کلید حاصل کریں اور اس کی قدر کاپی کریں۔
  5. کاپی کی گئی قدر کو ماحولیاتی متغیر میں محفوظ کریں۔

اس دستاویز کی مثالوں میں sk-... کی جگہ حاصل کی گئی کلید درج کریں۔ نیچے دی گئی کمانڈ کے ذریعے اسے ماحولیاتی متغیر میں محفوظ کرنے سے آپ بعد کی مثالوں کو جوں کا توں کاپی کرکے چلا سکیں گے۔

export CLEVI_API_KEY="sk-..."

ماڈل منتخب کریں

درخواست کے body کے model فیلڈ میں نیچے دیے گئے نام جوں کے توں درج کریں۔ دونوں ماڈل ایک ہی URL اور درخواست کا ایک ہی فارمیٹ استعمال کرتے ہیں، اور متن و تصاویر کو بطور input قبول کرتے ہیں۔

  • cip-5.5-im
  • cip-5.5-mm
ماڈل IDپیمانہinput کی حدزیادہ سے زیادہ outputموزوں کام
cip-5.5-im360B256K64Kواضح اہداف اور دائرہ کار والے کام۔ جواب کی رفتار اور throughput کو ترجیح دیتے ہیں۔
cip-5.5-mm800B512K64Kمتعدد مواد اور شرائط کو یکجا کرنے والے پیچیدہ کام۔ طویل سیاق و سباق کے تجزیے اور کثیر مرحلہ ایجنٹس کے لیے استعمال کریں۔

آپ کے اکاؤنٹ سے واقعی کال کیے جا سکنے والے ماڈلز کی بنیاد پلے گراؤنڈ میں موجود ماڈلز کی فہرست اور GET /models کے جواب پر ہے۔ مکمل ماڈل فہرست اور ہر ماڈل کے لیے مجاز کالز ماڈل دستاویز میں، جبکہ متوقع طور پر منہا ہونے والے کریڈٹس کنسول کے استعمال کے صفحے پر موجود ہیں۔

POST /api/v2/aiservice/openai/v1/chat/completions

پیغامات کی صف اور ماڈل کا نام لے کر، ماڈل کے تیار کردہ پیغام کو choices کی صف میں شامل کر کے واپس کرتا ہے۔ مکمل پتہ https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions ہے۔ درخواست کا باڈی application/json ہے، اور تصدیق کے لیے Authorization ہیڈر میں Bearer سابقہ اور کلید شامل کریں۔ آپ X-API-Key ہیڈر کے ذریعے بھی کلید بھیج سکتے ہیں، اور اگر دونوں ہیڈرز متعین کیے جائیں تو X-API-Key کی قدر کو ترجیح دی جائے گی۔

درخواست کے پیرامیٹرز
نامقسملازمیوضاحت
modelstringہاںcip-5.5-im یا cip-5.5-mm
messagesarrayہاںگفتگو کے پیغام آبجیکٹس کی صف۔ کم از کم 1
messages[].rolestringہاںsystem · user · assistant میں سے ایک
messages[].contentstringہاںپیغام کا متن
streambooleanنہیںtrue ہونے پر جواب کو Server-Sent Events کے حصوں میں تقسیم کر کے وصول کرتا ہے
max_tokensintegerنہیںجواب میں تیار کیے جانے والے ٹوکنز کی زیادہ سے زیادہ تعداد
temperaturenumberنہیںقدر جتنی زیادہ ہو گی، اسی درخواست پر مختلف جواب آنے کا امکان اتنا ہی زیادہ ہو گا
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions \
  -H "Authorization: Bearer $CLEVI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cip-5.5-im",
    "messages": [
      {"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}
    ]
  }'
import os
import requests

url = "https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions"

response = requests.post(
    url,
    headers={"Authorization": f"Bearer {os.environ['CLEVI_API_KEY']}"},
    json={
        "model": "cip-5.5-im",
        "messages": [{"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}],
    },
    timeout=60,
)

print(response.json()["choices"][0]["message"]["content"])
const url =
  "https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions";

const response = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CLEVI_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "cip-5.5-im",
    messages: [{ role: "user", content: "CLEVI API를 한 문장으로 설명해 줘." }],
  }),
});

const data = await response.json();
console.log(data.choices[0].message.content);

یہ جواب کی ایک مثال ہے۔ id، created اور usage کی قدریں ہر درخواست کے ساتھ مختلف ہوتی ہیں۔

{
  "id": "chatcmpl-3f0a9c72",
  "object": "chat.completion",
  "created": 1755500000,
  "model": "cip-5.5-im",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "CLEVI API는 주소 하나로 여러 모델을 호출하는 채팅 완료 API입니다."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 19,
    "total_tokens": 40
  }
}

OpenAI SDK کے ذریعے کال کرنا

OpenAI SDK کے base_url کو https://platform.clevi.net/api/v2/aiservice/openai/v1 میں تبدیل کریں اور api_key میں CLEVI کلید درج کریں۔ باقی کال کا کوڈ جوں کا توں رہنے دیں۔

# pip install openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["CLEVI_API_KEY"],
    base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)

completion = client.chat.completions.create(
    model="cip-5.5-mm",
    messages=[{"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}],
)

print(completion.choices[0].message.content)
// npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.CLEVI_API_KEY,
  baseURL: "https://platform.clevi.net/api/v2/aiservice/openai/v1",
});

const completion = await client.chat.completions.create({
  model: "cip-5.5-mm",
  messages: [{ role: "user", content: "CLEVI API를 한 문장으로 설명해 줘." }],
});

console.log(completion.choices[0].message.content);

اسٹریمنگ کے ذریعے وصول کرنا

درخواست کے باڈی میں stream کو true پر سیٹ کرنے سے سرور Server-Sent Events کے ذریعے جواب دیتا ہے۔ پہلے حصے کے ساتھ Content-Type: text/event-stream، Cache-Control: no-cache، X-Accel-Buffering: no ہیڈرز بھیجے جاتے ہیں، اور اس کے بعد ہر حصے میں data: لائن میں chat.completion.chunk آبجیکٹ شامل ہوتا ہے۔ آخری لائن data: [DONE] ہے۔ ذیل کی Python اور TypeScript مثالیں پچھلے حصے میں بنائے گئے client کو جوں کا توں استعمال کرتی ہیں۔

curl -N https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions \
  -H "Authorization: Bearer $CLEVI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cip-5.5-im",
    "messages": [{"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}],
    "stream": true
  }'
stream = client.chat.completions.create(
    model="cip-5.5-im",
    messages=[{"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="")
const stream = await client.chat.completions.create({
  model: "cip-5.5-im",
  messages: [{ role: "user", content: "CLEVI API를 한 문장으로 설명해 줘." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

یہ حصے کی ایک مثال ہے۔

data: {"id":"chatcmpl-3f0a9c72","object":"chat.completion.chunk","model":"cip-5.5-im","choices":[{"index":0,"delta":{"content":"CLEVI"},"finish_reason":null}]}

data: {"id":"chatcmpl-3f0a9c72","object":"chat.completion.chunk","model":"cip-5.5-im","choices":[{"index":0,"delta":{"content":" API는"},"finish_reason":null}]}

data: {"id":"chatcmpl-3f0a9c72","object":"chat.completion.chunk","model":"cip-5.5-im","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

اسٹریمنگ کے دوران خرابی پیش آنے پر وہی خرابی JSON ایک data: لائن میں آتا ہے اور HTTP اسٹیٹس کوڈ بھی تبدیل ہو جاتا ہے۔

خرابی

ناکام درخواستیں HTTP اسٹیٹس کوڈ کے ذریعے وجہ بتاتی ہیں۔ اگر اپ اسٹریم 4xx·5xx واپس کرے تو وہی کوڈ جوں کا توں منتقل کیا جاتا ہے۔ پہلے ذیل کے جدول میں دی گئی کارروائی دیکھیں، اور اگر وہی کوڈ بار بار آئے تو درخواست کا وقت، بھیجا گیا باڈی، اور X-Request-Id محفوظ کر لیں۔

HTTP اسٹیٹس کوڈ
کوڈمطلبکارروائی
400درخواست کا متن مقررہ فارمیٹ کے مطابق نہیں ہےچیک کریں کہ model اور messages موجود ہیں اور JSON بند ہے
401کلید موجود نہیں ہے یا میعاد ختم ہو چکی یا منسوخ کی گئی کلید ہےAPI کلید کے صفحے پر کلید کی حالت چیک کریں، اور دیکھیں کہ Authorization ہیڈر Bearer سے شروع ہوتا ہے
403ماڈل تک رسائی کی اجازت نہیں ہے، استعمال کی حد سے تجاوز ہو گیا ہے، یا کریڈٹ ناکافی ہیںوجہ جاننے کے لیے error.message چیک کریں۔ حدیں جائزہ کے مختص کردہ استعمال کی حدود میں، جبکہ بیلنس اور پلان پلان اور کریڈٹس میں دیکھیں
404ماڈل موجود نہیں ہے، اس کلید سے اس تک رسائی ممکن نہیں ہے، یا راستہ موجود نہیں ہےچیک کریں کہ GET /models کے جواب میں ماڈل کا نام موجود ہے اور پتہ /api/v2/aiservice/openai/v1/chat/completions پر ختم ہوتا ہے
429اپ اسٹریم فراہم کنندہ نے رفتار کی حد عائد کر دی ہےاگر Retry-After ہیڈر موجود ہو تو اتنے وقت تک انتظار کریں، اور اگر موجود نہ ہو تو دوبارہ کوشش کا وقفہ ہر بار دوگنا کر کے دوبارہ بھیجیں
5xxگیٹ وے یا اپ اسٹریم کی عارضی خرابی ہےدوبارہ کوشش کا وقفہ ہر بار دوگنا کر کے دوبارہ بھیجیں، اور اگر مسئلہ برقرار رہے تو مدد اور رابطہ کے ذریعے X-Request-Id کے ساتھ اطلاع دیں

402 واپس نہیں کیا جاتا۔ کریڈٹ کی کمی اور استعمال کی حد سے تجاوز 403 کے طور پر آتے ہیں۔ خرابی کا متن ذیل کے فارمیٹ میں ہوتا ہے، اور وجہ error.message میں شامل ہوتی ہے۔

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

اگر آپ درخواست میں X-Request-Id ہیڈر شامل کریں تو رابطہ کرتے وقت اسی قدر کے ذریعے ٹریک کیا جا سکتا ہے۔ اگر نہ بھیجیں تو سرور اسے جاری کرتا ہے۔

اگلے مراحل

ماڈل کے نام اور پیرامیٹرز تبدیل کر کے نتائج کا موازنہ پلی گراؤنڈ میں کریں۔ نئی کلید بنانا یا کلید منسوخ کرنا API کلید کے صفحے پر کریں۔ مزید پڑھنے کے لیے دستاویزات یہ ہیں۔

  • ماڈلز: ماڈلز کی مکمل فہرست، ہر ماڈل کی تفصیلات، اور مجاز کالز
  • API کال کرنا: Anthropic سے مطابقت رکھنے والے راستے، ایمبیڈنگ اور آواز کے راستے، اسٹریمنگ کے قواعد
  • خرابی کے کوڈز: تمام اسٹیٹس کوڈز کی جدول اور دوبارہ کوشش کے قواعد

پلی گراؤنڈ کھولیں

API کلیدوں کا نظم کریں

زبان اور علاقہ

مشینی طور پر ترجمہ کی گئی زبانوں کا ترجمہ clevi/cip-5.5-im کے ذریعے کیا جاتا ہے اور انہیں اسی طور پر نشان زد کیا جاتا ہے۔ یہ ان زبانوں پر لاگو ہوتا ہے جن کی سائٹ بنڈل شائع کی گئی ہے۔

137 زبانیں

تجویز کردہ

1

مشرقی ایشیا

7

جنوب مشرقی ایشیا

11

جنوبی ایشیا

18

وسطی ایشیا

5

مشرق وسطیٰ اور قفقاز

10

مغربی یورپ اور جنوبی یورپ

17

سلطنت متحدہ اور آئرلینڈ

4

شمالی یورپ

10

وسطی یورپ اور بلقان

14

مشرقی یورپ

5

مشرقی افریقہ

8

مغربی افریقہ اور وسطی افریقہ

9

جنوبی افریقہ کا علاقہ

8

امیریکاز

5

اوشیانیا

5