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 കീ സ്ക്രീനിൽ നിന്നാണ് കീ നേടുന്നത്. അതേ സ്ക്രീനിൽ നിന്ന് കീ റദ്ദാക്കുകയും ഉപയോഗപരിധി നിയന്ത്രിക്കുകയും ചെയ്യാം. താഴെക്കൊടുത്തിരിക്കുന്ന ക്രമം പിന്തുടർന്നാൽ അഭ്യർത്ഥനകൾക്കായി ഉപയോഗിക്കാവുന്ന ഒരു കീ ലഭിക്കും.

  1. https://platform.clevi.net/account/login എന്നതിൽ ലോഗിൻ ചെയ്യുക അല്ലെങ്കിൽ അക്കൗണ്ട് സൃഷ്ടിക്കുക.
  2. https://clevi.app/cloud എന്നതിൽ ഒരു വർക്ക്‌സ്‌പേസ് ചേർക്കുക.
  3. https://clevi.app/cloud/keys എന്നതിലേക്ക് പോകുക.
  4. പുതിയ കീ സൃഷ്ടിച്ച് അതിന്റെ മൂല്യം പകർത്തുക.
  5. പകർത്തിയ മൂല്യം ഒരു പരിസ്ഥിതി വേരിയബിളിൽ സംഭരിക്കുക.

ഈ പ്രമാണത്തിലെ ഉദാഹരണങ്ങളിൽ sk-... എന്ന സ്ഥാനത്ത് നിങ്ങൾ നേടിയ കീ നൽകുക. താഴെക്കൊടുത്തിരിക്കുന്ന കമാൻഡ് ഉപയോഗിച്ച് അത് പരിസ്ഥിതി വേരിയബിളിൽ സംരക്ഷിച്ചാൽ, തുടർന്നുള്ള ഉദാഹരണങ്ങൾ നേരിട്ട് പകർത്തി പ്രവർത്തിപ്പിക്കാം.

export CLEVI_API_KEY="sk-..."

മോഡൽ തിരഞ്ഞെടുക്കൽ

അഭ്യർത്ഥന ബോഡിയിലെ model ഫീൽഡിൽ താഴെക്കൊടുത്തിരിക്കുന്ന പേര് അതേപടി നൽകുക. രണ്ട് മോഡലുകളും ഒരേ വിലാസവും ഒരേ അഭ്യർത്ഥനാ ഫോർമാറ്റും ഉപയോഗിക്കുന്നു, കൂടാതെ ടെക്സ്റ്റും ചിത്രങ്ങളും ഇൻപുട്ടായി സ്വീകരിക്കുന്നു.

  • cip-5.5-im
  • cip-5.5-mm
മോഡൽ IDവലുപ്പംഇൻപുട്ട് പരിധിപരമാവധി ഔട്ട്പുട്ട്അനുയോജ്യമായ ജോലികൾ
cip-5.5-im360B256K64Kലക്ഷ്യവും പരിധിയും വ്യക്തമായ ജോലികൾ. പ്രതികരണ വേഗതയ്ക്കും ത്രൂപുട്ടിനും മുൻഗണന നൽകുന്നു.
cip-5.5-mm800B512K64Kനിരവധി വിവരങ്ങളും നിബന്ധനകളും സംയോജിപ്പിക്കേണ്ട സങ്കീർണ്ണ ജോലികൾ. ദീർഘമായ സന്ദർഭ വിശകലനത്തിനും ബഹുഘട്ട ഏജന്റുകൾക്കുമായി ഉപയോഗിക്കുന്നു.

അക്കൗണ്ടിൽ നിന്ന് യഥാർത്ഥത്തിൽ വിളിക്കാനാകുന്ന മോഡലുകൾ പ്ലേഗ്രൗണ്ടിലെ മോഡൽ പട്ടികയും 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 മൂല്യത്തിനാണ് മുൻഗണന.

