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
}
}
}