معرفی و مستندات مدل هوش مصنوعی qwen2.5-coder-32b-instruct
مستندات مدل qwen2.5-coder-32b-instruct ارائه شده توسط ای آی کار (AI-KAR)
معرفی و بررسی فنی
⚡ وضعیت پشتیبانی از زبان فارسی
این مدل از زبان فارسی به صورت متوسط پشتیبانی میکند. درک و تولید متون فارسی توسط این مدل امکانپذیر است، اما ممکن است در برخی موارد با مشکلاتی مواجه شود.
معرفی مدل qwen2.5-coder-32b-instruct
مدل qwen2.5-coder-32b-instruct، جدیدترین مدل متمرکز بر کدنویسی از سری Qwen است. این مدل با ۳۲ میلیارد پارامتر، قویترین عضو این خانواده محسوب میشود و در زمینههای کدنویسی، ریاضیات و وظایف عمومی عملکرد بسیار خوبی دارد. این مدل برای توسعهدهندگانی طراحی شده که به دنبال یک ابزار قدرتمند برای تولید، تکمیل و درک کد هستند.
قابلیتهای کلیدی
- تولید کد: این مدل قادر است کد را در زبانهای برنامهنویسی مختلف تولید کند. تنها کافی است شرح مختصری از عملکرد مورد نظر ارائه دهید.
- تکمیل کد: با ارائه بخشی از کد، مدل میتواند بقیه آن را تکمیل کند. این قابلیت به خصوص در پروژههای بزرگ و پیچیده بسیار مفید است.
- اشکالزدایی کد: مدل میتواند خطاهای موجود در کد را شناسایی و پیشنهاداتی برای رفع آنها ارائه دهد.
- توضیح کد: مدل میتواند کد را به زبان طبیعی توضیح دهد. این قابلیت به درک بهتر کد و مستندسازی آن کمک میکند.
- تبدیل کد: مدل میتواند کد را از یک زبان برنامهنویسی به زبان دیگر تبدیل کند.
- حل مسائل ریاضی: این مدل میتواند مسائل ریاضی را حل کند و راهحلهای آنها را ارائه دهد.
- انجام وظایف عمومی: علاوه بر کدنویسی و ریاضیات، این مدل میتواند وظایف عمومی دیگری مانند ترجمه زبان، خلاصهسازی متن و پاسخ به سوالات را نیز انجام دهد.
نحوه استفاده
برای استفاده از این مدل، ابتدا باید یک حساب کاربری در وبسایت ای آی کار (AI-KAR) ایجاد کنید و یک کلید API دریافت کنید. سپس میتوانید از طریق API به مدل دسترسی پیدا کنید و درخواستهای خود را ارسال کنید. در این مستندات، نمونههایی از کد برای زبانهای برنامهنویسی مختلف ارائه شده است که میتوانید از آنها برای شروع کار استفاده کنید.
پارامترهای API
API این مدل دارای پارامترهای مختلفی است که میتوانید از آنها برای کنترل رفتار مدل استفاده کنید. در بخش API Schema، توضیحات کاملی در مورد هر یک از این پارامترها ارائه شده است.
مزایا
- عملکرد بالا: این مدل در زمینههای مختلف عملکرد بسیار خوبی دارد.
- قابلیتهای متنوع: این مدل قابلیتهای متنوعی را ارائه میدهد.
- استفاده آسان: استفاده از این مدل از طریق API بسیار آسان است.
نتیجهگیری
مدل qwen2.5-coder-32b-instruct یک ابزار قدرتمند و کارآمد برای توسعهدهندگان است که میتواند به آنها در انجام وظایف مختلف کدنویسی کمک کند. با استفاده از این مدل، میتوانید سرعت و کیفیت کار خود را به طور قابل توجهی افزایش دهید.
مشخصات فنی (API References)
| پارامتر | نوع | توضیحات و مقادیر |
|---|---|---|
model | stringRequired | مدل مورد استفاده برای تولید پاسخ. مقدار این پارامتر باید 'Qwen/Qwen2.5-Coder-32B-Instruct' باشد. مقادیر مجاز (کلیک برای کپی): |
messages | one of[]Required | لیستی از پیامها که مکالمه را تا این لحظه تشکیل میدهند. بسته به مدلی که استفاده میکنید، انواع مختلف پیام (modalities) مانند متن، اسناد (txt، pdf)، تصاویر و صدا پشتیبانی میشوند. |
max_tokens | number | حداکثر تعداد توکنهایی که میتوان در تکمیل چت تولید کرد. این مقدار میتواند برای کنترل هزینههای متن تولید شده از طریق API استفاده شود. |
stream | boolean | اگر روی True تنظیم شود، دادههای پاسخ مدل به صورت جریانی (stream) با استفاده از رویدادهای ارسال شده توسط سرور (server-sent events) به کلاینت ارسال میشوند. مقادیر مجاز (کلیک برای کپی): |
stream_options | object | تنظیمات مربوط به استریم کردن پاسخ. |
tools | object[] | لیستی از ابزارهایی که مدل میتواند فراخوانی کند. در حال حاضر، فقط توابع به عنوان ابزار پشتیبانی میشوند. از این برای ارائه لیستی از توابعی استفاده کنید که مدل میتواند ورودیهای JSON را برای آنها تولید کند. حداکثر 128 تابع پشتیبانی میشود. |
tool_choice | any of | کنترل میکند که کدام ابزار (در صورت وجود) توسط مدل فراخوانی شود. none به این معنی است که مدل هیچ ابزاری را فراخوانی نمیکند و در عوض یک پیام تولید میکند. auto به این معنی است که مدل میتواند بین تولید یک پیام یا فراخوانی یک یا چند ابزار انتخاب کند. required به این معنی است که مدل باید یک یا چند ابزار را فراخوانی کند. تعیین یک ابزار خاص از طریق {"type": "function", "function": {"name": "my_function"}} مدل را مجبور میکند که آن ابزار را فراخوانی کند. مقادیر مجاز (کلیک برای کپی): |
parallel_tool_calls | boolean | تعیین میکند که آیا فراخوانی موازی توابع در هنگام استفاده از ابزار فعال شود یا خیر. |
response_format | one of | یک شیء که فرمتی را مشخص میکند که مدل باید خروجی دهد. |
echo | boolean | اگر True باشد، پاسخ شامل prompt خواهد بود. میتواند با logprobs برای برگرداندن prompt logprobs استفاده شود. |
temperature | number | چه دمای نمونهبرداری (sampling temperature) استفاده شود. مقادیر بالاتر مانند 0.8 خروجی را تصادفیتر میکنند، در حالی که مقادیر پایینتر مانند 0.2 آن را متمرکزتر و قطعیتر میکنند. ما معمولاً توصیه میکنیم این یا top_p را تغییر دهید، اما نه هر دو را. |
top_p | number | جایگزینی برای نمونهبرداری با دما، به نام نمونهبرداری هستهای (nucleus sampling)، که در آن مدل نتایج توکنها را با جرم احتمال top_p در نظر میگیرد. بنابراین 0.1 به این معنی است که فقط توکنهایی که شامل 10٪ جرم احتمال برتر هستند در نظر گرفته میشوند. ما معمولاً توصیه میکنیم این یا temperature را تغییر دهید، اما نه هر دو را. |
n | integer | چند انتخاب تکمیل چت (chat completion choices) برای هر پیام ورودی تولید شود. توجه داشته باشید که هزینه شما بر اساس تعداد توکنهای تولید شده در تمام انتخابها محاسبه میشود. n را به عنوان 1 نگه دارید تا هزینهها را به حداقل برسانید. |
stop | any of | حداکثر 4 دنباله که API تولید توکنهای بیشتر را متوقف میکند. متن برگشتی شامل دنباله توقف نخواهد بود. |
logprobs | boolean | آیا احتمال لگاریتمی (log probabilities) توکنهای خروجی برگردانده شود یا خیر. اگر True باشد، احتمال لگاریتمی هر توکن خروجی که در محتوای پیام برگردانده شده است را برمیگرداند. |
top_logprobs | number | یک عدد صحیح بین 0 و 20 که تعداد محتملترین توکنها را برای بازگشت در هر موقعیت توکن مشخص میکند، هر کدام با یک احتمال لگاریتمی مرتبط. اگر این پارامتر استفاده شود، logprobs باید روی True تنظیم شود. |
logit_bias | object | احتمال ظاهر شدن توکنهای مشخص شده در تکمیل را تغییر دهید. یک شیء JSON را میپذیرد که توکنها (مشخص شده توسط شناسه توکن آنها در توکنساز) را به یک مقدار بایاس مرتبط از -100 تا 100 نگاشت میکند. از نظر ریاضی، بایاس به logits تولید شده توسط مدل قبل از نمونهبرداری اضافه میشود. اثر دقیق در هر مدل متفاوت خواهد بود، اما مقادیر بین -1 و 1 باید احتمال انتخاب را کاهش یا افزایش دهند. مقادیری مانند -100 یا 100 باید منجر به ممنوعیت یا انتخاب انحصاری توکن مربوطه شوند. |
frequency_penalty | number | عدد بین -2.0 و 2.0. مقادیر مثبت، توکنهای جدید را بر اساس فراوانی موجود آنها در متن تا کنون جریمه میکنند، و احتمال تکرار عین به عین همان خط توسط مدل را کاهش میدهند. |
prediction | object | پیکربندی برای یک خروجی پیشبینیشده، که میتواند زمان پاسخ را در زمانی که بخشهای بزرگی از پاسخ مدل از قبل مشخص هستند، بسیار بهبود بخشد. |
presence_penalty | number | مقادیر مثبت، توکنهای جدید را بر اساس اینکه آیا در متن تا کنون ظاهر شدهاند جریمه میکنند، و احتمال صحبت کردن مدل در مورد موضوعات جدید را افزایش میدهند. |
seed | integer | این ویژگی در نسخه بتا است. اگر مشخص شود، سیستم ما تمام تلاش خود را میکند تا به طور قطعی نمونهبرداری کند، به طوری که درخواستهای مکرر با همان seed و پارامترها باید نتیجه یکسانی را برگردانند. |
min_p | number | عددی بین 0.001 و 0.999 که میتواند به عنوان جایگزینی برای top_p و top_k استفاده شود. |
top_k | number | فقط از بین K گزینه برتر برای هر توکن بعدی نمونهبرداری کنید. برای حذف پاسخهای با احتمال کم "long tail" استفاده میشود. فقط برای موارد استفاده پیشرفته توصیه میشود. معمولاً فقط باید از temperature استفاده کنید. |
repetition_penalty | number | عددی که تنوع متن تولید شده را با کاهش احتمال تکرار دنبالههای تکراری کنترل میکند. مقادیر بالاتر تکرار را کاهش میدهند. |
نمونه کدهای درخواست
نکته مهم برای توسعهدهندگان:
برای احراز هویت، حتما کلید 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":"Qwen/Qwen2.5-Coder-32B-Instruct",
"messages":[
{
"role":"user",
"content":"Hello" # insert your prompt here, instead of Hello
}
]
}
)
data = response.json()
print(json.dumps(data, indent=4))نمونه پاسخ موفق (JSON)
{
"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
}
}
}