Agrandir / Une photo d’un ordinateur portable IBM PC 5155 exécutant un client ChatGPT écrite par Yeo Kheng Meng.
Dimanche, Yeo Kheng Meng, passionné de rétroinformatique basé à Singapour, a publié un client ChatGPT pour MS-DOS qui peut fonctionner sur un PC IBM à 4,77 MHz à partir de 1981, offrant un moyen unique de converser avec le modèle de langage OpenAI populaire.
Les projets de développement informatique vintage viennent naturellement à Yeo, qui a créé un client Slack pour Windows 3.1 en 2019. “J’ai pensé essayer quelque chose de différent cette fois et développer pour une plate-forme encore plus ancienne comme un défi”, écrit-il sur son blog. Dans ce cas, il s’est tourné vers MS-DOS, un système d’exploitation en texte seul sorti pour la première fois en 1981, et ChatGPT, un modèle de grand langage (LLM) alimenté par l’IA publié par OpenAI en novembre.
En tant que modèle d’IA conversationnel, ChatGPT s’appuie sur des connaissances extraites d’Internet pour répondre aux questions et générer du texte. Grâce à une API lancée ce mois-ci, toute personne connaissant la programmation peut interfacer ChatGPT avec sa propre application personnalisée.
Grâce à sa nouvelle application, qui peut fonctionner sur MS-DOS, Yeo peut utiliser un ordinateur compatible IBM PC vintage pour discuter avec ChatGPT sur Internet. Il s’agit d’une conversation de va-et-vient similaire à celle de l’interface Web ChatGPT traditionnelle, bien qu’il s’agisse d’une application plein écran en mode texte uniquement fonctionnant sur la machine antique.
Défis de développement
Agrandir / Une photo d’un ordinateur IBM PC 5155 exécutant un client ChatGPT écrite par Yeo Kheng Meng.
MS-DOS posait une plate-forme particulièrement difficile pour un client ChatGPT, dépourvu de capacités de mise en réseau natives. De plus, Yeo a ciblé un ordinateur avec une puissance de traitement très limitée : un PC portable IBM 5155 de 1984, qui comprend un processeur Intel 8088 4,77 MHz, une mémoire conventionnelle de 640 Ko, des graphiques CGA ISA et MS-DOS 6.22.
Publicité
Pour créer le client, Yeo a utilisé Open Watcom C/C++, un compilateur moderne fonctionnant sous Windows 11 qui peut cibler les plates-formes DOS 16 bits. À des fins de test, il a utilisé une machine virtuelle VirtualBox exécutant DOS 6.22 pour rationaliser le processus de développement, puis il a transféré le binaire compilé sur le PC IBM DOS cible pour les tests.
Pour gérer la mise en réseau sur l’IBM PC, Yeo devait se frayer un chemin à travers plusieurs couches. Tout d’abord, Yeo a utilisé une norme “Packet Driver API” inventée en 1983. Il a intégré la bibliothèque MTCP open source de Michael B. Brutman dans l’application pour communiquer avec le Packet Driver, permettant des capacités de mise en réseau pour le client.
Pour l’API ChatGPT, Yeo a utilisé l’API Chat Completion d’OpenAI, en construisant la requête POST (et en analysant la réponse au format JSON) manuellement en C.
Cependant, Yeo a rencontré un problème majeur : les API ChatGPT nécessitent des connexions HTTPS cryptées. Puisqu’il n’y a pas de bibliothèques HTTPS natives pour MS-DOS, Yeo a créé un proxy HTTP vers HTTPS qui peut s’exécuter sur un ordinateur moderne et traduire les requêtes et les réponses entre le client MS-DOS et l’API sécurisée de ChatGPT, agissant comme un intermédiaire transparent. dans le processus de communication.
Yeo dit que la lecture et l’écriture d’entrées sur la console présentaient un autre défi en raison de la nature monothread des applications DOS. Il a conçu une méthode pour vérifier et recevoir les pressions sur les touches sans interrompre le programme en utilisant la page MTCP et des échantillons en ligne comme référence.
En fin de compte, le client fonctionne mieux que ce à quoi Yeo s’attendait, et il attend avec impatience d’autres défis rétro à l’avenir : “Après avoir expérimenté cela, j’écrirai certainement plus de logiciels rétro à l’avenir”, écrit-il dans un article de blog qui décrit son processus de développement plus en détail.
Yeo a publié son code (appelé “doschgpt”) sur GitHub si d’autres veulent l’exécuter, ou peut-être améliorer ou étendre le code à l’avenir. Avec un peu de créativité, les dernières technologies en matière de modèles de langage d’IA ne doivent pas être limitées aux machines de pointe.