Aficionado construye el cliente ChatGPT para MS-DOS


Agrandar / Una foto de una computadora portátil IBM PC 5155 que ejecuta un cliente ChatGPT escrita por Yeo Kheng Meng.

El domingo, el entusiasta de la retrocomputación con sede en Singapur, Yeo Kheng Meng, lanzó un cliente ChatGPT para MS-DOS que puede ejecutarse en una PC IBM de 4,77 MHz de 1981, proporcionando una forma única de conversar con el popular modelo de lenguaje OpenAI.

Los proyectos antiguos de desarrollo de computadoras son algo natural para Yeo, quien creó un cliente de Slack para Windows 3.1 en 2019. «Pensé en probar algo diferente esta vez y desarrollar para una plataforma aún más antigua como un desafío», escribe en su blog. En este caso, centró su atención en MS-DOS, un sistema operativo de solo texto lanzado por primera vez en 1981, y ChatGPT, un modelo de lenguaje grande (LLM) impulsado por IA lanzado por OpenAI en noviembre.

Como modelo de IA conversacional, ChatGPT se basa en el conocimiento extraído de Internet para responder preguntas y generar texto. Gracias a una API que se lanzó este mes, cualquier persona con habilidades de programación puede interactuar con ChatGPT con su propia aplicación personalizada.

Gracias a su nueva aplicación, que puede ejecutarse en MS-DOS, Yeo puede usar una computadora antigua compatible con IBM PC para chatear con ChatGPT a través de Internet. Es una conversación de ida y vuelta similar a la interfaz web tradicional de ChatGPT, aunque como una aplicación de pantalla completa de solo texto que se ejecuta en la máquina antigua.

Desafíos de desarrollo

Una foto de una computadora IBM PC 5155 que ejecuta un cliente ChatGPT escrita por Yeo Kheng Meng.
Agrandar / Una foto de una computadora IBM PC 5155 que ejecuta un cliente ChatGPT escrita por Yeo Kheng Meng.

MS-DOS planteó una plataforma particularmente desafiante para un cliente de ChatGPT, que carecía de capacidades de red nativas. Además, Yeo apuntó a una computadora con un poder de procesamiento muy limitado: una PC portátil IBM 5155 de 1984, que incluye una CPU Intel 8088 de 4,77 MHz, memoria convencional de 640 KB, gráficos CGA ISA y MS-DOS 6.22.

Para crear el cliente, Yeo usó Open Watcom C/C++, un compilador moderno que se ejecuta en Windows 11 y puede apuntar a plataformas DOS de 16 bits. Para fines de prueba, usó una máquina virtual VirtualBox que ejecutaba DOS 6.22 para agilizar el proceso de desarrollo, luego transfirió el binario compilado a la PC IBM DOS de destino para la prueba.

Para manejar las redes en la PC de IBM, Yeo necesitaba abrirse camino a través de varias capas. En primer lugar, Yeo utilizó un estándar «Packet Driver API» inventado en 1983. Integró la biblioteca MTCP de código abierto de Michael B. Brutman en la aplicación para comunicarse con Packet Driver, lo que permitió capacidades de red para el cliente.

Para la API de ChatGPT, Yeo usó la API de finalización de chat de OpenAI, construyendo la solicitud POST (y analizando la respuesta con formato JSON) manualmente en C.

Sin embargo, Yeo se topó con un gran inconveniente: las API de ChatGPT requieren conexiones HTTPS encriptadas. Dado que no existen bibliotecas HTTPS nativas para MS-DOS, Yeo creó un proxy HTTP a HTTPS que puede ejecutarse en una computadora moderna y traducir las solicitudes y respuestas entre el cliente MS-DOS y la API segura de ChatGPT, actuando como un intermediario transparente. en el proceso de comunicación.

Yeo dice que leer y escribir entradas en la consola presentó otro desafío debido a la naturaleza de subproceso único de las aplicaciones DOS. Ideó un método para verificar y recibir pulsaciones de teclas sin pausar el programa utilizando la página MTCP y muestras en línea como referencia.

Al final, el cliente funciona mejor de lo que esperaba Yeo, y espera más desafíos retro en el futuro: «Después de experimentar esto, definitivamente escribiré más software retro en el futuro», escribe en una publicación de blog que describe su proceso de desarrollo con más detalle.

Yeo lanzó su código (llamado «doschgpt») en GitHub si otros quieren ejecutarlo, o tal vez mejorar o ampliar el código en el futuro. Con un poco de creatividad, la última tecnología en modelos de lenguaje de IA no tiene por qué limitarse a máquinas de última generación.



Source link-49