Text Models (LLM)perplexity
معرفی و مستندات مدل هوش مصنوعی sonar-pro
مستندات مدل sonar-pro از perplexity، ارائه شده توسط ای آی کار (AI-KAR)
معرفی و بررسی فنی
⚡ وضعیت پشتیبانی از زبان فارسی
این مدل از زبان فارسی به صورت متوسط پشتیبانی میکند. درک متون فارسی در سطح قابل قبولی است اما ممکن است در تولید متون پیچیده فارسی با مشکل مواجه شود.
مدل sonar-pro از perplexity، یک مدل هوش مصنوعی پیشرفته است که برای تحقیقات آنلاین و پرسشهای پیچیده طراحی شده است. این مدل با قابلیت اتصال به وب در زمان واقعی، میتواند به جستجو و ترکیب اطلاعات از منابع متعدد بپردازد و پاسخهایی دقیقتر و جامعتر ارائه دهد. sonar-pro برای انجام وظایف استدلالی عمیق و چند مرحلهای بهینه شده است و با بازیابی و ترکیب نتایج جستجوهای متعدد، پاسخهایی با جزئیات بیشتر ارائه میدهد. این مدل دو برابر بیشتر از مدلهای استاندارد Sonar، منابع و مراجع را ذکر میکند که این امر قابلیت ردیابی و اعتبار پاسخها را افزایش میدهد. از ویژگیهای برجسته این مدل میتوان به موارد زیر اشاره کرد:
- **جستجوی وب در زمان واقعی:** امکان دسترسی به جدیدترین اطلاعات موجود در وب.
- **استدلال چند مرحلهای:** قابلیت انجام استدلالهای پیچیده و چند لایه.
- **ترکیب اطلاعات از منابع متعدد:** جمعآوری و ترکیب اطلاعات از چندین منبع مختلف برای ارائه پاسخهای جامع.
- **ذکر منابع و مراجع:** ارائه دو برابر بیشتر منابع نسبت به مدلهای استاندارد Sonar برای افزایش اعتبار و قابلیت ردیابی.
مشخصات فنی (API References)
| پارامتر | نوع | توضیحات و مقادیر |
|---|---|---|
model | stringRequired | مدل مورد استفاده برای تکمیل چت. مقدار این پارامتر باید `perplexity/sonar-pro` باشد. مقادیر مجاز (کلیک برای کپی): |
messages | one of[]Required | لیستی از پیامها که مکالمه را تا کنون تشکیل میدهند. بسته به مدلی که استفاده میکنید، انواع مختلف پیامها (modalities) مانند متن، اسناد (txt, pdf)، تصاویر و صدا پشتیبانی میشوند. |
max_tokens | number | حداکثر تعداد توکنهایی که میتوان در تکمیل چت تولید کرد. این مقدار میتواند برای کنترل هزینههای مربوط به متن تولید شده از طریق API استفاده شود. |
stream | boolean | اگر روی True تنظیم شود، دادههای پاسخ مدل به صورت جریانی (stream) با استفاده از رویدادهای ارسال شده از سرور (server-sent events) به کلاینت ارسال میشوند. |
stream_options | object | تنظیمات مربوط به جریان داده. |
temperature | number | چه دمای نمونهبرداری (sampling temperature) استفاده شود. مقادیر بالاتر مانند 0.8 خروجی را تصادفیتر میکنند، در حالی که مقادیر پایینتر مانند 0.2 آن را متمرکزتر و قطعیتر میکنند. به طور کلی توصیه میکنیم این مقدار یا top_p را تغییر دهید، اما نه هر دو را. |
top_p | number | جایگزینی برای نمونهبرداری با دما، به نام نمونهبرداری هستهای (nucleus sampling)، که در آن مدل نتایج توکنها را با جرم احتمال top_p در نظر میگیرد. بنابراین 0.1 به این معنی است که فقط توکنهایی که 10٪ جرم احتمال برتر را تشکیل میدهند در نظر گرفته میشوند. به طور کلی توصیه میکنیم این مقدار یا temperature را تغییر دهید، اما نه هر دو را. |
logit_bias | object | احتمال ظاهر شدن توکنهای مشخص شده در تکمیل را تغییر میدهد. یک شی JSON را میپذیرد که توکنها (مشخص شده توسط شناسه توکن آنها در توکنساز) را به یک مقدار بایاس مرتبط از -100 تا 100 نگاشت میکند. از نظر ریاضی، بایاس به logits تولید شده توسط مدل قبل از نمونهبرداری اضافه میشود. اثر دقیق بسته به مدل متفاوت خواهد بود، اما مقادیر بین -1 و 1 باید احتمال انتخاب را کاهش یا افزایش دهند. مقادیری مانند -100 یا 100 باید منجر به ممنوعیت یا انتخاب انحصاری توکن مربوطه شوند. |
frequency_penalty | number | عددی بین -2.0 و 2.0. مقادیر مثبت، توکنهای جدید را بر اساس فراوانی موجود آنها در متن تا کنون جریمه میکنند، و احتمال تکرار همان خط را به صورت کلمه به کلمه کاهش میدهند. |
presence_penalty | number | مقادیر مثبت، توکنهای جدید را بر اساس اینکه آیا در متن تا کنون ظاهر شدهاند یا خیر جریمه میکنند، و احتمال صحبت کردن در مورد موضوعات جدید را افزایش میدهند. |
seed | integer | این ویژگی در حالت بتا است. اگر مشخص شود، سیستم ما تمام تلاش خود را میکند تا به صورت قطعی نمونهبرداری کند، به طوری که درخواستهای مکرر با همان seed و پارامترها باید نتیجه یکسانی را برگردانند. |
response_format | one of | شیئی که فرمتی را مشخص میکند که مدل باید خروجی دهد. |
web_search_options | object | این ابزار وب را برای نتایج مرتبط جستجو میکند تا در پاسخ استفاده شود. |
top_k | number | فقط از K گزینه برتر برای هر توکن بعدی نمونهبرداری کنید. برای حذف پاسخهای با احتمال پایین "long tail" استفاده میشود. فقط برای موارد استفاده پیشرفته توصیه میشود. معمولاً فقط باید از temperature استفاده کنید. |
search_mode | string | حالت جستجوی مورد استفاده برای درخواست را کنترل میکند. هنگامی که روی 'academic' تنظیم شود، نتایج منابع علمی مانند مقالات بررسی شده توسط همتایان و مجلات علمی را در اولویت قرار میدهند. مقادیر مجاز (کلیک برای کپی): |
search_domain_filter | string[] | لیستی از دامنهها برای محدود کردن نتایج جستجو به آنها. در حال حاضر به 10 دامنه برای Allowlisting و Denylisting محدود شده است. برای Denylisting، یک - در ابتدای رشته دامنه اضافه کنید. |
return_images | boolean | تعیین میکند که آیا نتایج جستجو باید شامل تصاویر باشند یا خیر. |
return_related_questions | boolean | تعیین میکند که آیا سوالات مرتبط باید برگردانده شوند یا خیر. |
search_recency_filter | string | نتایج جستجو را بر اساس زمان فیلتر میکند (به عنوان مثال، 'week'، 'day'). مقادیر مجاز (کلیک برای کپی): |
search_after_date_filter | string | نتایج جستجو را فیلتر میکند تا فقط شامل محتوایی باشد که پس از این تاریخ منتشر شده است. قالب باید %m/%d/%Y باشد (به عنوان مثال 3/1/2025) |
search_before_date_filter | string | نتایج جستجو را فیلتر میکند تا فقط شامل محتوایی باشد که قبل از این تاریخ منتشر شده است. قالب باید %m/%d/%Y باشد (به عنوان مثال 3/1/2025) |
last_updated_after_filter | string | نتایج جستجو را فیلتر میکند تا فقط شامل محتوایی باشد که آخرین بار پس از این تاریخ به روز شده است. قالب باید %m/%d/%Y باشد (به عنوان مثال 3/1/2025) |
last_updated_before_filter | string | نتایج جستجو را فیلتر میکند تا فقط شامل محتوایی باشد که آخرین بار قبل از این تاریخ به روز شده است. قالب باید %m/%d/%Y باشد (به عنوان مثال 3/1/2025) |
نمونه کدهای درخواست
نکته مهم برای توسعهدهندگان:
برای احراز هویت، حتما کلید API خود را جایگزین YOUR_API_KEY کنید. هدر Authorization الزامی است.
import requests
import json # for getting a structured output with indentation
response = requests.post(
"https://api.ai-kar.com/v1/chat/completions",
headers={
# Insert your AI-KAR API Key instead of <YOUR_AI-KARAPI_KEY>:
"Authorization":"Bearer <YOUR_AI-KARAPI_KEY>",
"Content-Type":"application/json"
},
json={
"model":"perplexity/sonar-pro",
"messages":[
{
"role":"user",
"content":"Hello" # insert your prompt here, instead of Hello
}
]
}
)
data = response.json()
print(json.dumps(data, indent=2, ensure_ascii=False))نمونه پاسخ موفق (JSON)
RESPONSE (200 OK)
{
"id": "text",
"object": "text",
"created": 1,
"choices": [
{
"index": 1,
"message": {
"role": "text",
"content": "text",
"refusal": null,
"annotations": [
{
"type": "text",
"url_citation": {
"end_index": 1,
"start_index": 1,
"title": "text",
"url": "text"
}
}
],
"audio": {
"id": "text",
"data": "text",
"transcript": "text",
"expires_at": 1
},
"tool_calls": [
{
"id": "text",
"type": "text",
"function": {
"arguments": "text",
"name": "text"
}
}
]
},
"finish_reason": "stop",
"logprobs": {
"content": [
{
"bytes": [
1
],
"logprob": 1,
"token": "text",
"top_logprobs": [
{
"bytes": [
1
],
"logprob": 1,
"token": "text"
}
]
}
],
"refusal": []
}
}
],
"model": "text",
"usage": {
"prompt_tokens": 1,
"completion_tokens": 1,
"total_tokens": 1,
"completion_tokens_details": {
"accepted_prediction_tokens": 1,
"audio_tokens": 1,
"reasoning_tokens": 1,
"rejected_prediction_tokens": 1
},
"prompt_tokens_details": {
"audio_tokens": 1,
"cached_tokens": 1
}
}
}