Developer guide
Шуурхай эхлүүлэх
Шуурхай эхлүүлэх
Энэ баримт бичигт CLEVI API түлхүүр авч, эхний хүсэлтийг илгээж, хариу авах хүртэлх үйл явцыг тайлбарлана. Нэг хаяг болон нэг түлхүүр ашиглан cip-5.5-im болон cip-5.5-mm-г дуудна. Хүсэлт болон хариу нь OpenAI Chat Completions форматыг дагадаг тул ашигладаг OpenAI SDK-д base_url болон api_key гэсэн хоёр утгыг л өөрчлөхөд хангалттай. Anthropic SDK-д зориулсан зам болон embedding·voice замуудыг 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 | Тийм | Харилцан ярианы мессежийн объектуудын массив. Хамгийн багадаа 1 |
| 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-тэй нийцтэй зам, embedding болон дуу хоолойны зам, стримингийн дүрэм
- Алдааны код: Бүх төлөвийн кодын хүснэгт болон дахин оролдох дүрэм
