Yeo Kheng Meng es un investigador en seguridad incorporada que vive en Singapur y un entusiasta de la retroinformática. En 2019, Meng programó su propio cliente de Slack para Windows 3.1 y desde entonces se ha preguntado si sería posible utilizar una plataforma aún más antigua. Así que su último proyecto fue crear un cliente de ChatGPT que funcionara en la familiar interfaz de línea de comandos de los años 80 de MS-DOS. Desde entonces, Meng ha adaptado su cliente de DOS para conectarse con Hugging Face. Tanto ChatGPT como Hugging Face son servicios basados en inteligencia artificial generativa que han ganado una inmensa popularidad respondiendo a preguntas de la gente.
El mes pasado, Meng compartió su aventura en un evento de networking para desarrolladores junior, inspirando al público con su propio ejemplo del espíritu maker. "Pensé, si otras personas pueden hacer esto, ¿por qué no?", dijo con una risa.
Con toda la atención reciente centrada en ChatGPT y muchos clientes desarrollados para plataformas modernas, decidí ver si era posible escribir un cliente de ChatGPT para DOS y luego ejecutarlo en un viejo PC IBM 5155.
Traigamos la inteligencia de ChatGPT a las computadoras vintage 😀https://t.co/Oo2rYpVdDn
- Yeo Kheng Meng (@yeokm1) 26 de marzo de 2023
"Creé un cliente de DOS. Creé una aplicación, la open-sourceé, escribí un post sobre ella. Y honestamente me sorprendió la atención internacional que recibí por esto," agregó riendo.
Todo el experimento demostró cuánto ha cambiado la tecnología en las últimas décadas, pero también cuántas herramientas tenemos ahora para superar los obstáculos de interfaz. ¿Qué sucede cuando lo viejo se encuentra con lo nuevo? ¿Es realmente posible conectarse con una API moderna usando una máquina construida en 1984?
¿Y qué pensarían los chatbots impulsados por IA de los intentos de Meng de conectarse con ellos?
Revisitando 1984
Meng comenzó describiendo a MS-DOS como un sistema operativo "que es más antiguo que muchos de ustedes aquí". Y enfatizó el desafío señalando que el hardware que estaba utilizando era una computadora personal de 39 años de antigüedad de 1984: un IBM Portable Personal Computer 5155.
Fue construida hace tanto tiempo que pesaba unas abultadas treinta libras, dijo Yeo a su audiencia. "¡Esa es la razón por la que no la traigo aquí! ¡No se dejen engañar por el nombre, no es portátil en absoluto! Es más bien una PC 'luggable' (grandota, pero transportable)".
Construida durante la administración de Reagan, aproximadamente al mismo tiempo que la primera Macintosh de Apple, la PC de Meng tenía solo 640 KB de RAM. Esta era una era en la que las computadoras se enviaban con disquetes insertables para almacenar datos y programas, en lugar de incluir un disco duro. Para la audiencia, Meng entregó un disquete de 3 1/2 pulgadas "en caso de que alguno de ustedes no lo haya visto antes". (Meng bromeó diciendo que era "el botón 'Guardar' original").

