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 တစ်ခု ရရှိမည်။

  1. https://platform.clevi.net/account/login တွင် အကောင့်ဝင်ပါ သို့မဟုတ် အကောင့်ဖန်တီးပါ။
  2. https://clevi.app/cloud တွင် workspace တစ်ခု ထည့်ပါ။
  3. https://clevi.app/cloud/keys သို့ သွားပါ။
  4. key အသစ်တစ်ခု ရယူပြီး တန်ဖိုးကို ကူးယူပါ။
  5. ကူးယူထားသော တန်ဖိုးကို 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-im360B256K64Kရည်မှန်းချက်နှင့် နယ်ပယ် ရှင်းလင်းသော အလုပ်များ။ တုံ့ပြန်မှုမြန်နှုန်းနှင့် လုပ်ဆောင်နိုင်စွမ်းကို ဦးစားပေးသည်။
cip-5.5-mm800B512K64Kအချက်အလက်နှင့် အခြေအနေများစွာကို ပေါင်းစပ်သုံးသပ်ရသည့် ရှုပ်ထွေးသော အလုပ်များ။ ရှည်လျားသော 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 တန်ဖိုးကို ဦးစားပေးအသုံးပြုသည်။

တောင်းဆိုမှု ပါရာမီတာများ
အမည်ဖော်မတ်လိုအပ်သည်ဖော်ပြချက်
modelstringဟုတ်သည်cip-5.5-im သို့မဟုတ် cip-5.5-mm
messagesarrayဟုတ်သည်စကားဝိုင်း မက်ဆေ့ချ်အရာဝတ္ထုများ၏ အခင်းအကျင်း။ အနည်းဆုံး ၁ ခု
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 အခြေအနေကုဒ်ဖြင့် အကြောင်းရင်းကို အသိပေးပါသည်။ upstream က 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 ခေါင်းစီး ထည့်ထားပါက ဆက်သွယ်မေးမြန်းသည့်အခါ ထိုတန်ဖိုးဖြင့် ခြေရာခံနိုင်ပါသည်။ မပေးပို့ပါက ဆာဗာက ထုတ်ပေးပါသည်။

နောက်တစ်ဆင့်

မော်ဒယ်အမည်နှင့် ပါရာမီတာများကို ပြောင်းလဲကာ ရလဒ်များကို နှိုင်းယှဉ်ခြင်းကို playground တွင် ပြုလုပ်ပါသည်။ ကီးအသစ်ဖန်တီးခြင်း သို့မဟုတ် ရုပ်သိမ်းခြင်းကို API ကီးစာမျက်နှာတွင် ပြုလုပ်ပါသည်။ ဆက်လက်ဖတ်ရှုရန် စာရွက်စာတမ်းများမှာ အောက်ပါအတိုင်း ဖြစ်ပါသည်။

  • မော်ဒယ်များ: မော်ဒယ်စာရင်းအပြည့်အစုံနှင့် မော်ဒယ်အလိုက် သတ်မှတ်ချက်များ၊ ခွင့်ပြုထားသော ခေါ်ဆိုမှုများ
  • API ခေါ်ဆိုခြင်း: Anthropic နှင့် ကိုက်ညီသော လမ်းကြောင်း၊ embedding နှင့် အသံလမ်းကြောင်း၊ streaming စည်းမျဉ်းများ
  • အမှားကုဒ်များ: အခြေအနေကုဒ်ဇယားအပြည့်အစုံနှင့် ပြန်လည်ကြိုးစားခြင်း စည်းမျဉ်းများ

playground ဖွင့်ရန်

API ကီး စီမံရန်

CLEVI

ဘာသာစကားနှင့် ဒေသ

Bahasa yang diterjemahkan oleh mesin ditandakan. Ketersediaan mengikut pakej laman yang diterbitkan.

ဘာသာစကား ၁၃၆ ခု

အကြံပြုထားသည်

1

အရှေ့အာရှ

7

အရှေ့တောင်အာရှ

11

တောင်အာရှ

18

အလယ်အာရှ

5

အလယ်ပိုင်းအရှေ့တိုင်းနှင့် ကော့ကေးဆပ်စ်

10

အနောက် ဥရောပနှင့် တောင်ဥရောပ

16

ယူနိုက်တက်ကင်းဒမ်းနှင့် အိုင်ယာလန်

4

မြောက် ဥရောပ

10

အလယ်ပိုင်းဥရောပနှင့် ဘော်လကန်

14

အရှေ့ ဥရောပ

5

အရှေ့ အာဖရိက

8

အနောက် အာဖရိကနှင့် အလယ် အာဖရိက

9

အာဖရိက တောင်ပိုင်း

8

အမေရိကန်

5

သမုဒ္ဒရာဒေသ

5