Text Models (LLM)openai

معرفی و مستندات مدل هوش مصنوعی gpt-4-preview

مستندات مدل gpt-4-preview ارائه شده توسط ای آی کار (AI-KAR)

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

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

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

مدل gpt-4-preview از OpenAI، یک مدل پیشرفته زبانی است که قبل از انتشار GPT-4 Turbo، به کاربران امکان آزمایش ویژگی‌های پیشرفته را می‌داد. این مدل از حالت JSON برای پاسخ‌های ساختاریافته، فراخوانی موازی توابع برای مدیریت چندین تابع API در یک درخواست و خروجی قابل تکرار برای اطمینان از نتایج سازگارتر در طول اجرا پشتیبانی می‌کند. این مدل عملکرد بهتری در تولید کد دارد و مواردی را که مدل یک کار را کامل نمی‌کند، کاهش می‌دهد. این مدل‌ها با پشتیبانی از حالت JSON، امکان تولید پاسخ‌های ساختاریافته را فراهم می‌کنند که برای برنامه‌هایی که نیاز به داده‌های سازمان‌یافته دارند، بسیار مفید است. فراخوانی موازی توابع به مدل اجازه می‌دهد تا چندین تابع API را به طور همزمان فراخوانی کند، که می‌تواند سرعت و کارایی برنامه‌ها را بهبود بخشد. خروجی قابل تکرار تضمین می‌کند که مدل در هر بار اجرا با پارامترهای یکسان، نتایج مشابهی را تولید می‌کند، که برای برنامه‌هایی که نیاز به ثبات دارند، بسیار مهم است. این مدل‌ها همچنین دارای عملکرد بهتری در تولید کد هستند و می‌توانند کد را با دقت و کارایی بیشتری تولید کنند. علاوه بر این، این مدل‌ها مواردی را که مدل یک کار را کامل نمی‌کند، کاهش می‌دهند، که می‌تواند قابلیت اطمینان برنامه‌ها را بهبود بخشد. برای استفاده از این مدل، ابتدا باید یک حساب کاربری در وب‌سایت ای آی کار (AI-KAR) ایجاد کنید و یک کلید API تولید کنید. سپس می‌توانید از کد نمونه ارائه شده در این مستندات برای ساخت درخواست‌های خود استفاده کنید. پارامترهای مختلفی برای تنظیم رفتار مدل وجود دارد، از جمله `model`، `messages`، `max_completion_tokens`، `max_tokens`، `stream`، `tools` و غیره. با تنظیم این پارامترها، می‌توانید خروجی مدل را مطابق با نیازهای خود سفارشی کنید. این مدل‌ها ابزاری قدرتمند برای توسعه برنامه‌های هوش مصنوعی هستند و می‌توانند برای طیف گسترده‌ای از وظایف مورد استفاده قرار گیرند. با استفاده از این مستندات، می‌توانید به سرعت و به آسانی شروع به استفاده از این مدل‌ها کنید و از مزایای آن‌ها بهره‌مند شوید. این مدل به طور خاص برای بهبود عملکرد در تولید کد و کاهش خطاهای مربوط به عدم تکمیل وظایف طراحی شده است. با استفاده از این مدل، توسعه‌دهندگان می‌توانند برنامه‌هایی با قابلیت اطمینان و کارایی بیشتر ایجاد کنند.

مشخصات فنی (API References)

