Developer guide
လျင်မြန်စွာ စတင်ရန်
လျင်မြန်စွာ စတင်ရန်
ဤစာရွက်စာတမ်းတွင် CLEVI API key ရယူခြင်းမှ ပထမဆုံး request ပေးပို့ပြီး response ရရှိသည်အထိ ဖော်ပြထားသည်။ လိပ်စာတစ်ခုနှင့် key တစ်ခုတည်းဖြင့် cip-5.5-im နှင့် cip-5.5-mm ကို ခေါ်ဆိုနိုင်ပြီး request နှင့် response များသည် OpenAI Chat Completions ဖော်မတ်ကို လိုက်နာသောကြောင့် အသုံးပြုနေကျ OpenAI SDK တွင် base_url နှင့် api_key တန်ဖိုးနှစ်ခုကိုသာ ပြောင်းလဲရန် လိုအပ်သည်။ Anthropic SDK အတွက် လမ်းကြောင်းနှင့် embedding·အသံ လမ်းကြောင်းများကို API ခေါ်ဆိုခြင်း စာရွက်စာတမ်းတွင် တွေ့နိုင်သည်။
API key ရယူခြင်း
CLEVI Cloud console ၏ API key စာမျက်နှာတွင် key ကို ရယူနိုင်သည်။ ထိုစာမျက်နှာတစ်ခုတည်းတွင် key ကို ပယ်ဖျက်ပြီး အသုံးပြုနိုင်သည့် အတိုင်းအတာကို စီမံနိုင်သည်။ အောက်ပါအဆင့်များအတိုင်း လုပ်ဆောင်ပါက request များတွင် အသုံးပြုရန် key တစ်ခု ရရှိမည်။
- https://platform.clevi.net/account/login တွင် အကောင့်ဝင်ပါ သို့မဟုတ် အကောင့်ဖန်တီးပါ။
- https://clevi.app/cloud တွင် workspace တစ်ခု ထည့်ပါ။
- https://clevi.app/cloud/keys သို့ သွားပါ။
- key အသစ်တစ်ခု ရယူပြီး တန်ဖိုးကို ကူးယူပါ။
- ကူးယူထားသော တန်ဖိုးကို environment variable တွင် သိမ်းဆည်းပါ။
ဤစာရွက်စာတမ်းရှိ ဥပမာများတွင် ပါသော sk-... နေရာ၌ ရယူထားသော key ကို ထည့်ပါ။ အောက်ပါ command ဖြင့် environment variable တွင် သိမ်းဆည်းထားပါက နောက်ပိုင်း ဥပမာများကို မူရင်းအတိုင်း ကူးယူပြီး လုပ်ဆောင်နိုင်သည်။
export CLEVI_API_KEY="sk-..."မော်ဒယ်ရွေးချယ်ခြင်း
Request body ၏ model field တွင် အောက်ပါအမည်များကို မူရင်းအတိုင်း ထည့်ပါ။ မော်ဒယ်နှစ်ခုစလုံးသည် တူညီသောလိပ်စာနှင့် တူညီသော request ဖော်မတ်ကို အသုံးပြုပြီး စာသားနှင့် ပုံများကို input အဖြစ် လက်ခံသည်။
- cip-5.5-im
- cip-5.5-mm
| မော်ဒယ် ID | အရွယ်အစား | Input ကန့်သတ်ချက် | အများဆုံး output | သင့်လျော်သည့် အလုပ် |
|---|---|---|---|---|
| cip-5.5-im | 360B | 256K | 64K | ရည်မှန်းချက်နှင့် နယ်ပယ် ရှင်းလင်းသော အလုပ်များ။ တုံ့ပြန်မှုမြန်နှုန်းနှင့် လုပ်ဆောင်နိုင်စွမ်းကို ဦးစားပေးသည်။ |
| cip-5.5-mm | 800B | 512K | 64K | အချက်အလက်နှင့် အခြေအနေများစွာကို ပေါင်းစပ်သုံးသပ်ရသည့် ရှုပ်ထွေးသော အလုပ်များ။ ရှည်လျားသော context ခွဲခြမ်းစိတ်ဖြာမှုနှင့် အဆင့်များစွာပါ agent များအတွက် အသုံးပြုသည်။ |
အကောင့်မှ အမှန်တကယ် ခေါ်ဆိုနိုင်သော မော်ဒယ်များကို Playground ရှိ မော်ဒယ်စာရင်းနှင့် GET /models response က သတ်မှတ်သည်။ မော်ဒယ်စာရင်းအပြည့်အစုံနှင့် မော်ဒယ်တစ်ခုချင်းစီအတွက် ခွင့်ပြုထားသော ခေါ်ဆိုမှုများကို မော်ဒယ်စာရွက်စာတမ်းတွင် တွေ့နိုင်ပြီး၊ ခန့်မှန်းကုန်ကျမည့် credit ပမာဏကို console ၏ အသုံးပြုမှု စာမျက်နှာတွင် ကြည့်နိုင်သည်။
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 အခြေအနေကုဒ်ဖြင့် အကြောင်းရင်းကို အသိပေးပါသည်။ upstream က 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 ခေါင်းစီး ထည့်ထားပါက ဆက်သွယ်မေးမြန်းသည့်အခါ ထိုတန်ဖိုးဖြင့် ခြေရာခံနိုင်ပါသည်။ မပေးပို့ပါက ဆာဗာက ထုတ်ပေးပါသည်။
နောက်တစ်ဆင့်
မော်ဒယ်အမည်နှင့် ပါရာမီတာများကို ပြောင်းလဲကာ ရလဒ်များကို နှိုင်းယှဉ်ခြင်းကို playground တွင် ပြုလုပ်ပါသည်။ ကီးအသစ်ဖန်တီးခြင်း သို့မဟုတ် ရုပ်သိမ်းခြင်းကို API ကီးစာမျက်နှာတွင် ပြုလုပ်ပါသည်။ ဆက်လက်ဖတ်ရှုရန် စာရွက်စာတမ်းများမှာ အောက်ပါအတိုင်း ဖြစ်ပါသည်။
- မော်ဒယ်များ: မော်ဒယ်စာရင်းအပြည့်အစုံနှင့် မော်ဒယ်အလိုက် သတ်မှတ်ချက်များ၊ ခွင့်ပြုထားသော ခေါ်ဆိုမှုများ
- API ခေါ်ဆိုခြင်း: Anthropic နှင့် ကိုက်ညီသော လမ်းကြောင်း၊ embedding နှင့် အသံလမ်းကြောင်း၊ streaming စည်းမျဉ်းများ
- အမှားကုဒ်များ: အခြေအနေကုဒ်ဇယားအပြည့်အစုံနှင့် ပြန်လည်ကြိုးစားခြင်း စည်းမျဉ်းများ
