Developer guide
त्वरित शुरुआत
त्वरित शुरुआत
ई दस्तावेज CLEVI API कुंजी प्राप्त कऽ पहिल अनुरोध पठेबाक आ उत्तर पाबि धरि के प्रक्रिया बतबैत अछि। एकटा पता आ एकटा कुंजी सँ cip-5.5-im आ cip-5.5-mm केँ कॉल कएल जाइत अछि। अनुरोध आ उत्तर OpenAI Chat Completions प्रारूपक पालन करैत अछि, तें अपन उपयोगमे रहल OpenAI SDK मे base_url आ api_key ई दूटा मान मात्र बदलनाइ पर्याप्त अछि। Anthropic SDK लेल पथ आ एम्बेडिंग·आवाजक पथ API कॉल करबाक दस्तावेजमे अछि।
API कुंजी प्राप्त करू
कुंजी CLEVI Cloud कंसोलक API कुंजी पृष्ठ सँ प्राप्त करू। ओहि पृष्ठ सँ कुंजी रद्द कऽ सकैत छी आ उपयोगक दायरा प्रबंधित कऽ सकैत छी। नीचाँ देल क्रम सँ आगू बढ़ला पर अनुरोधमे उपयोग करबाक एकटा कुंजी भेटत।
- https://platform.clevi.net/account/login पर लॉग इन करू अथवा खाता बनाउ।
- https://clevi.app/cloud पर कार्यक्षेत्र जोड़ू।
- https://clevi.app/cloud/keys पर जाउ।
- नव कुंजी प्राप्त कऽ ओकर मान कॉपी करू।
- कॉपी कएल मान केँ वातावरण चरमे सहेजू।
ई दस्तावेजक उदाहरणमे देखाओल sk-... क स्थान पर प्राप्त कएल कुंजी राखू। नीचाँक कमांड सँ एकरा वातावरण चरमे सहेजि देलासँ आगूक उदाहरण सभ जकाँक तैना कॉपी कऽ चला सकैत छी।
export CLEVI_API_KEY="sk-..."मॉडल चुनू
अनुरोधक मुख्य भागक model फ़ील्डमे नीचाँ देल नाम जकाँक तैना राखू। दुनू मॉडल एक्कहि पता आ एक्कहि अनुरोध प्रारूपक उपयोग करैत अछि आ पाठ आ छवि केँ इनपुटक रूपमे ग्रहण करैत अछि।
- cip-5.5-im
- cip-5.5-mm
| मॉडल ID | आकार | इनपुट सीमा | अधिकतम आउटपुट | उपयुक्त काज |
|---|---|---|---|---|
| cip-5.5-im | 360B | 256K | 64K | जाहिमे लक्ष्य आ दायरा स्पष्ट हो। उत्तरक गति आ प्रोसेसिंग क्षमता केँ प्राथमिकता दैत अछि। |
| cip-5.5-mm | 800B | 512K | 64K | बहुतेक सामग्री आ शर्तक समेकन करनिहार जटिल काज। दीर्घ संदर्भ विश्लेषण आ बहु-चरणीय एजेंट लेल उपयोग करू। |
खातामे वास्तवमे कॉल कऽ सकनिहार मॉडल लेल प्लेग्राउंडक मॉडल सूची आ 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 တန်ဖိုးကို ဦးစားပေးအသုံးပြုပါသည်။
| အမည် | ပုံစံ | လိုအပ်သည် | ဖော်ပြချက် |
|---|---|---|---|
| model | string | ဟုတ်သည် | cip-5.5-im သို့မဟုတ် cip-5.5-mm |
| messages | array | ဟုတ်သည် | စကားဝိုင်း မက်ဆေ့ချ်အရာဝတ္ထုများ၏ အခင်းအကျင်း။ အနည်းဆုံး ၁ ခု |
| messages[].role | string | ဟုတ်သည် | system · user · assistant တို့အနက် တစ်ခု |
| messages[].content | string | ဟုတ်သည် | မက်ဆေ့ချ် ကိုယ်ထည် |
| stream | boolean | မဟုတ်ပါ | true ဖြစ်ပါက တုံ့ပြန်မှုကို Server-Sent Events အပိုင်းများအဖြစ် ခွဲ၍ လက်ခံရရှိပါသည် |
| max_tokens | integer | မဟုတ်ပါ | တုံ့ပြန်မှုအဖြစ် ထုတ်လုပ်မည့် အများဆုံး တိုကင်အရေအတွက် |
| temperature | number | မဟုတ်ပါ | တန်ဖိုးကြီးလေလေ တောင်းဆိုမှုတစ်ခုတည်းတွင် မတူညီသော တုံ့ပြန်မှုများ ရရှိနိုင်ခြေ ပိုများလေလေ ဖြစ်ပါသည် |
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 सुरक्षित राख्नुहोस्।
| कोड | अर्थ | उपाय |
|---|---|---|
| 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-संगत मार्ग, एम्बेडिंग आ ध्वनि मार्ग, स्ट्रीमिंगक नियम
- त्रुटि कोड: सम्पूर्ण स्थिति कोडक तालिका आ पुनः प्रयासक नियम
