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 କି ସ୍କ୍ରିନ୍‌ ବ୍ୟବହାର କରନ୍ତୁ। ପରେ ପଢ଼ିବାକୁ ଥିବା ଦଲିଲଗୁଡ଼ିକ ହେଲା।

  • ମଡେଲ୍‌: ସମ୍ପୂର୍ଣ୍ଣ ମଡେଲ୍‌ ତାଲିକା, ପ୍ରତ୍ୟେକ ମଡେଲ୍‌ର ବିବରଣୀ ଏବଂ ଅନୁମୋଦିତ କଲ୍‌
  • API କଲ୍‌ କରିବା: Anthropic ସୁସଙ୍ଗତ ପଥ, ଏମ୍ବେଡିଂ ଓ ଭଏସ୍‌ ପଥ, ଷ୍ଟ୍ରିମିଂ ନିୟମ
  • ତ୍ରୁଟି କୋଡ୍‌: ସମ୍ପୂର୍ଣ୍ଣ ସ୍ଥିତି କୋଡ୍‌ ତାଲିକା ଏବଂ ପୁନଃଚେଷ୍ଟା ନିୟମ

ପ୍ଲେଗ୍ରାଉଣ୍ଡ୍‌ ଖୋଲନ୍ତୁ

API କି ପରିଚାଳନା

ଭାଷା ଏବଂ ଅଞ୍ଚଳ

ମେସିନ୍-ଅନୁବାଦିତ ଭାଷାଗୁଡ଼ିକୁ clevi/cip-5.5-im ଦ୍ୱାରା ଅନୁବାଦ କରାଯାଇଥାଏ ଏବଂ ସେହିଭାବେ ଚିହ୍ନିତ କରାଯାଏ। ଏହା ପ୍ରକାଶିତ ସାଇଟ୍ ବଣ୍ଡଲ୍ ଥିବା ଭାଷାଗୁଡ଼ିକ ପାଇଁ ପ୍ରଯୋଜ୍ୟ।

137 ଭାଷା

ସୁପାରିଶ କରାଯାଇଛି

1

ପୂର୍ବ ଏସିଆ

7

ଦକ୍ଷିଣପୂର୍ବ ଏସିଆ

11

ଦକ୍ଷିଣ ଏସିଆ

18

ମଧ୍ୟ ଏସିଆ

5

ମଧ୍ୟ ପ୍ରାଚ୍ୟ ଏବଂ କାକେସସ

10

ପଶ୍ଚିମ ୟୁରୋପ୍ ଓ ଦକ୍ଷିଣ ୟୁରୋପ୍

17

ଯୁକ୍ତରାଜ୍ୟ ଓ ଆୟରଲ୍ୟାଣ୍ଡ

4

ଉତ୍ତର ୟୁରୋପ୍

10

ମଧ୍ୟ ୟୁରୋପ ଏବଂ ବାଲକାନ

14

ପୂର୍ବ ୟୁରୋପ୍

5

ପୂର୍ବ ଆଫ୍ରିକା

8

ପଶ୍ଚିମ ଆଫ୍ରିକା ଓ ମଧ୍ୟ ଆଫ୍ରିକା

9

ଦକ୍ଷିଣସ୍ଥ ଆଫ୍ରିକା

8

ଆମେରିକା

5

ଓସିନିଆ

5