پارامترنوعتوضیحات و مقادیر
model
stringRequired
مدل مورد استفاده برای تولید پاسخ. مقادیر مجاز: `gpt-4-0125-preview` یا `gpt-4-1106-preview`.
مقادیر مجاز (کلیک برای کپی):
messages
one of[]Required
لیستی از پیام‌ها که مکالمه را تا کنون تشکیل می‌دهند. بسته به مدلی که استفاده می‌کنید، انواع مختلف پیام (حالت‌ها) مانند متن، اسناد (txt، pdf)، تصاویر و صدا پشتیبانی می‌شوند.
max_completion_tokens
integer
حد بالایی برای تعداد توکن‌هایی که می‌توان برای تکمیل تولید کرد، از جمله توکن‌های خروجی قابل مشاهده و توکن‌های استدلال. حداقل مقدار: 1.
max_tokens
number
حداکثر تعداد توکن‌هایی که می‌توان در تکمیل چت تولید کرد. این مقدار می‌تواند برای کنترل هزینه‌های متن تولید شده از طریق API استفاده شود. حداقل مقدار: 1.
stream
boolean
اگر روی True تنظیم شود، داده‌های پاسخ مدل به صورت جریانی با استفاده از رویدادهای ارسال شده توسط سرور به کلاینت ارسال می‌شود. مقدار پیش‌فرض: false.
stream_options
object
تنظیمات مربوط به حالت جریانی.
tools
object[]
لیستی از ابزارهایی که مدل ممکن است فراخوانی کند. در حال حاضر، فقط توابع به عنوان ابزار پشتیبانی می‌شوند. از این برای ارائه لیستی از توابعی استفاده کنید که مدل ممکن است ورودی‌های JSON را برای آنها تولید کند. حداکثر 128 تابع پشتیبانی می‌شود.
tool_choice
any of
کنترل می‌کند که کدام ابزار (در صورت وجود) توسط مدل فراخوانی شود. `none` به این معنی است که مدل هیچ ابزاری را فراخوانی نمی‌کند و در عوض یک پیام تولید می‌کند. `auto` به این معنی است که مدل می‌تواند بین تولید یک پیام یا فراخوانی یک یا چند ابزار انتخاب کند. `required` به این معنی است که مدل باید یک یا چند ابزار را فراخوانی کند. تعیین یک ابزار خاص از طریق `{"type": "function", "function": {"name": "my_function"}}` مدل را مجبور می‌کند تا آن ابزار را فراخوانی کند. `none` مقدار پیش‌فرض است زمانی که هیچ ابزاری وجود نداشته باشد. `auto` مقدار پیش‌فرض است اگر ابزارها وجود داشته باشند.
مقادیر مجاز (کلیک برای کپی):
parallel_tool_calls
boolean
تعیین اینکه آیا فراخوانی موازی توابع در طول استفاده از ابزار فعال شود یا خیر.
n
integer | nullable
تعداد انتخاب‌های تکمیل چت که برای هر پیام ورودی تولید می‌شود. توجه داشته باشید که هزینه بر اساس تعداد توکن‌های تولید شده در تمام انتخاب‌ها محاسبه می‌شود. `n` را روی 1 نگه دارید تا هزینه‌ها به حداقل برسد.
stop
any of
حداکثر 4 دنباله که API تولید توکن‌های بیشتر را متوقف می‌کند. متن بازگشتی شامل دنباله توقف نخواهد بود.
logprobs
boolean | nullable
تعیین اینکه آیا احتمالات لگاریتمی توکن‌های خروجی برگردانده شوند یا خیر. اگر True باشد، احتمالات لگاریتمی هر توکن خروجی بازگردانده شده در محتوای پیام را برمی‌گرداند.
top_logprobs
number | nullable
یک عدد صحیح بین 0 و 20 که تعداد محتمل‌ترین توکن‌ها را برای بازگشت در هر موقعیت توکن مشخص می‌کند، هر کدام با یک احتمال لگاریتمی مرتبط. اگر این پارامتر استفاده شود، `logprobs` باید روی True تنظیم شود.
logit_bias
object | nullable
احتمال ظاهر شدن توکن‌های مشخص شده در تکمیل را تغییر می‌دهد. یک شی JSON را می‌پذیرد که توکن‌ها (مشخص شده توسط شناسه توکن آنها در توکن‌ساز) را به یک مقدار بایاس مرتبط از -100 تا 100 نگاشت می‌کند. از نظر ریاضی، بایاس به logits تولید شده توسط مدل قبل از نمونه‌برداری اضافه می‌شود. اثر دقیق برای هر مدل متفاوت خواهد بود، اما مقادیر بین -1 و 1 باید احتمال انتخاب را کاهش یا افزایش دهند. مقادیری مانند -100 یا 100 باید منجر به ممنوعیت یا انتخاب انحصاری توکن مربوطه شوند.
frequency_penalty
number | nullable
عدد بین -2.0 و 2.0. مقادیر مثبت توکن‌های جدید را بر اساس فراوانی موجود آنها در متن تا کنون جریمه می‌کنند و احتمال تکرار خط به خط یکسان توسط مدل را کاهش می‌دهند.
presence_penalty
number | nullable
مقادیر مثبت توکن‌های جدید را بر اساس اینکه آیا در متن تا کنون ظاهر شده‌اند جریمه می‌کنند و احتمال صحبت کردن مدل در مورد موضوعات جدید را افزایش می‌دهند.
seed
integer
این ویژگی در نسخه بتا است. اگر مشخص شود، سیستم ما تمام تلاش خود را برای نمونه‌برداری قطعی انجام می‌دهد، به طوری که درخواست‌های مکرر با همان seed و پارامترها باید نتیجه یکسانی را برگردانند. حداقل مقدار: 1.
response_format
one of
شیئی که فرمتی را مشخص می‌کند که مدل باید خروجی دهد.
temperature
number
از چه دمای نمونه‌برداری استفاده شود. مقادیر بالاتر مانند 0.8 خروجی را تصادفی‌تر می‌کنند، در حالی که مقادیر پایین‌تر مانند 0.2 آن را متمرکزتر و قطعی‌تر می‌کنند. ما به طور کلی توصیه می‌کنیم این یا `top_p` را تغییر دهید، اما نه هر دو را.
top_p
number
جایگزینی برای نمونه‌برداری با دما، به نام نمونه‌برداری هسته‌ای، که در آن مدل نتایج توکن‌ها را با جرم احتمال `top_p` در نظر می‌گیرد. بنابراین 0.1 به این معنی است که فقط توکن‌هایی که 10٪ جرم احتمال برتر را تشکیل می‌دهند در نظر گرفته می‌شوند. ما به طور کلی توصیه می‌کنیم این یا `temperature` را تغییر دهید، اما نه هر دو را.

نمونه کدهای درخواست

نکته مهم برای توسعه‌دهندگان:

برای احراز هویت، حتما کلید API خود را جایگزین YOUR_API_KEY کنید. هدر Authorization الزامی است.

import requests
import json

url = 'https://api.ai-kar.com/v1/chat/completions'
headers = {
    'Authorization': 'Bearer <YOUR_AI-KARAPI_KEY>',
    'Content-Type': 'application/json'
}
data = {
    'model': 'gpt-4-0125-preview',
    'messages': [
        {
            'role': 'user',
            'content': 'Hello'
        }
    ]
}

response = requests.post(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    print(json.dumps(response.json(), indent=2))
else:
    print(f'Error: {response.status_code}')
    print(response.text)

نمونه پاسخ موفق (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
    }
  }
}