Es tan antigua que no está equipada con capacidades inalámbricas, ni siquiera con un cable de internet, lo que presentó a Meng su primer desafío. Para obtener acceso a internet para su demostración, Yeo tuvo que insertar una tarjeta con un adaptador de Ethernet basado en dongle (que luego conecta a su iPad). "Adaptador tras adaptador, para llegar a internet".
Debido a que está limitado a ocho caracteres, Yeo nombró la aplicación: dosCHGPT.exe
"Presiona ESC para salir", agregó la aplicación útilmente...
Una API de inteligencia artificial
Pero incluso con una conexión a internet, la resolución de un problema solo lleva a otro. OpenAI se comunica a través de conexiones HTTPS seguras, lo que resulta ser un problema para DOS, ya que HTTPS no se inventó hasta 1994.Afortunadamente, Yeo ya había creado un proxy http-to-https para su aplicación de Slack en Windows 3.1 y pudo reutilizarlo aquí.
"No modifica el payload de ninguna manera", enfatizó Meng. "Lo que recibe de DOS, lo envía a los servidores de OpenAI. Lo que recibe de los servidores de OpenAI, simplemente se lo devuelve a la PC con DOS".
Luego, Meng envía la salida del programa a la biblioteca de networking mTCP, que implementa funciones cruciales como "enviar" y "recibir". (La tarjeta de red utiliza una API suministrada por el fabricante que puede conectarse a la propia API de ChatGPT).
Yeo incluso recibió un correo electrónico del creador de la biblioteca mTCP, el ingeniero de confiabilidad del sitio de Google Michael Brutman ofreciendo un "buen trabajo" por el proyecto y diciendo que habría tomado la misma decisión de eliminar la seguridad TLS de la conexión entrante de HTTPS. "TLS simplemente no va a funcionar en DOS", acordó el correo electrónico de Brutman. "Lo cual es algo que tengo que seguir explicando a la gente cada vez que preguntan por qué aún no hay un cliente SSH".
Todo es un testimonio del poder de una API y cómo su flexibilidad lleva a usos que nadie imaginó. Fue en marzo cuando OpenAI anunció "optimizaciones en todo el sistema" que redujeron el costo de las llamadas a API. Snap usó su API para construir un chatbot. Instacart utiliza la API para sugerir comidas y recetas. Alimenta al nuevo asistente de compras con inteligencia artificial de Shopify.
Y Meng lo usó para hablar con su cliente DOS casero en su computadora de 1984...
Demostrando a los desarrolladores
En frente de su audiencia en JuniorDev SG, Yeo escribió en ChatGPT: "¿Qué es JuniorDev SG?" El cursor parpadeó y hubo una pausa dramática. "Incluso en el sitio web, lleva un tiempo", dijo Yeo, cuando de repente apareció un párrafo de texto.JuniorDev SG es una comunidad de desarrolladores en Singapur apasionados por aprender y compartir conocimientos. La comunidad está abierta a todos los desarrolladores, pero está particularmente enfocada en aquellos que son nuevos en la industria...
Hubo algunos murmullos en el público cuando apareció el párrafo. Yeo preguntó entonces quién lo fundó, y se rió de la respuesta segura pero inexacta que surgió. "ChatGPT no siempre es correcto... Así que no confíen en ChatGPT para todo".
De hecho, una vez que el sistema estaba completamente terminado, Yeo le preguntó a ChatGPT si podía decirle cómo construir una interfaz DOS para ChatGPT. Y parecía advertirle:
- "Tengan en cuenta que crear un cliente de ChatGPT para DOS puede ser un desafío, ya que DOS es un sistema operativo obsoleto y puede que no tenga las herramientas y recursos necesarios para desarrollar aplicaciones modernas".
Yeo le dice a su audiencia: "Bien, entonces, desafío aceptado...".
Desde entonces, Meng ha hecho varias actualizaciones. MS-DOS precede al conjunto de caracteres UTF-8 (utilizado por JSON), por lo que Meng también codificó una enorme tabla de búsqueda para cada carácter no compatible por sí mismo.
En respuesta a una pregunta, Meng dice: "¡Probé ChatGPT! ¡No entiende lo que intento hacer!" Pero fue capaz de sugerir caracteres UTF-8 para las pruebas...
Meng incluso añadió una bandera a su aplicación: el argumento de línea de comandos -cp737-, que cambia la salida al conjunto de caracteres de página de código 737 para los usuarios que hablan griego.
Algunas personas le habían sugerido que añadiera una función de texto a voz, para que se pareciera al súper inteligente ordenador del Departamento de Defensa de la clásica película de 1983 Wargames.

Así que el 11 de mayo, Meng lo hizo.
¡HABLA! El cliente DOS ChatGPT ahora admite el texto a voz si utilizas una tarjeta compatible con SoundBlaster.
Esto está construido con herramientas proporcionadas por CreativeLabs para el primer chatbot de inteligencia artificial dr. Sbaitso.
Increíblemente adecuado adoptar la voz del Dr. Sbaitso en mi aplicación. https://t.co/ZcRni9nWJp
— Yeo Kheng Meng (@yeokm1) 11 de mayo de 2023
De vuelta al futuro
Pero lo más importante es que aprendió mucho en el camino — sobre UTF-8, sockets de red y manejo de consola. Y Meng dice que está genuinamente sorprendido por cuánto sigue siendo aplicable a las computadoras de hoy."Las computadoras han mejorado mucho en décadas, pero muchos conceptos siguen siendo los mismos", publicó Meng en Linked In, diciendo que toda la experiencia de construir un cliente ChatGPT que puede funcionar en DOS "realmente te da la apreciación de las herramientas bien desarrolladas que tenemos hoy en día".
Y como había abierto su código, Meng finalmente descubrió cuántas personas usaban el software que escribió para máquinas retrocomputadoras antiguas. "Uno se imaginaría que el mercado de las computadoras antiguas no es tan grande", Meng le dijo a su audiencia al final de su charla, "pero sorprendentemente, mucha gente lo usa. ¡Y ellos presentan problemas de Github que me dicen los errores que tiene mi programa!".
Meng recientemente añadió una actualización importante a su entrada en el blog. En lugar de interactuar únicamente con ChatGPT, "Este cliente ahora también soporta Hugging Face".
Ahora el cliente de chat DOS soporta también @huggingface! 😀 La aplicación se está ejecutando en mi IBM5155 de 1984. https://t.co/wvVhLsqDhi
Habíamos querido entrevistar a Meng, pero Hugging Face parece habernos superado en ello, en una encantadora conversación que Meng compartió en YouTube. Y así, el experimento terminó con Meng sentado frente a su ordenador de 39 años de edad, charlando con el último chatbot de IA de 2023...
Hugging Face: ¿Tienes algún pasatiempo que te guste hacer?
Meng: Sí. Uno de mis pasatiempos es el retrocomputing.
Hugging Face: Oh, eso es genial. Siempre he querido aprender a hacer eso. ¿Cuánto tiempo llevas haciéndolo?
Meng: Muchos años ya. Una de mis máquinas es una IBM5155 con la que estoy conversando contigo... ¿Adivina cuántos años tiene?
Hugging Face: No estoy seguro, pero debe ser bastante antigua. Ha estado por ahí desde 1958.
Meng: Nah, se vendió por primera vez en 1984.
Hugging Face: Oh, no me había dado cuenta de que era tan vieja. Pensé que era más antigua que eso...