Developer guide
مروری در یک نگاه
مروری در یک نگاه
این سند نقطه شروع مستندات توسعهدهندگان CLEVI است. اجزای Clevi-X-Platform، دو مدلی که میتوان با API فراخوانی کرد، روش احراز هویت و قالب درخواست و پاسخ را یکجا مرور میکند. درخواستها و پاسخها از قالب OpenAI Chat Completions پیروی میکنند؛ بنابراین برای اتصال، در OpenAI SDK موجود فقط دو مقدار base_url و api_key را تغییر دهید. فرایند دنبالکردن مراحل تا نخستین فراخوانی، بدون نصب، در سند Quick Start آمده است.
اجزای پلتفرم
Clevi-X-Platform مدلها، عاملها، پایگاه داده معنایی و هوش مصنوعی فیزیکی را در یک محیط اجرا قرار میدهد. در میان این موارد، چیزی که توسعهدهندگان اکنون مستقیماً از طریق HTTP فراخوانی میکنند، لایه مدل است. سایر لایهها در داخل پلتفرم و کنسول اجرا میشوند و API عمومی تا محدوده نشاندادهشده در جدول زیر در دسترس است.
| لایه | موارد تحت پوشش | محدوده عمومی فعلی |
|---|---|---|
| مدل | دریافت ورودی متنی و تصویری و تولید توکنهای پاسخ | ارائهشده از طریق نقطه پایانی chat completions |
| عامل | استدلال هدفمحور، فراخوانی ابزار و تولید شواهد مرحلهبهمرحله | کنسول و محیط آزمایشی |
| پایگاه داده معنایی | پیوند دادن اسناد، تصاویر، نقشهها و دادههای کاری بر اساس واحدهای معنایی | کنسول |
| هوش مصنوعی فیزیکی | برنامهریزی و برنامهریزی مجدد حرکات ربات | هماهنگی در سطح نصب |
مجموعه مدلها
در فیلد 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 که متن، تصویر و صدا را بهصورت همزمان پردازش میکند |
اطلاعات پایه و احراز هویت
کلیدها در سطح workspace صادر میشوند و در هر درخواست، با پیشوند Bearer در هدر Authorization قرار میگیرند. با شش مقدار جدول زیر، تنظیمات لازم برای اولین فراخوانی تکمیل میشود.
| مورد | مقدار |
|---|---|
| آدرس پایه | 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 | زمان ایجاد پاسخ بر حسب ثانیه یونیکس |
| 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 کپی کنید و اولین فراخوانی را ارسال کنید.
