Developer guide
விரைவான தொடக்கம்
விரைவான தொடக்கம்
இந்த ஆவணம் CLEVI API விசையைப் பெற்று, முதல் கோரிக்கையை அனுப்பி, பதிலைப் பெறுவது வரை உள்ள செயல்முறையை விளக்குகிறது. ஒரு URL மற்றும் ஒரு விசையைப் பயன்படுத்தி cip-5.5-im மற்றும் cip-5.5-mm ஐ அழைக்கலாம். கோரிக்கையும் பதிலும் OpenAI Chat Completions வடிவமைப்பைப் பின்பற்றுவதால், நீங்கள் ஏற்கனவே பயன்படுத்தும் OpenAI SDK-யில் base_url மற்றும் api_key ஆகிய இரண்டு மதிப்புகளை மட்டும் மாற்றினால் போதும். Anthropic SDK-க்கான பாதையும், embedding மற்றும் குரல் பாதைகளும் 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 புலத்தில் கீழே உள்ள பெயர்களை அப்படியே உள்ளிடவும். இரண்டு மாதிரிகளும் ஒரே URL மற்றும் ஒரே கோரிக்கை வடிவமைப்பைப் பயன்படுத்துகின்றன; உரை மற்றும் படங்களை உள்ளீடாக ஏற்கின்றன.
- 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 | அப்ஸ்ட்ரீம் வழங்குநர் வேக வரம்பை விதித்துள்ளார் | 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-இணக்கமான பாதை, உட்பொதித்தல்·குரல் பாதைகள் மற்றும் ஸ்ட்ரீமிங் விதிகள்
- பிழைக் குறியீடுகள்: அனைத்து நிலைக் குறியீடுகளின் அட்டவணை மற்றும் மீண்டும் முயற்சிக்கும் விதிகள்