Text Models (LLM)perplexity

معرفی و مستندات مدل هوش مصنوعی sonar-pro

مستندات مدل sonar-pro از perplexity، ارائه شده توسط ای آی کار (AI-KAR)

معرفی و بررسی فنی

⚡ وضعیت پشتیبانی از زبان فارسی

این مدل از زبان فارسی به صورت متوسط پشتیبانی می‌کند. درک متون فارسی در سطح قابل قبولی است اما ممکن است در تولید متون پیچیده فارسی با مشکل مواجه شود.

مدل sonar-pro از perplexity، یک مدل هوش مصنوعی پیشرفته است که برای تحقیقات آنلاین و پرسش‌های پیچیده طراحی شده است. این مدل با قابلیت اتصال به وب در زمان واقعی، می‌تواند به جستجو و ترکیب اطلاعات از منابع متعدد بپردازد و پاسخ‌هایی دقیق‌تر و جامع‌تر ارائه دهد. sonar-pro برای انجام وظایف استدلالی عمیق و چند مرحله‌ای بهینه شده است و با بازیابی و ترکیب نتایج جستجوهای متعدد، پاسخ‌هایی با جزئیات بیشتر ارائه می‌دهد. این مدل دو برابر بیشتر از مدل‌های استاندارد Sonar، منابع و مراجع را ذکر می‌کند که این امر قابلیت ردیابی و اعتبار پاسخ‌ها را افزایش می‌دهد. از ویژگی‌های برجسته این مدل می‌توان به موارد زیر اشاره کرد:
  • **جستجوی وب در زمان واقعی:** امکان دسترسی به جدیدترین اطلاعات موجود در وب.
  • **استدلال چند مرحله‌ای:** قابلیت انجام استدلال‌های پیچیده و چند لایه.
  • **ترکیب اطلاعات از منابع متعدد:** جمع‌آوری و ترکیب اطلاعات از چندین منبع مختلف برای ارائه پاسخ‌های جامع.
  • **ذکر منابع و مراجع:** ارائه دو برابر بیشتر منابع نسبت به مدل‌های استاندارد Sonar برای افزایش اعتبار و قابلیت ردیابی.
این مدل برای کاربردهایی مانند تحقیقات بازار، تحلیل داده‌ها، پاسخگویی به سوالات پیچیده، و تولید محتوای دقیق و مستند مناسب است. با استفاده از sonar-pro، کاربران می‌توانند به سرعت و به آسانی به اطلاعات مورد نیاز خود دسترسی پیدا کنند و از پاسخ‌هایی دقیق و قابل اعتماد بهره‌مند شوند. این مدل با ارائه قابلیت‌های پیشرفته جستجو و استدلال، به کاربران کمک می‌کند تا درک عمیق‌تری از موضوعات مختلف پیدا کنند و تصمیمات بهتری اتخاذ کنند. همچنین، sonar-pro با ارائه منابع و مراجع متعدد، امکان بررسی و اعتبارسنجی اطلاعات ارائه شده را فراهم می‌کند که این امر برای کاربرانی که به دنبال اطلاعات دقیق و قابل اعتماد هستند، بسیار ارزشمند است. این مدل به طور مداوم در حال بهبود و توسعه است تا بتواند نیازهای کاربران را در زمینه‌های مختلف برآورده کند.

مشخصات فنی (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
    }
  }
}