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-..."

मॉडेल निवडणे

विनंतीच्या मुख्य भागातील model फील्डमध्ये खालील नावे जशीच्या तशी भरा. दोन्ही मॉडेल्स एकच URL आणि एकच विनंती फॉरमॅट वापरतात आणि मजकूर व प्रतिमा इनपुट म्हणून स्वीकारतात.

  • cip-5.5-im
  • cip-5.5-mm
मॉडेल IDआकारइनपुट मर्यादाकमाल आउटपुटयोग्य कामे
cip-5.5-im360B256K64Kउद्दिष्टे आणि व्याप्ती स्पष्ट असलेली कामे. प्रतिसादाचा वेग आणि प्रक्रिया क्षमता यांना प्राधान्य दिले जाते.
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

भाषा आणि प्रदेश

यंत्र-अनुवादित भाषांना चिन्हांकित केले आहे. उपलब्धता प्रकाशित साइट बंडलनुसार आहे.

१३६ भाषा

शिफारस केलेले

1

पूर्व आशिया

7

दक्षिण पूर्व आशिया

11

दक्षिण आशिया

18

मध्य आशिया

5

मध्य पूर्व आणि काकेशस

10

पश्चिम युरोप आणि दक्षिण युरोप

16

युनायटेड किंगडम आणि आयर्लंड

4

उत्तर युरोप

10

मध्य युरोप आणि बाल्कन

14

पूर्व युरोप

5

पूर्व आफ्रिका

8

पश्चिम आफ्रिका आणि मध्य आफ्रिका

9

दक्षिणी आफ्रिका

8

अमेरिका

5

ओशनिया

5