OpenAI
این صفحه به‌صورت ماشینی ترجمه شده است. مقاله اصلی انگلیسی را مشاهده کنید.

درخواست عملکرد در API OpenAI

درخواست عملکرد چیست و در API OpenAI چگونه کار می‌کند؟

به‌روزرسانی: 12 days ago

از ۱۱ مارس ۲۰۲۵، اجزای سازنده پلتفرم جدید Agents خود را منتشر کرده‌ایم. برای جزئیات، مستندات API ما را برای Responses API، ابزارها از جمله Web Search، File Search و Computer Use، و Agents SDK ما همراه با Tracing ببینید.

درخواست عملکرد به شما امکان می‌دهد مدل‌های OpenAI را به ابزارها و سیستم‌های خارجی متصل کنید. این برای کارهای بسیاری مفید است، مانند توانمند کردن دستیارهای AI با قابلیت‌ها، یا ساخت یکپارچه‌سازی‌های عمیق بین برنامه‌های شما و الگوهای زبانی بزرگ (LLM).

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

در ژوئن ۲۰۲۴، خروجی های دارای ساختار را راه‌اندازی کردیم. وقتی آن را با تنظیم strict: true در تعریف عملکرد خود روشن می‌کنید، خروجی های دارای ساختار تضمین می‌کند که آرگومان‌های تولیدشده توسط مدل برای یک فراخوانی عملکرد دقیقاً با الگوی JSON که در تعریف عملکرد ارائه کرده‌اید مطابقت داشته باشند.

در اکتبر ۲۰۲۴، قابلیت «هرچیزی را تولید کن» را راه‌اندازی کردیم که به توسعه‌دهندگان امکان می‌دهد یک عملکرد را توصیف کنند، آن را مستقیماً جای‌گذاری کنند یا کد خود را جای‌گذاری کنند و یک الگوی معتبر برای عملکرد تولید کنند. درباره «هرچیزی را تولید کن» در این مقاله مرکز راهنما بیشتر بیاموزید

چگونه می‌توانم از درخواست عملکرد استفاده کنم؟

درخواست عملکرد برای تعداد زیادی از موارد استفاده مفید است، مانند:

  • توانمند کردن دستیارها برای واکشی داده:

  • توانمند کردن دستیارها برای انجام اقدامات:

  • توانمند کردن دستیارها برای انجام محاسبه:

  • ساخت گردش‌کارهای غنی:

  • یک پایپ‌لاین استخراج داده که متن خام را واکشی می‌کند، سپس آن را به داده دارای ساختار تبدیل می‌کند و در یک پایگاه داده ذخیره می‌کند.

درخواست عملکرد در API پاسخ‌ها پشتیبانی می‌شود، که قابلیت‌هایی را یکپارچه می‌کند که پیش‌تر بین API های انتهای چت و API دستیاران تقسیم شده بودند.

چگونه می‌توانم از حالت JSON استفاده کنم؟

وقتی حالت JSON روشن است، تضمین می‌شود خروجی مدل JSON معتبر باشد، به‌جز در برخی موارد مرزی که باید آن‌ها را تشخیص دهید و به‌درستی مدیریت کنید.

برای درخواست حالت JSON با API های انتهای چت، در مدل‌های پشتیبانی‌شده response_format را روی { "type": "json_object" } تنظیم کنید. با API پاسخ‌ها، در موارد قابل‌استفاده، text.format را روی { "type": "json_object" } تنظیم کنید؛ برای مثال text: { "format": { "type": "json_object" } }. در هر دو API، حالت JSON فقط زمانی کار می‌کند که پیش‌نیازهای مدل/پیام/ابزار برآورده شده باشند (برای مثال، مدل از json_object پشتیبانی کند، مکالمه شامل دستورالعمل‌هایی برای تولید JSON باشد و هرگونه محدودیت ابزار سازگار باشد). حداقل یک پیام درخواست یا پیام ورودی در بافت ورودی مؤثر باید json را به شکلی بدون حساسیت به بزرگی/کوچکی حروف، مانند JSON، json یا Json، دربر داشته باشد؛ در غیر این صورت، API خطا برمی‌گرداند. در Responses، فیلد دستورالعمل‌های سطح بالا به‌تنهایی این اعتبارسنجی را برآورده نمی‌کند. وقتی درخواست عملکرد در مدل‌ها/مسیرهای سازگار استفاده می‌شود، محدودیت‌های JSON به‌طور خودکار روی آرگومان‌های فراخوانی عملکرد اعمال می‌شوند؛ مدل‌های ناسازگار یا ترکیب‌های ابزار/قالب پاسخ ممکن است رد شوند یا از نمونه‌گیری محدودشده به JSON استفاده نکنند.

نکات مهم:

  • هنگام استفاده از حالت JSON، همیشه باید از طریق پیامی در مکالمه، برای مثال از طریق پیام سیستمی خود، به مدل دستور دهید JSON تولید کند. اگر دستور صریحی برای تولید JSON قرار ندهید، مدل ممکن است جریانی بی‌پایان از فاصله‌های خالی تولید کند و درخواست ممکن است تا رسیدن به حد توکن به‌طور مداوم اجرا شود. برای کمک به اینکه فراموش نکنید، حالت JSON درخواست‌ها را رد می‌کند مگر اینکه پیام‌ها یا دستورالعمل‌های ورودی مرتبط، واژه json را به شکلی و بدون حساسیت به بزرگی/کوچکی حروف دربر داشته باشند.

  • حالت JSON تضمین نمی‌کند که خروجی با الگوی مشخصی مطابقت داشته باشد؛ فقط تضمین می‌کند که معتبر باشد و بدون خطا تجزیه شود. برای اطمینان از مطابقت آن با الگوی خود باید از خروجی های دارای ساختار استفاده کنید، یا اگر این ممکن نیست، باید از یک کتابخانه اعتبارسنجی و احتمالاً تلاش‌های دوباره استفاده کنید تا مطمئن شوید خروجی با الگوی موردنظر شما مطابقت دارد.

  • برنامه شما باید موارد مرزی‌ای را که می‌توانند باعث شوند خروجی مدل یک شیء کامل JSON نباشد، تشخیص دهد و مدیریت کند (در ادامه ببینید)

آیا این مقاله مفید بود؟