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 | ооба | Диалог билдирүүлөрүнүн объекттеринин массиви. Кеминде 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 статус коду аркылуу билдирет. 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 | upstream провайдери ылдамдык чектөөсүн койду | Retry-After баш сабы болсо, көрсөтүлгөн убакытча күтүп, ал жок болсо кайра аракет кылуулардын аралыгын эки эсеге көбөйтүп кайра жөнөтүңүз |
| 5xx | Шлюзда же upstream тарапта убактылуу ката | Кайра аракет кылуулардын аралыгын эки эсеге көбөйтүп кайра жөнөтүңүз, кайталанса, X-Request-Id менен жардам жана байланыш бөлүмдөрү аркылуу кабарлаңыз |
402 кайтарылбайт. Кредиттин жетишсиздиги жана колдонуу чегинен ашуу 403 катары келет. Катанын денеси төмөнкү форматта болот, ал эми себеп error.message ичинде камтылат.
{"error":{"message":"API key is required.","type":"invalid_request_error"}}Суроо-талапка X-Request-Id баш сабын кошсоңуз, байланышканда ошол маани аркылуу көзөмөлдөөгө болот. Жөнөтүлбөсө, аны сервер берет.
Кийинки кадам
Моделдин аталышын жана параметрлерин өзгөртүп, натыйжаларды салыштыруу үчүн Playground колдонуңуз. Ачкычтарды түзүү же жокко чыгаруу API ачкычтары бөлүмүндө жүргүзүлөт. Андан ары окуу үчүн төмөнкү документтерди караңыз.
- Моделдер: моделдердин толук тизмеси, ар бир моделдин спецификациялары жана уруксат берилген чакыруулар
- API чакыруу: Anthropic менен шайкеш жол, эмбеддинг жана үн жолдору, агымдык берүү эрежелери
- Ката коддору: бардык статус коддорунун таблицасы жана кайра аракет кылуу эрежелери
