Developer guide
ഒറ്റനോട്ടത്തിൽ
ഒറ്റനോട്ടത്തിൽ
ഈ രേഖ CLEVI ഡെവലപ്പർ ഡോക്യുമെന്റേഷന്റെ ആരംഭബിന്ദുവാണ്. Clevi-X-Platform-ന്റെ ഘടന, API വഴി വിളിക്കാവുന്ന രണ്ട് മോഡലുകൾ, പ്രാമാണീകരണ രീതി, അഭ്യർത്ഥനയുടെയും പ്രതികരണത്തിന്റെയും ഫോർമാറ്റുകൾ എന്നിവ ഒറ്റയിടത്ത് സംഗ്രഹിക്കുന്നു. അഭ്യർത്ഥനകളും പ്രതികരണങ്ങളും OpenAI Chat Completions ഫോർമാറ്റ് പിന്തുടരുന്നതിനാൽ, നിലവിലുള്ള OpenAI SDK-യിൽ base_url, api_key എന്നീ രണ്ട് മൂല്യങ്ങൾ മാത്രം മാറ്റി ബന്ധിപ്പിക്കാം. ഇൻസ്റ്റാളേഷൻ ഇല്ലാതെ ആദ്യ കോളിലേക്കുള്ള നടപടിക്രമം Quick Start ഡോക്യുമെന്റിൽ ലഭ്യമാണ്.
പ്ലാറ്റ്ഫോം ഘടന
Clevi-X-Platform മോഡലുകൾ, ഏജന്റുകൾ, സെമാന്റിക് ഡാറ്റാബേസ്, ഫിസിക്കൽ AI എന്നിവയെ ഒരൊറ്റ എക്സിക്യൂഷൻ പരിതസ്ഥിതിയിൽ ഉൾക്കൊള്ളിക്കുന്നു. ഇതിൽ ഡെവലപ്പർമാർക്ക് ഇപ്പോൾ HTTP വഴി നേരിട്ട് വിളിക്കാനാകുന്നത് മോഡൽ പാളിയാണ്. ശേഷിക്കുന്ന പാളികൾ പ്ലാറ്റ്ഫോമിനകത്തും കൺസോളിലും പ്രവർത്തിക്കുന്നു, കൂടാതെ പൊതുവായ API-യുടെ പരിധി താഴെയുള്ള പട്ടികയിൽ കാണിച്ചിരിക്കുന്നതുവരെയാണ്.
| പാളി | കൈകാര്യം ചെയ്യുന്നത് | നിലവിലെ പൊതുവായ പരിധി |
|---|---|---|
| മോഡൽ | ടെക്സ്റ്റും ചിത്ര ഇൻപുട്ടും സ്വീകരിച്ച് പ്രതികരണ ടോക്കണുകൾ സൃഷ്ടിക്കുന്നു | chat completions എൻഡ്പോയിന്റ് വഴി ലഭ്യമാണ് |
| ഏജന്റ് | ലക്ഷ്യാധിഷ്ഠിത നിഗമനം, ടൂൾ കോളുകൾ, ഘട്ടംഘട്ടമായ അടിസ്ഥാനങ്ങളുടെ സൃഷ്ടി | കൺസോളും പ്ലേഗ്രൗണ്ടും |
| സെമാന്റിക് DB | രേഖകൾ, ചിത്രങ്ങൾ, ഡ്രോയിംഗുകൾ, ബിസിനസ് ഡാറ്റ എന്നിവയെ അർത്ഥഘടകങ്ങളായി ബന്ധിപ്പിക്കുന്നു | കൺസോൾ |
| ഫിസിക്കൽ AI | റോബോട്ട് പ്രവർത്തനങ്ങളുടെ ആസൂത്രണവും പുനരാസൂത്രണവും | ഇൻസ്റ്റാളേഷൻ അടിസ്ഥാനത്തിലുള്ള ചർച്ച |
മോഡൽ നിര
അഭ്യർത്ഥന ബോഡിയിലെ model ഫീൽഡിൽ താഴെയുള്ള രണ്ട് പേരുകളിൽ ഒന്ന് അതേപടി നൽകുക. രണ്ട് മോഡലുകളും ഒരേ വിലാസം, ഒരേ പ്രാമാണീകരണം, ഒരേ അഭ്യർത്ഥനാ ഫോർമാറ്റ് എന്നിവ ഉപയോഗിക്കുന്നു.
- cip-5.5-im
- cip-5.5-mm
| മോഡൽ | സ്വഭാവം | ഇൻപുട്ട് | പ്രധാനമായും ഉപയോഗിക്കുന്നത് |
|---|---|---|---|
| cip-5.5-im | മൾട്ടിമോഡൽ തിരയലും അറിവാക്കലും | ടെക്സ്റ്റ്, ചിത്രം, രേഖ, ഡ്രോയിംഗ് | അർത്ഥാധിഷ്ഠിത തിരയൽ, അറിവ് ബന്ധിപ്പിക്കൽ, റോബോട്ട് പ്രവർത്തന ആസൂത്രണത്തിനുള്ള പിന്തുണ |
| cip-5.5-mm | മൾട്ടിമോഡൽ നിഗമനം | ടെക്സ്റ്റ്, ചിത്രം, സങ്കീർണ്ണ സന്ദർഭം | ഗവേഷണ-വിശകലന ചോദ്യങ്ങൾ, ടൂൾ കോളുകൾ, ബഹുഘട്ട പ്രവർത്തനങ്ങൾ |
cip-5.5-im
രേഖകൾ, ചിത്രങ്ങൾ, ഡ്രോയിംഗുകൾ, ബിസിനസ് ഡാറ്റ എന്നിവയെ അർത്ഥഘടകങ്ങളുടെ അടിസ്ഥാനത്തിൽ ബന്ധിപ്പിച്ച് തിരയൽ ഫലങ്ങളും വിജ്ഞാന ഘടനകളും സൃഷ്ടിക്കുന്നു. Physical AI-യുടെ ആസൂത്രണ, പുനരാസൂത്രണ ഘട്ടങ്ങളിൽ ഇൻപുട്ട് വ്യാഖ്യാനിക്കാനും ഇതേ മോഡൽ ഉപയോഗിക്കുന്നു. ആന്തരിക ഐഡന്റിഫയറായി RB-IM ഉപയോഗിക്കുന്നു, API-യിൽ cip-5.5-im മാത്രമാണ് സാധുവായ പേര്.
cip-5.5-mm
ടെക്സ്റ്റും ചിത്രങ്ങളും ഒന്നിലധികം രേഖകളിലുടനീളമുള്ള സങ്കീർണ്ണമായ സന്ദർഭവും ഒരുമിച്ച് വായിച്ച് ഉത്തരങ്ങൾ സൃഷ്ടിക്കുന്നു. ടൂൾ കോളുകളും ബിസിനസ് പ്രവാഹ നിർവഹണവും ഉൾപ്പെടുന്ന Agentic ജോലികൾക്കായി ക്രമീകരിച്ച മോഡലാണ് ഇത്.
മോഡൽ തിരഞ്ഞെടുക്കൽ
| ചെയ്യേണ്ടത് | തിരഞ്ഞെടുക്കേണ്ട മോഡൽ |
|---|---|
| ആന്തരിക രേഖകളിലും ഡ്രോയിംഗുകളിലും തെളിവ് നൽകുന്ന ഖണ്ഡിക കണ്ടെത്തുക | cip-5.5-im |
| തിരയൽ ഫലങ്ങളെ അർത്ഥാധിഷ്ഠിതമായി ബന്ധിപ്പിച്ച് വിജ്ഞാനമാക്കുക | cip-5.5-im |
| റോബോട്ട് ജോലി ആസൂത്രണത്തിനുള്ള ഇൻപുട്ട് വ്യാഖ്യാനിക്കുക | cip-5.5-im |
| ചിത്രങ്ങളും ടെക്സ്റ്റും ഒരുമിച്ച് വായിച്ച് തീരുമാനിക്കുക | cip-5.5-mm |
| ടൂൾ കോളുകൾ ആവശ്യമായ മൾട്ടി-സ്റ്റെപ്പ് ജോലി | cip-5.5-mm |
| ഒന്നിലധികം രേഖകൾ സംയോജിപ്പിച്ച വിശകലനാത്മക ഉത്തരം തയ്യാറാക്കുക | cip-5.5-mm |
മറ്റ് മോഡലുകൾ
പ്ലാറ്റ്ഫോമിൽ താഴെപ്പറയുന്ന മോഡലുകളും ലഭ്യമാണ്. വിന്യാസ രൂപവും ആക്സസ് മാർഗവും വ്യത്യസ്തമായതിനാൽ, പൊതുവായ API പേരുകൾ പ്രത്യേകം നൽകുന്നു.
| മോഡൽ | സ്വഭാവം |
|---|---|
| Cip-5-X | ഘട്ടംഘട്ടമായ തെളിവുകൾ അവതരിപ്പിക്കുന്ന മൾട്ടിമോഡൽ സങ്കീർണ്ണ വിശകലന മോഡൽ |
| Cip-5-Agent | സാഹചര്യാനുസൃത തീരുമാനമെടുക്കലും ആവർത്തന ജോലികളുടെ നിർവഹണവും കൈകാര്യം ചെയ്യുന്ന ഏജന്റ്-പ്രത്യേക റീസണിംഗ് മോഡൽ |
| Cip-5-Vision | ചിത്രം, വീഡിയോ, ടെക്സ്റ്റ്, ടൈം സീരീസ് എന്നിവ ഒരുമിച്ച് വ്യാഖ്യാനിക്കുന്ന വിഷൻ മോഡൽ |
| Ivy-3-Text | ചെറിയ ഉപകരണങ്ങളിലും എഡ്ജ് പരിസരങ്ങളിലും പ്രവർത്തിക്കുന്ന ഓൺ-ഡിവൈസ് ലഘു LLM |
| Ivy-4-mm | ടെക്സ്റ്റ്, ചിത്രം, ശബ്ദം എന്നിവ ഒരേസമയം പ്രോസസ്സ് ചെയ്യുന്ന വലിയ non-reasoning മോഡൽ |
അടിസ്ഥാന വിവരങ്ങളും ഓതന്റിക്കേഷനും
കീകൾ വർക്ക്സ്പെയ്സ് അടിസ്ഥാനത്തിൽ നൽകുകയും ഓരോ അഭ്യർത്ഥനയിലും Authorization ഹെഡറിൽ Bearer ആയി ചേർക്കുകയും ചെയ്യുന്നു. ചുവടെയുള്ള പട്ടികയിലെ ആറ് മൂല്യങ്ങൾ നൽകിയാൽ ആദ്യ കോളിനാവശ്യമായ സജ്ജീകരണം പൂർത്തിയാകും.
| ഇനം | മൂല്യം |
|---|---|
| അടിസ്ഥാന വിലാസം | https://platform.clevi.net/api/services/v1/aiservice/openai/v1 |
| ഓതന്റിക്കേഷൻ ഹെഡർ | Authorization: Bearer sk-... |
| അഭ്യർത്ഥന ബോഡി ഫോർമാറ്റ് | application/json |
| അഭ്യർത്ഥന·പ്രതികരണ സ്പെസിഫിക്കേഷൻ | OpenAI Chat Completions അനുയോജ്യം |
| വിളിക്കാവുന്ന മോഡലുകൾ | cip-5.5-im, cip-5.5-mm |
| കീ ലഭ്യമാക്കുന്ന പേജ് | https://clevi.app/cloud/keys |
പട്ടികയിലും ഉദാഹരണങ്ങളിലും ഉള്ള sk-... ലഭിച്ച കീ ചേർക്കേണ്ട സ്ഥാനമാണ്. താഴെയുള്ള കമാൻഡ് ഉപയോഗിച്ച് ഇത് പരിസ്ഥിതി വേരിയബിളിൽ ചേർത്തുവെച്ചാൽ, ഈ ഡോക്യുമെന്റിലെ ഉദാഹരണങ്ങൾ അതേപടി പകർത്തി പ്രവർത്തിപ്പിക്കാം.
export CLEVI_API_KEY="sk-..."POST /api/services/v1/aiservice/openai/v1/chat/completions
സന്ദേശങ്ങളുടെ അറേയും മോഡൽ പേരും സ്വീകരിച്ച്, മോഡൽ സൃഷ്ടിച്ച ഒരു സന്ദേശം choices അറേയിൽ ഉൾപ്പെടുത്തി തിരികെ നൽകുന്നു. പൂർണ്ണ വിലാസം https://platform.clevi.net/api/services/v1/aiservice/openai/v1/chat/completions ആണ്. messages-ൽ കുറഞ്ഞത് 1 സന്ദേശ ഒബ്ജക്റ്റ് ഉണ്ടായിരിക്കണം, ഓരോ ഒബ്ജക്റ്റിനും role, content എന്നിവ ഉണ്ടായിരിക്കണം.
| പേര് | ഫോർമാറ്റ് | ആവശ്യകത | വിവരണം |
|---|---|---|---|
| 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/services/v1/aiservice/openai/v1/chat/completions \
-H "Authorization: Bearer $CLEVI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cip-5.5-mm",
"messages": [
{"role": "system", "content": "사내 문서를 요약하는 도우미로 답한다."},
{"role": "user", "content": "이 API 의 인증 방식을 한 문장으로 설명해 줘."}
]
}'# 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/services/v1/aiservice/openai/v1",
)
completion = client.chat.completions.create(
model="cip-5.5-mm",
messages=[
{"role": "system", "content": "사내 문서를 요약하는 도우미로 답한다."},
{"role": "user", "content": "이 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/services/v1/aiservice/openai/v1",
});
const completion = await client.chat.completions.create({
model: "cip-5.5-mm",
messages: [
{ role: "system", content: "사내 문서를 요약하는 도우미로 답한다." },
{ role: "user", content: "이 API 의 인증 방식을 한 문장으로 설명해 줘." },
],
});
console.log(completion.choices[0].message.content);{
"id": "chatcmpl-7d21b4e0",
"object": "chat.completion",
"created": 1755500000,
"model": "cip-5.5-mm",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Authorization 헤더에 Bearer 와 발급받은 API 키를 넣어 인증합니다."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 38,
"completion_tokens": 24,
"total_tokens": 62
}
}പ്രതികരണ ഫീൽഡുകൾ
പ്രതികരണം ഏറ്റവും മുകളിലെ ആറ് ഫീൽഡുകൾ ഉൾക്കൊള്ളുന്നു. സൃഷ്ടിച്ച വാചകം choices അറേയിലെ ആദ്യ ഘടകത്തിലുണ്ട്, ടോക്കൺ ഉപയോഗം usage-ലുണ്ട്.
| പേര് | ഫോർമാറ്റ് | വിവരണം |
|---|---|---|
| id | string | ഒരു അഭ്യർത്ഥനയെ സൂചിപ്പിക്കുന്ന ഐഡന്റിഫയർ. പിശക് സംബന്ധിച്ച അന്വേഷണത്തിൽ ഇത് കൂടി നൽകുക |
| object | string | chat.completion. സ്ട്രീമിംഗ് ഭാഗങ്ങൾ chat.completion.chunk |
| created | integer | പ്രതികരണം സൃഷ്ടിച്ച സമയത്തെ Unix സെക്കൻഡ് |
| model | string | പ്രതികരണം സൃഷ്ടിച്ച മോഡലിന്റെ പേര് |
| choices | array | സൃഷ്ടിച്ച ഫലങ്ങളുടെ അറേ |
| choices[].index | integer | അറേയിലെ ക്രമ നമ്പർ. 0 മുതൽ ആരംഭിക്കുന്നു |
| choices[].message.role | string | assistant |
| choices[].message.content | string | സൃഷ്ടിച്ച പ്രതികരണത്തിന്റെ ഉള്ളടക്കം |
| choices[].finish_reason | string | സൃഷ്ടിക്കൽ നിർത്തിയ കാരണം. അവസാനം വരെ സൃഷ്ടിച്ചാൽ stop |
| usage.prompt_tokens | integer | ഇൻപുട്ടായി ഉപയോഗിച്ച ടോക്കണുകളുടെ എണ്ണം |
| usage.completion_tokens | integer | സൃഷ്ടിച്ച ടോക്കണുകളുടെ എണ്ണം |
| usage.total_tokens | integer | മുകളിലെ രണ്ട് മൂല്യങ്ങളുടെ ആകെത്തുക |
പിശക്
പരാജയപ്പെട്ട അഭ്യർത്ഥനയുടെ കാരണം HTTP സ്റ്റാറ്റസ് കോഡ് വഴി അറിയിക്കും. ആദ്യം താഴെപ്പറയുന്ന പരിഹാരങ്ങൾ പരിശോധിക്കുക; അതേ കോഡ് ആവർത്തിച്ചാൽ പ്രതികരണത്തിലെ id-യും അഭ്യർത്ഥന നടത്തിയ സമയവും രേഖപ്പെടുത്തി വയ്ക്കുക.
| കോഡ് | അർത്ഥം | പരിഹാരം |
|---|---|---|
| 400 | അഭ്യർത്ഥനയുടെ ബോഡി ശരിയായ ഫോർമാറ്റിലല്ല | model, messages എന്നിവയുണ്ടോ എന്നും JSON അടച്ചിട്ടുണ്ടോ എന്നും പരിശോധിക്കുക |
| 401 | കീ ഇല്ലാതെയോ അസാധുവായോ ആണ് | ഹെഡർ Bearer എന്നതിൽ തുടങ്ങുന്നുണ്ടോ എന്നും കീ മൂല്യം അതേപടി പകർത്തിയിട്ടുണ്ടോ എന്നും പരിശോധിക്കുക |
| 403 | ഈ കീ ഉപയോഗിച്ച് ആക്സസ് ചെയ്യാനാകില്ല | കീ നൽകിയ വർക്ക്സ്പെയ്സും അഭ്യർത്ഥിച്ച മോഡലിന്റെ പേരും പരിശോധിക്കുക |
| 404 | പാത്ത് നിലവിലില്ല | വിലാസത്തിന്റെ അവസാനം /v1/chat/completions ആണോ എന്ന് പരിശോധിക്കുക |
| 429 | ചുരുങ്ങിയ സമയത്തിനുള്ളിൽ നിരവധി അഭ്യർത്ഥനകൾ ലഭിച്ചു | വീണ്ടും ശ്രമിക്കുന്ന ഇടവേള ഓരോ തവണയും ഇരട്ടിയാക്കി വീണ്ടും അയയ്ക്കുക |
| 500 | സെർവർ ഭാഗത്ത് പിശകുണ്ട് | അതേ അഭ്യർത്ഥന വീണ്ടും അയയ്ക്കുക; ആവർത്തിച്ചാൽ പിന്തുണാ ടീമിന് അഭ്യർത്ഥന നടത്തിയ സമയം നൽകുക |
വിന്യാസ രീതി
അതേ മോഡൽ ക്ലൗഡ് API, ഓൺ-പ്രിമൈസസ് ഇൻസ്റ്റലേഷൻ എന്നീ രണ്ട് രീതികളിൽ ഉപയോഗിക്കുന്നു. അഭ്യർത്ഥനാ ഫോർമാറ്റും പ്രാമാണീകരണ രീതിയും രണ്ടിലും ഒരുപോലെയാണ്; വിലാസവും കീ മാനേജ്മെന്റ് സ്ക്രീനും വ്യത്യസ്തമാണ്.
| ഇനം | ക്ലൗഡ് API | ഓൺ-പ്രിമൈസസ് |
|---|---|---|
| അടിസ്ഥാന വിലാസം | platform.clevi.net | ഇൻസ്റ്റാൾ ചെയ്ത സ്വകാര്യ നെറ്റ്വർക്ക് വിലാസം |
| കീ നൽകൽ | https://clevi.app/cloud/keys | ഇൻസ്റ്റാൾ ചെയ്ത പരിസ്ഥിതിയുടെ അഡ്മിനിസ്ട്രേറ്റർ കൺസോൾ |
| പ്രാമാണീകരണ രീതി | Bearer ടോക്കൺ | Bearer ടോക്കൺ |
| ഡാറ്റ സംഭരിക്കുന്ന സ്ഥലം | CLEVI ക്ലൗഡ് | ഉപഭോക്താവിന്റെ ഇൻഫ്രാസ്ട്രക്ചറിനുള്ളിൽ |
ഡാറ്റാ ഗവണൻസ്
പ്ലാറ്റ്ഫോം താഴെപ്പറയുന്ന നാല് കാര്യങ്ങളെ അടിസ്ഥാന പ്രവർത്തനങ്ങളായി ക്രമീകരിക്കുന്നു. വർക്ക്സ്പെയ്സുകൾ വിഭജിക്കുന്ന മാനദണ്ഡം നിശ്ചയിക്കുമ്പോൾ ഇവയും പരിശോധിക്കുക.
- അനുമതി അടിസ്ഥാനമാക്കിയുള്ള നിയന്ത്രണം — വർക്ക്സ്പെയ്സ് അടിസ്ഥാനത്തിൽ ആക്സസ് അനുമതികളും കീകളും വിഭജിക്കുന്നു.
- ഒറ്റപ്പെട്ട വർക്ക്സ്പെയ്സുകൾ — വർക്ക്സ്പെയ്സുകൾക്കിടയിൽ ഡാറ്റ കലരുന്നില്ല.
- തത്സമയ ഡാറ്റാ കണക്ഷൻ — ബാഹ്യ സിസ്റ്റങ്ങളുമായി ബന്ധിപ്പിച്ച ഡാറ്റ ചോദ്യം ചെയ്യുന്ന സമയത്ത് ലഭ്യമാക്കുന്നു.
- പ്രക്രിയാടിസ്ഥാനത്തിലുള്ള രേഖസംഭരണം — നിർവഹിച്ച ഓരോ പ്രവർത്തന യൂണിറ്റിനും രേഖ സൂക്ഷിക്കുന്നു.
ആരംഭിക്കുന്ന ക്രമം
ആദ്യമായി കണക്റ്റ് ചെയ്യുകയാണെങ്കിൽ, താഴെപ്പറയുന്ന ക്രമത്തിൽ തുടരുക. മൂന്നാം ഘട്ടം പൂർത്തിയാക്കിയാൽ, ഒരേയൊരു കീ ഉപയോഗിച്ച് രണ്ട് മോഡലുകളും വിളിക്കാം.
- https://platform.clevi.net/account/login ൽ ലോഗിൻ ചെയ്യുകയോ അക്കൗണ്ട് സൃഷ്ടിക്കുകയോ ചെയ്യുക.
- https://clevi.app/cloud ൽ ഒരു വർക്ക്സ്പേസ് ചേർക്കുക.
- https://clevi.app/cloud/keys ൽ നിന്ന് ഒരു കീ സൃഷ്ടിച്ച് പരിസ്ഥിതി വേരിയബിളിൽ സംഭരിക്കുക.
- https://clevi.app/cloud/playground ൽ cip-5.5-im ന്റെയും cip-5.5-mm ന്റെയും പ്രതികരണങ്ങൾ താരതമ്യം ചെയ്യുക.
- Quick Start ഡോക്യുമെന്റിലെ അഭ്യർത്ഥനാ ഉദാഹരണം പകർത്തി ആദ്യ കോൾ അയയ്ക്കുക.
