روز یکشنبه، Yeo Kheng Meng، علاقهمند به retrocomputing مستقر در سنگاپور، یک کلاینت ChatGPT را برای MS-DOS منتشر کرد که میتواند از سال 1981 بر روی رایانه شخصی IBM با فرکانس 4.77 مگاهرتز اجرا شود و راهی منحصر به فرد برای مکالمه با مدل زبان محبوب OpenAI ارائه میکند.
پروژههای توسعه رایانه قدیمی به طور طبیعی برای Yeo اتفاق میافتد، که در سال 2019 یک کلاینت Slack برای ویندوز 3.1 ایجاد کرد. او در وبلاگ خود مینویسد: «من فکر کردم این بار چیزی متفاوت را امتحان کنم و برای یک پلتفرم حتی قدیمیتر به عنوان یک چالش توسعه دهم. در این مورد، او توجه خود را به MS-DOS معطوف کرد، یک سیستم عامل فقط متنی که اولین بار در سال 1981 منتشر شد، و ChatGPT، یک مدل زبان بزرگ (LLM) که توسط OpenAI در نوامبر منتشر شد.
ChatGPT به عنوان یک مدل هوش مصنوعی محاوره ای، از دانش استخراج شده از اینترنت برای پاسخ به سؤالات و تولید متن استفاده می کند. به لطف یک API که ماه خود را راه اندازی کرد، هر کسی که دارای برنامه نویسی باشد می تواند ChatGPT را با برنامه سفارشی خود ارتباط برقرار کند.
به لطف برنامه جدید خود که می تواند روی MS-DOS اجرا شود، Yeo می تواند از یک کامپیوتر قدیمی سازگار با IBM PC برای چت با ChatGPT از طریق اینترنت استفاده کند. این مکالمه رفت و برگشتی مشابه رابط وب سنتی ChatGPT است، البته به عنوان یک برنامه فقط متنی و تمام صفحه که روی دستگاه عتیقه اجرا می شود.
چالش های توسعه
MS-DOS یک پلت فرم چالش برانگیز را برای یک کلاینت ChatGPT ایجاد کرد که فاقد توانایی های شبکه بومی بود. علاوه بر این، Yeo کامپیوتری با قدرت پردازش بسیار محدود را هدف قرار داد: یک کامپیوتر قابل حمل IBM 5155 1984، که شامل یک پردازنده 4.77 مگاهرتزی اینتل 8088، حافظه معمولی 640 کیلوبایت، گرافیک CGA ISA و MS-DOS 6.22 است.
برای ایجاد کلاینت، Yeo از Open Watcom C/C++ استفاده کرد، یک کامپایلر مدرن که بر روی ویندوز 11 اجرا می شود و می تواند پلتفرم های 16 بیتی DOS را هدف قرار دهد. برای اهداف آزمایشی، او از یک ماشین مجازی VirtualBox با سیستم عامل DOS 6.22 برای ساده کردن فرآیند توسعه استفاده کرد، سپس باینری کامپایل شده را برای آزمایش به رایانه شخصی IBM DOS مورد نظر منتقل کرد.
برای مدیریت شبکه در رایانه شخصی IBM، یئو نیاز داشت که راه خود را از طریق چندین لایه ببافد. اول، Yeo از یک استاندارد “Packet Driver API” استفاده کرد که در سال 1983 اختراع شد. او کتابخانه منبع باز MTCP توسط Michael B. Brutman را برای برقراری ارتباط با Packet Driver در برنامه یکپارچه کرد و قابلیت های شبکه را برای مشتری فراهم کرد.
برای ChatGPT API، Yeo از Chat Completion API OpenAI استفاده کرد و درخواست POST (و تجزیه پاسخ با فرمت JSON) را به صورت دستی در C ساخت.
با این حال، Yeo به یک مشکل بزرگ برخورد کرد: API های ChatGPT به اتصالات HTTPS رمزگذاری شده نیاز دارند. از آنجایی که هیچ کتابخانه HTTPS بومی برای MS-DOS وجود ندارد، Yeo مجبور شد یک پروکسی HTTP-to-HTTPS ایجاد کند که می تواند روی یک کامپیوتر مدرن اجرا شود و درخواست ها و پاسخ ها را بین مشتری MS-DOS و API ایمن ChatGPT ترجمه کند. واسطه شفاف در فرآیند ارتباط
Yeo میگوید که خواندن و نوشتن ورودیهای کنسول چالش دیگری را به دلیل ماهیت تک رشتهای برنامههای DOS ایجاد کرد. او روشی را برای بررسی و دریافت کلیدهای فشرده بدون توقف برنامه با استفاده از صفحه MTCP و نمونه های آنلاین به عنوان مرجع ابداع کرد.
در پایان، مشتری بهتر از آنچه که Yeo انتظار داشت کار میکند، و او مشتاقانه منتظر چالشهای قدیمیتر در آینده است: “پس از تجربه این موضوع، قطعاً در آینده نرمافزارهای یکپارچهسازی با سیستمعامل بیشتری خواهم نوشت. روند توسعه خود را با جزئیات بیشتر.
Yeo کد خود را (به نام “doschgpt”) در GitHub منتشر کرده است اگر دیگران بخواهند خودشان آن را اجرا کنند – یا شاید در آینده کد را بهبود یا گسترش دهند. با کمی خلاقیت، جدیدترین فناوری در مدلهای زبان هوش مصنوعی نباید به ماشینهای پیشرفته محدود شود.