پرش به مطلب اصلی

Chat Completions

Chat Completions مسیر اصلی گدارAI برای ساخت پاسخ متنی، چت چندپیامی، فراخوانی ابزار و خروجی ساختاریافته است. این API با قرارداد سازگار با OpenAI کار می‌کند؛ یعنی بسیاری از SDKها و نمونه‌کدهای رایج را می‌توانید با تغییر base_url و توکن، از مسیر گدارAI اجرا کنید.

POST /v1/chat/completions

این API چه مسئله‌ای را حل می‌کند؟

در محصول واقعی، اتصال مستقیم به چند ارائه‌دهنده مدل به‌سرعت پیچیده می‌شود: هر کدام احراز هویت، نام مدل، محدودیت پارامتر و گزارش مصرف خود را دارند. گدارAI این ارتباط را از یک درگاه واحد عبور می‌دهد تا شما بتوانید:

  • با یک قرارداد ثابت، مدل‌های مجاز فضای کاری را فراخوانی کنید.
  • دسترسی، بودجه، سقف نرخ و مسیر جایگزین را در یک نقطه کنترل کنید.
  • گزارش رخداد، رد درخواست، مصرف توکن و هزینه را برای هر درخواست ببینید.
  • شناسه مدل یا مدل مجازی را بدون تغییر گسترده در اپلیکیشن جایگزین کنید.

چه زمانی انتخاب خوبی است؟

از Chat Completions استفاده کنید وقتی می‌خواهید:

  • پاسخ متنی یا گفت‌وگویی تولید کنید.
  • تاریخچه پیام‌ها را با messages نگه دارید.
  • ورودی چندرسانه‌ای را همراه متن بفرستید، اگر مدل از آن پشتیبانی کند.
  • ابزارها را با tools و tool_choice فعال کنید.
  • خروجی JSON یا JSON Schema قابل پردازش بگیرید.
  • پاسخ را به‌صورت جریانی در رابط کاربری نمایش دهید.

اگر هدف شما بردارسازی متن، بررسی ایمنی محتوا یا پردازش دسته‌ای است، APIهای تخصصی همان بخش را انتخاب کنید.

شروع سریع

import requests

response = requests.post(
"https://YOUR_WORKSPACE.godarai.ir/v1/chat/completions",
headers={
"Authorization": "Bearer YOUR_GODARAI_TOKEN",
"Content-Type": "application/json",
},
json={
"model": "openai:default:gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "سلام، گدارAI را در دو جمله معرفی کن."
}
]
},
timeout=60,
)

response.raise_for_status()
print(response.json())

برای اجرای همین نمونه به سه مقدار نیاز دارید: توکن گدارAI، نشانی پایه درگاه و شناسه مدلی که در فضای کاری شما مجاز است. برای سرویس‌های محیط عملیاتی، کلید دسترسی مجازی انتخاب مطمئن‌تری از توکن شخصی است.

ساختار پایه درخواست

حداقل درخواست معمولاً شامل این دو فیلد است:

{
"model": "openai:default:gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "تفاوت حافظه نهان و سقف نرخ را ساده توضیح بده."
}
]
}

messages نباید خالی باشد. هر پیام یک role دارد و مقدارهای رایج آن system، user، assistant و tool هستند. پیام سیستمی برای تعیین رفتار کلی مدل خوب است، اما داده پویا و حساس را بهتر است در پیام کاربر یا نتیجه ابزار با کنترل دقیق‌تر وارد کنید.

پارامترهای رایج

پارامترکاربرد
temperatureمیزان تنوع پاسخ را کنترل می‌کند. برای پاسخ‌های دقیق‌تر مقدار پایین‌تر انتخاب کنید.
top_pروش دیگری برای کنترل تنوع است. معمولاً لازم نیست هم‌زمان با temperature زیاد تغییر کند.
max_tokensسقف توکن خروجی را تعیین می‌کند. مقدار باید حداقل 1 باشد.
streamاگر true باشد، پاسخ به‌صورت جریانی برمی‌گردد.
tools و tool_choiceبرای فراخوانی ابزار و ساخت جریان‌های عامل‌محور استفاده می‌شود.
response_formatبرای خروجی JSON یا ساختاریافته کاربرد دارد.

پشتیبانی همه پارامترها برای همه مدل‌ها یکسان نیست. قبل از تکیه روی یک پارامتر، آن را با همان مدل و ارائه‌دهنده‌ای که در محیط شما فعال است آزمایش کنید.

قابلیت‌های مرتبط

پاسخ جریانی

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

خطاهای رایج

  • messages array must not be empty: آرایه پیام‌ها خالی است.
  • max_tokens must be at least 1: سقف خروجی نامعتبر است.
  • Model access denied or unsupported for chat completions: مدل انتخابی در دسترسی فعلی مجاز نیست یا با این API سازگار نیست.
  • خطاهای ورودی چندرسانه‌ای: معمولاً مدل یا ارائه‌دهنده انتخابی آن نوع رسانه را پشتیبانی نمی‌کند.

برای عیب‌یابی، اول قرارداد درخواست را بررسی کنید، بعد دسترسی مدل و در پایان گزارش رخداد و رد درخواست را ببینید. این ترتیب ساده، خطاهای رایج را سریع‌تر جدا می‌کند.

جمع‌بندی

Chat Completions پایه بیشتر اتصال‌های متنی در گدارAI است. اگر این مسیر را درست بسازید، قابلیت‌های پیشرفته‌تر مثل ابزارها، خروجی ساختاریافته، ورودی چندرسانه‌ای، حافظه نهان و استدلال هم روی همان پایه قابل فهم و قابل کنترل می‌شوند.