അഭ്യർത്ഥനാ പരാമീറ്ററുകൾ
പേര്ഫോർമാറ്റ്ആവശ്യകംവിവരണം
modelstringഅതെcip-5.5-im അല്ലെങ്കിൽ cip-5.5-mm
messagesarrayഅതെസംഭാഷണ സന്ദേശ ഒബ്ജക്റ്റുകളുടെ അറേ. കുറഞ്ഞത് 1 എണ്ണം
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 സ്റ്റാറ്റസ് കോഡ് വഴി കാരണം അറിയിക്കുന്നു. അപ്‌സ്ട്രീം 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 ഹെഡർ ഉൾപ്പെടുത്തിയാൽ ബന്ധപ്പെടുമ്പോൾ ആ മൂല്യം ഉപയോഗിച്ച് ട്രാക്ക് ചെയ്യാം. അയച്ചില്ലെങ്കിൽ സെർവർ അത് സൃഷ്ടിക്കും.

അടുത്ത ഘട്ടം

മോഡലിന്റെ പേരും പാരാമീറ്ററുകളും മാറ്റി ഫലങ്ങൾ താരതമ്യം ചെയ്യുന്നത് പ്ലേഗ്രൗണ്ടിലാണ്. കീകൾ പുതുതായി സൃഷ്ടിക്കുകയോ അസാധുവാക്കുകയോ ചെയ്യുന്നത് API കീ സ്ക്രീനിലാണ്. തുടർന്ന് വായിക്കേണ്ട രേഖകൾ ഇവയാണ്.

  • മോഡലുകൾ: എല്ലാ മോഡലുകളുടെയും പട്ടിക, ഓരോ മോഡലിന്റെയും സവിശേഷതകൾ, അനുവദിച്ച കോളുകൾ
  • API വിളിക്കൽ: Anthropic-അനുയോജ്യമായ പാത, എംബെഡ്ഡിംഗ്·വോയ്സ് പാതകൾ, സ്ട്രീമിംഗ് നിയമങ്ങൾ
  • പിശക് കോഡുകൾ: എല്ലാ സ്റ്റാറ്റസ് കോഡുകളുടെയും പട്ടികയും വീണ്ടും ശ്രമിക്കുന്നതിനുള്ള നിയമങ്ങളും

പ്ലേഗ്രൗണ്ട് തുറക്കുക

API കീകൾ നിയന്ത്രിക്കുക

CLEVI

ഭാഷയും പ്രദേശവും

മെഷീൻ വിവർത്തനം ചെയ്ത ഭാഷകൾ അടയാളപ്പെടുത്തിയിരിക്കുന്നു. ലഭ്യത പ്രസിദ്ധീകരിച്ച സൈറ്റ് ബണ്ടിലിനെ ആശ്രയിച്ചിരിക്കുന്നു.

136 ഭാഷകൾ

ശുപാർശ ചെയ്തത്

1

കിഴക്കൻ ഏഷ്യ

7

തെക്ക്-കിഴക്കൻ ഏഷ്യ

11

തെക്കേ ഏഷ്യ

18

മദ്ധ്യേഷ്യ

5

മധ്യപൂർവ ദേശവും കോക്കസസും

10

പശ്ചിമ യൂറോപ്പ് കൂടാതെ തെക്കേ യൂറോപ്പ്

16

യുണൈറ്റഡ് കിംഗ്ഡം കൂടാതെ അയർലൻഡ്

4

വടക്കേ യൂറോപ്പ്

10

മധ്യ യൂറോപ്പും ബാൽക്കണും

14

കിഴക്കൻ യൂറോപ്പ്

5

കിഴക്കൻ ആഫ്രിക്ക

8

പശ്ചിമ ആഫ്രിക്ക കൂടാതെ മദ്ധ്യ ആഫ്രിക്ക

9

തെക്കേ ആഫ്രിക്ക

8

അമേരിക്കകൾ

5

ഓഷ്യാനിയ

5