API OpenAI: مقایسه پاسخ‌ها با تکمیل گفتگو - وبلاگ سایمون ویلیسون

API OpenAI: پاسخ‌ها در مقابل تکمیل گفتگو. OpenAI امروز صبح مجموعه‌ای از ویژگی‌های جدید پلتفرم API را با عنوان "ابزارهای جدید برای ساختن عامل‌ها" منتشر کرد (تفسیر نسبتاً مبهم آنها از "عامل‌ها" در اینجا "سیستم‌هایی هستند که به طور مستقل وظایفی را از طرف کاربران انجام می‌دهند").

یک تغییر به ویژه مهم، معرفی یک API پاسخ‌های جدید است که شکل کمی متفاوت‌تری از API تکمیل گفتگو دارد که آنها در چند سال گذشته ارائه داده‌اند و دیگران در صنعت به طور گسترده به عنوان یک استاندارد موردی از آن کپی برداری کرده‌اند.

در این راهنما آنها تفاوت‌ها را توضیح می‌دهند، با یک یادداشت اطمینان‌بخش که:

API تکمیل گفتگو یک استاندارد صنعتی برای ساخت برنامه‌های هوش مصنوعی است و ما قصد داریم به حمایت از این API به طور نامحدود ادامه دهیم. ما API پاسخ‌ها را برای ساده‌سازی گردش کار شامل استفاده از ابزار، اجرای کد و مدیریت حالت معرفی می‌کنیم. ما معتقدیم که این بدوی API جدید به ما این امکان را می‌دهد که به طور مؤثرتری پلتفرم OpenAI را در آینده ارتقا دهیم.

API که در حال حذف شدن است، API Assistants، یک نسخه بتا دائمی است که برای اولین بار در OpenAI DevDay در سال 2023 راه اندازی شد. API پاسخ‌های جدید به طور مؤثر همان مشکلات را حل می‌کند اما بهتر، و دستیارها "در نیمه اول سال 2026" منسوخ خواهند شد.

بهترین تصویری که من از تفاوت‌های بین این دو دیده‌ام، این کامیت غول‌پیکر به مخزن GitHub openai-python است که تمام کد مثال را به یکباره به‌روزرسانی می‌کند.

مهم‌ترین ویژگی API پاسخ‌ها (ویژگی‌ای که با API Assistants قدیمی مشترک است) این است که می‌تواند وضعیت مکالمه را روی سرور برای شما مدیریت کند. یک نکته عجیب در مورد API تکمیل گفتگو این است که شما باید سوابق خود را از مکالمه فعلی نگهداری کنید و نسخه‌های کامل آن را با هر درخواست جدید ارسال کنید. شما در نهایت تماس‌های API را برقرار می‌کنید که به این شکل هستند (از مثال‌های آنها):

{
    "model": "gpt-4o-mini",
    "messages": [
        {
            "role": "user",
            "content": "knock knock."
        },
        {
            "role": "assistant",
            "content": "Who's there?"
        },
        {
            "role": "user",
            "content": "Orange."
        }
    ]
}

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

API پاسخ‌های جدید همچنان از این لیست فرمت پیام‌ها پشتیبانی می‌کند، اما شما همچنین این گزینه را دارید که آن را به طور کامل به OpenAI برون‌سپاری کنید: می‌توانید یک ویژگی جدید "store": true اضافه کنید و سپس در پیام‌های بعدی یک کلید "previous_response_id: response_id را برای ادامه آن مکالمه وارد کنید.

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

همچنین جالب است: API پاسخ اکنون علاوه بر JSON از رمزگذاری فرم HTML نیز پشتیبانی می‌کند:

curl https://api.openai.com/v1/responses \
  -u :$OPENAI_API_KEY \
  -d model="gpt-4o" \
  -d input="What is the capital of France?"

من این را در یک رشته توییتر عالی یافتم که زمینه‌ای در مورد تصمیمات طراحی در API جدید از Atty Eleti از OpenAI ارائه می‌داد. در اینجا یک لینک nitter برای افرادی که حساب توییتر ندارند وجود دارد.

ابزارهای داخلی جدید

یک تغییر بالقوه هیجان‌انگیزتر امروز معرفی ابزارهای پیش‌فرض است که می‌توانید هنگام استفاده از API پاسخ‌های جدید درخواست کنید. سه مورد از اینها وجود دارد که همه آنها را می‌توان در آرایه "tools": [...] مشخص کرد.

  • {"type": "web_search_preview"} - همان ویژگی جستجو که از طریق ChatGPT در دسترس است. مستندات مشخص نمی‌کند که از کدام موتور جستجوی زیربنایی استفاده می‌شود - من در ابتدا بینگ را فرض کردم، اما مستندات ابزار به این صفحه مروری بر خززنده‌های OpenAI پیوند می‌دهد، بنابراین شاید اکنون کاملاً داخلی باشد؟ قیمت جستجوی وب بین 25 تا 50 دلار در هر هزار درخواست است، بسته به اینکه از GPT-4o یا GPT-4o mini استفاده می‌کنید و اندازه قابل تنظیم "زمینه جستجوی" شما چقدر است.
  • {"type": "file_search", "vector_store_ids": [...]} ادغام با آخرین نسخه جستجوی فایل فروشگاه برداری خود را فراهم می‌کند، که عمدتاً برای RAG استفاده می‌شود. "آیا قیمت استفاده 2.50 دلار در هر هزار درخواست و ذخیره سازی فایل 0.10 دلار/گیگابایت/روز است، با اولین گیگابایت رایگان؟".
  • {"type": "computer_use_preview", "display_width": 1024, "display_height": 768, "environment": "browser"} برای من شگفت‌انگیزتر است: این دسترسی ابزار به سیستم عامل استفاده از رایانه است که آنها برای محصول اپراتور خود ساخته‌اند. این یکی قرار است کاوش بسیار سرگرم‌کننده باشد. مستندات این ابزار شامل هشداری در مورد خطرات تزریق فوری است. اگرچه با بررسی دقیق‌تر، فکر می‌کنم این ممکن است بیشتر شبیه استفاده از رایانه کلود باشد، جایی که شما باید محیط سندباکس شده را خودتان اجرا کنید تا اینکه این قسمت دشوار را به آنها برون‌سپاری کنید.

من هنوز در حال فکر کردن در مورد چگونگی افشای این ویژگی‌های جدید در ابزار LLM خود هستم، که این واقعیت آن را سخت‌تر می‌کند که تعدادی از پلاگین‌ها اکنون به پیاده‌سازی پیش‌فرض OpenAI از هسته متکی هستند، که در حال حاضر بر روی تکمیل گفتگو ساخته شده است. من مدتی است که نگران تأثیر ساختن کل صنعت ما از روی یک API اختصاصی هستم که ممکن است در آینده تغییر کند، فکر می‌کنم اکنون باید ببینیم چگونه این موضوع پیش می‌رود!