Text Models (LLM)openai

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

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

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

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

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

مدل gpt-4 یک جهش بزرگ در فناوری هوش مصنوعی مکالمه‌ای است. این مدل با ارائه درک و تولید پیشرفته‌تر زبان طبیعی، قادر به مدیریت گفتگوهای پیچیده و ظریف با انسجام و حساسیت متنی بیشتر است. gpt-4 به گونه‌ای طراحی شده است که مکالمات شبیه به انسان را نزدیک‌تر از همیشه تقلید کند. این مدل می‌تواند در زمینه‌های مختلفی از جمله تولید متن خلاقانه، پاسخگویی به سوالات پیچیده، ترجمه زبان‌ها، خلاصه‌سازی متون طولانی و حتی تولید کد کامپیوتری به کار رود. gpt-4 با بهره‌گیری از حجم عظیمی از داده‌های آموزشی، قادر است الگوهای زبانی را به خوبی درک کرده و پاسخ‌هایی مرتبط و دقیق ارائه دهد. این مدل نه تنها در درک معنای کلمات، بلکه در درک مفهوم و هدف کلی یک متن نیز توانمند است. یکی از ویژگی‌های برجسته gpt-4، توانایی آن در حفظ پیوستگی و انسجام در طول یک مکالمه طولانی است. این مدل می‌تواند اطلاعات قبلی را به خاطر بسپارد و از آن‌ها برای پاسخگویی به سوالات بعدی استفاده کند. همچنین، gpt-4 قادر است لحن و سبک نوشتاری خود را با توجه به موضوع و مخاطب تنظیم کند. این مدل می‌تواند با لحنی رسمی یا غیررسمی، جدی یا شوخ‌طبعانه، دوستانه یا حرفه‌ای به سوالات پاسخ دهد. علاوه بر این، gpt-4 از قابلیت‌های استدلال و حل مسئله نیز برخوردار است. این مدل می‌تواند با تحلیل اطلاعات موجود، به نتایج منطقی دست یابد و راه‌حل‌هایی برای مسائل پیچیده ارائه دهد. با این حال، لازم به ذکر است که gpt-4 هنوز یک هوش مصنوعی است و ممکن است در برخی موارد اشتباه کند یا پاسخ‌های نامناسب ارائه دهد. بنابراین، استفاده از این مدل باید با احتیاط و نظارت انسانی انجام شود. در مجموع، gpt-4 یک ابزار قدرتمند و کارآمد برای تولید متن، پاسخگویی به سوالات و انجام وظایف مختلف زبانی است. این مدل می‌تواند به افراد و سازمان‌ها در زمینه‌های مختلفی از جمله آموزش، تحقیق، بازاریابی و خدمات مشتری کمک کند. ای آی کار (AI-KAR) با ارائه این مستندات، تلاش می‌کند تا کاربران را با قابلیت‌ها و نحوه استفاده از gpt-4 آشنا سازد و امکان بهره‌مندی از این فناوری پیشرفته را برای همگان فراهم آورد.

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

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

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

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

برای احراز هویت، حتما کلید 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',
    'messages': [
        {
            'role': 'user',
            'content': 'Hello'
        }
    ]
}

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

print(response.json())

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