Modder maakt ChatGPT voor Windows 3.1-systemen 'WinGPT'

Modder Dialup.net heeft een variant van ChatGPT werkend weten te krijgen op Windows 3.1. De maker noemt het programma WinGPT. De chatbot maakt direct verbinding met OpenAI-servers, maar werkt slechts in beperkte mate vanwege hardwarebeperkingen van Windows 3.1.

WinGPTWinGPT kan dankzij de TLS 1.3-standaard en een OpenAI-api direct verbinding maken met de servers van ChatGPT. De maker moest vervolgens zelf een aangepaste statusbalk voor de UI in de C-programmeertaal ontwikkelen, legt Dialup.net uit. Microsoft maakte volgens Neowin namelijk nooit de native statusbalk openbaar voor ontwikkelaars. Ironisch genoeg werd de modder bijgestaan door de hedendaagse versie van ChatGPT voor de implementatie van die statusbalk.

Het programma zou relatief beperkt werken, mede doordat Windows 3.1 in de praktijk slechts 256MB ram ondersteunt in de 386 Enhanced-modus. De antwoorden die WinGPT genereert, zijn daarom vrij kort. De retrochatbot kan daarnaast geen contextuele vragen beantwoorden. Een van de belangrijkste ontwikkelingen van ChatGPT is juist de mogelijkheid om door te vragen, waarbij de chatbot rekening houdt met eerdere vragen en antwoorden.

Door Yannick Spinner

Redacteur

26-06-2023 • 17:09

66

Submitter: breezie

Reacties (66)

66
66
34
1
0
27
Wijzig sortering
Toch is het me niet erg duidelijk waarom je relatief veel (256mb) geheugen nodig hebt en dat daarom de antwoorden beperkt zijn. De win 3.1 client moet toch "alleen maar" een api aanroepen?
Klopt, maar je moet de context (vorige berichten van de gebruiker en de AI responses) zelf meesturen met API calls. Ik zou ook verwachten dat dit wel mogelijk is, maar dat je snel gelimiteerd wordt tot een beperkte context - zeker gezien wat het programma verder nog allemaal moet doen.

Verder uit het artikel:
[...] I tried to reduce the amount of memory needed for WinGPT, especially in sending and receiving the query and response from the OpenAI API. The JSON responses of modern APIs aren't especially optimized for size, and OpenAI's API is no exception.

[Reactie gewijzigd door Luca_Scorpion op 23 juli 2024 14:05]

Klopt, maar je moet de context (vorige berichten van de gebruiker en de AI responses) zelf meesturen met API calls.

Verder uit het artikel:

I tried to reduce the amount of memory needed for WinGPT, especially in sending and receiving the query and response from the OpenAI API. The JSON responses of modern APIs aren't especially optimized for size, and OpenAI's API is no exception.
Dit betreft een algemene aanklacht, tegen overhead op .json traffic aangaande web-exposing API's.

Maar op low resource omgevingen loop je hier dus het eerste tegenaan.
De antwoorden die WinGPT genereert, zijn daarom vrij kort. De retrochatbot kan daarnaast geen contextuele vragen beantwoorden. Een van de belangrijkste ontwikkelingen van ChatGPT is juist de mogelijkheid om door te vragen, waarbij de chatbot rekening houdt met eerdere vragen en antwoorden.

However, I did run into an issue where the TLS code thinks the received encrypted data is "too large" because it's 1 byte. For now, I've commented the check out, and it seems to work in real-world situations, but I would love to understand why this is happening.
Het project betreft dan ook meer een aansporing:
You will also find that I have not figured out a way to integrate with the build tools (like CMake) that the rest of WolfSSL uses, or made changes in a way that will be easy to integrate back into the main source tree. If someone wants to make 16-bit Windows a supported architecture for WolfSSL, that would be great—I haven't got there yet.

[Reactie gewijzigd door Bulkzooi op 23 juli 2024 14:05]

256 MB RAM,

Weet je hoeveel text je daar in kwijt kan in Json formaat. ?

Dat zou geen enkele issue mogen zijn zelfs niet voor 16 MB Ram.
Als je die 256 MB enkel voor je JSON kan gebruiken is dat flink wat, maar als ik het goed begrijp is dit de totale hoeveelheid RAM, die dus door het hele systeem gebruikt wordt. Dus ook het OS, de WinGPT applicatie, de tekst die in de UI weergegeven wordt, etc. Geen idee hoeveel er daarna nog overblijft om JSON te serializeren, maar het zal een stuk minder zijn dan het totaal.
Windows 3.1, MS Dos 6.22 en alle bijbehorende drivers draai je redelijk soepel in 4MB RAM :) Zelfs in 2MB is het te doen, maar dan loop je al wel tegen beperkingen aan. Neem even 12MB als basis voor OS en Windows (zeeeer ruim) om swapping te voorkomen. Neem dan nog een paar MB als buffer voor je internetverbinding en dat is het wel.

Ik ga er dan ook vanuit dat je 240MB beschikbaar hebt voor de hele ChatGPT reut.

Dat was in de tijd van Windows 3.xx trouwens onbetaalbaar; de standaard was 4 of 8 MB RAM voor je systeem van fl 5.000,= :P
En in 240 MB past makkelijk een woordenboek van 350.000 woorden. In kleinste vorm 9 MB en in lompe bruikbare vorm gebruikt is het bij mij 75 MB
Goede vraag, ik zou namelijk ook denken dat 'alles' serverside gebeurd.
Zonder Windows, direct in MS-DOS, dan heb je meer ram vrij.
Hangt er vanaf. Standaard ( real mode ) heb je ongeveer 700Kb tot je beschikking. Wellicht met een geheugen manager iets meer.
De protected-mode was in de nadagen van het DOS-tijdperk toch prima te gebruiken hoor... Borland Pascal, Borland C++, WatCom C++, of DJGPP waren allemaal compilers die standaard een programma voor protected-mode MS-DOS konden uitspugen. En dan heb je inderdaad 95% van het geheugen van de computer beschikbaar.
De protected-mode was in de nadagen van het DOS-tijdperk toch prima te gebruiken hoor... Borland Pascal, Borland C++, WatCom C++, of DJGPP waren allemaal compilers die standaard een programma voor protected-mode MS-DOS konden uitspugen. En dan heb je inderdaad 95% van het geheugen van de computer beschikbaar.
Gestripte binaries, van debug symbols, kon de experience nog meer veraangenamen. Met lekkere kleine programma.
Aangezien er nog best een boel moet gebeuren om alles voor elkaar te krijgen.
Windows 3.1 ondersteund geen (noemenswaardige) versleutelingsalgoritmen in het besturingssysteem. Die moeten dus meegenomen worden in de software.

Zo zullen er nog meer bibliotheken meegenomen moeten worden die alleen al voor de communicatie en waarschijnlijk ook nog voor andere zaken.
256MB RAM is toch gigantisch voor Windows 3.1?

In die tijd mocht je blij zijn met 16MB RAM.
256MB RAM is toch gigantisch voor Windows 3.1?

In die tijd mocht je blij zijn met 16MB RAM.
Ben je gek. Ik runde bijna al mijn games native vanaf de prompt. In de praktijk kon je, ondanks limitaties, geweldige games draaien. Denk bijvoorbeeld aan die engine waarmee King Quest IV is gemaakt. En al die populaire Sierra games die ouder zijn dus. Daarbij kon je ook 32 mb AGP video kaarten aanspreken. ISA kaarten supportte volgens mij niet meer dan 16 MB modellen.

Hetzelfde geldt voor die 32 bit Soundblaster, hoewel veel sound engineers voorkeur hadden voor Adlib.

Zo lang de engine maar goed rekening houdt met de constraints en creatief is in het omzeilen van de bottleneck.

[Reactie gewijzigd door Bulkzooi op 23 juli 2024 14:05]

Los daarvan konden de computers het niet adresseren

Er was voor Windows 3.1 een praktische limiet van 256MB in die tijd

https://jeffpar.github.io/kbarchive/kb/084/Q84388/
Anoniem: 58485 @ZeromaNoiS26 juni 2023 22:17
4MB ram zelfs. Later met Win95 werd dat 16 ~ 32MB ram.
Dat was dan ook de eerste user config die van belang was op Win 3.11:
set HIMEM=
(en xmms en allerlei custom configs afhankelijk van de setup)

The Extended Memory Specification (XMS) allows to map blocks of mainboard RAM in the remaining UMA memory range.
doordat Windows 3.11 in de praktijk slechts 256MB ram ondersteunt in de 386 Enhanced-modus.
Maar cool. ChatGPT is ook (gedeeltelijk) beschikbaar vanuit 16-bit. Het ~runt~in ieder geval vanaf Windows 3.11, met die statusbalk patches en wat aangepaste custom UI C-code uit 1997.
Maar ja, het zijn dan ook enkel maar API-calls, met TLS 1.3 en de TLS_AES_128_GCM_SHA256 cipher suite van WolfSSL, naar de OpenAI API.

Note:
Sommige limitaties zitten opgesloten in Microsoft's 16-bit "386 Enhanced-modus".
a few different TLS libraries that might work: OpenSSL, BearSSL, Mbed TLS, and WolfSSL.

WolfSSL stood out among the pack as it had explicit 16-bit compiler support while being fully-featured and well-supported. It also had a wide range of support code for all sorts of hardware with different constraints—including limited memory—giving me a plethora of examples I could learn from.
Praktisch gezien liep je vooral tegen bestandsgrootte limitaties aan, met 2 GB limit (in FAT). Da's ook een beetje de achtergrond bij de .par file zoals je die gewoon bent bij de newsgroup-servers.
Ook de download managers zoals je die gebruikt als addons in de browsers werken op een dergelijke manier, om resume toe te passen en meerdere streams te openen.

[Reactie gewijzigd door Bulkzooi op 23 juli 2024 14:05]

Anoniem: 1617016 @Bulkzooi26 juni 2023 17:17
Ik denk dat je HIMEM bedoelt, niet hymen :D
Ik denk dat je HIMEM bedoelt, niet hymen :D
thnx, aangepast.

Weet je ook het verschil tussen Window 3.1 en 3.11?
3.11 was meer gericht op netwerken (de naam was ook Windows for Workgroups)
3.11 was meer gericht op netwerken (de naam was ook Windows for Workgroups)
oke, maar heel de historie ging het over Windows 3.11, en dit is Windows 3.1.
Windows 3.x didn't come with TCP/IP built in.
Ik vermoed dat 3.1 een USA-first release is, die via de minor update naar 3.11 internationaal ging en zo dus ook de referentie is geworden.

maar da's puur een gokje.

Dat zal dus met die Microsoft TCP/IP-32 3.11b network stack van doen hebben, en da's for een stand-alone cliënt niet eens Core technology. Alternatief is bijvoorbeeld de Trumpet Winsock implementatie.
TCP/IP implementation which you interface through Winsock (the Windows Sockets API).

[Reactie gewijzigd door Bulkzooi op 23 juli 2024 14:05]

Nee, Windows 3.11 kwam ca anderhalf jaar later. 3.1 was gewoon wereldwijd beschikbaar.

https://en.m.wikipedia.org/wiki/Windows_3.1x

Het hangt denk ik met name af welke versie je waar gebruikte. Ik ben vooral Wondows 3.1 gewend vanuit mijn jeugd (thuis, bij vrienden, op school).

Veel verschil, op wat netwerkdingen (wat destijds toch al exotisch was) zijn de twee OS-en gelijk.
Het grote verschil betreft Microsoft internals en gerelateerde componenten. Ze ontwikkelden een enorme hoeveelheid libraries parallel, en daar zat en zit altijd een idee achter.

Dual boot was een bios config, master/slave en nog langer geleden had je jumpers op moederbord, harddisks & optical ROM drives.

Belangrijk voor een goed werkend systeem waren de chipset drivers voor ecosystemen zoals ATI, Nvidia en Voodoo. De gfx-stuff, zoals die de software gewoonlijk toegankelijk was via de Adobe producten en games.

Hetzelfde geldt voor network software. Een ook de tv-kaarten, die weer anders waren dan de video-kaarten want die hadden een COAX poort.

[Reactie gewijzigd door Bulkzooi op 23 juli 2024 14:05]

Windows 3.1 for workgroups dan?
Windows 3.11 zonder workgroups dan?
3.11 was gewoon een update over 3.1; zoals je ook voor XP de servicepacks kon toepassen. Of je nu workgroups ( = netwerkfunctionaliteit) gebruikte of niet :)
Laten we in dit lijstje ook Windows 3.0 niet vergeten trouwens. Die had 90% van alle functionaliteiten van 3.1x aan boord.

Voor de duidelijkheid: ChatGPT vraagt internet dus draait op een workgroups-versie of een aangepaste versie waar de netwerkcomponenten zijn toegevoegd (er in gehaxxt of 3d party)

[Reactie gewijzigd door Waterbeesje op 23 juli 2024 14:05]

Dat was dan ook de eerste user config die van belang was op Win 3.11:
Je bedoelt in config.sys:
device=himem.sys
Waaraan je parameters kon toevoegen om naar keuze UMB, XMS en EMS-geheugen te configureren.
Je bedoelt in config.sys:
[device=himem.sys]

Waaraan je parameters kon toevoegen om naar keuze UMB, XMS en EMS-geheugen te configureren.
yes, ik had in de autoexec.bat een heel shell menu erom. system.ini was ook zo'n leuke. Maar die internet versies van Windows en Dos en zo vindt ik niet veel soeps.

[Reactie gewijzigd door Bulkzooi op 23 juli 2024 14:05]

Een reden te meer om Windows 3.1 nog eens in een vm op te starten. Nu nog wachten op een amiga release. :*)
Nu nog wachten op een AmigaOS 4-uitgave.
Anoniem: 138647 @TheVivaldi28 juni 2023 23:37
Het werkt op OS4, met als aandachtspuntje dat "say" de speech-synthesizer dan niet werkt.
Maar of dat nou een gemis is. Ik zie/hoor het al voor me om de output van Tjetgeepeetee uit te laten spreken door "say". Het was leuk voor 5 minuten, back in the 80's, maar het is eigenlijk niet om aan te horen :+
Het werkt op OS4,
Dat weet ik, er uitstekende backwards compatibility. Maar een native OS4-interface zou mooi zijn.
Laten we dan de Commodore 64 er ook maar bijpakken:

https://www.valoroso.it/en/chatgpt-on-the-commodore-64/

WiFi-modempje in je Commodore 64 prikken en gaan met de banaan!
Anoniem: 1617016 26 juni 2023 17:14
Ik ben benieuwd wanneer ChatGPT voor de Commodore 64 verschijnt!
Ben al bezig met mijn 5de tape in te lezen.
Anoniem: 1617016 @wica26 juni 2023 23:11
En als je na 5000 tapes eindelijk klaar bent, trekt je moeder de stekker uit het stopcontact.. "ga maar eens buiten spelen jij, anders krijg je nog vierkante ogen!"
Hahaha herkenbaar na het overtikken van code uit een bibliotheek boek. :(
Dat is mij wel een aantal keer gebeurd vroeger. Als je in de lijn stond voor een download op IRC en dan zet je vader de computer uit omdat je toch op school zit.
ChatGPT4 weet nog geeneens dat ChatGPT4 bestaat.
Ik ben benieuwd wanneer deze hele AI hype over is.
Ik denk woensdag
Daar hou ik je aan. :-)
Predicting the precise end of the "A.I. hype" is challenging as it depends on various factors and the specific context in which you're referring to. However, it is worth noting that artificial intelligence (AI) has become an integral part of many industries and is continuously evolving. The excitement and interest surrounding AI are likely to persist for the foreseeable future.

While there may be fluctuations in public enthusiasm or media coverage related to AI, it is unlikely that AI itself will lose relevance or diminish in importance. As AI technologies advance, they have the potential to bring significant advancements and transformations across multiple domains, such as healthcare, finance, transportation, and more. AI research and development are ongoing, with new breakthroughs and applications emerging regularly.

Instead of anticipating an end to the hype, it is more reasonable to expect a gradual normalization and integration of AI technologies into our daily lives. As AI becomes more commonplace and familiar, it may no longer be viewed as a separate entity but rather as a tool or technology that assists us in various tasks and decision-making processes.
Anoniem: 138647 26 juni 2023 17:49
Er is ook een Amiga client. Mijn 4000T met 100Mhz 68060 en 400MB RAM staat te trappelen :+

https://eab.abime.net/sho...=114798&highlight=chatgpt
https://github.com/sacredbanana/AmigaGPT

[Reactie gewijzigd door Anoniem: 138647 op 23 juli 2024 14:05]

Er is ook een Amiga client. Mijn 4000T met 100Mhz 68060 en 400MB RAM staat te trappelen :+

https://eab.abime.net/sho...=114798&highlight=chatgpt
https://github.com/sacredbanana/AmigaGPT
Cool, ik hoop dat beide projecten consolideren op 16 & 32 bit conventies:
* Microsoft's 16-bit "386 Enhanced-modus"•
* AmigaOS API 3.2
* Commodore64[**]

Zou wel goed zijn voor die kleine userbases met excentriekelingen :*) dan kan je daarna andere exotische stb's en sff's binnenharken, zoals bv. de bananaPI. En dan kan je de raspbmc route nemen om support verder uit te bouwen.

WinGPT might be the killer legacy app. The lost byte adventure...

[**] https://www.valoroso.it/en/chatgpt-on-the-commodore-64/

Er zijn enkele verschillende ontwikkelomgevingen, m.n. voor C/C++ support, strevend naar hetzelfde niveau als de Visual C++ 6.0 runtime:
Open Watcom V2 , supports cross-compiling to 16-bit Windows from even Windows 11. Resulting in this 16-bit WolfSSL fork (adapted to 64 kb object limitation)
gcc-ia16, used to compile the FreeDOS kernel
Digital Mars

dailup.net borduurt ook voort op een C lib met meer standard controls—push buttons, check boxes, radio buttons, edit boxes— en de statusbar.

Voor WinGPT ligt de nadruk op de statusbar, die dient als een soort notificatie centrum voor die API calls. En die is gebaseerd C++ source code, without VBX file.

De volgende stap lijkt me een makefile voor deze WolfSSL fork toevoegen aan Bebbo's Amiga-gcc. Dan heb je ook gelijk Apple M1 support.
https://github.com/bebbo/amiga-gcc

[Reactie gewijzigd door Bulkzooi op 23 juli 2024 14:05]

Grappig dat in de screenshot de context van chatGPT begin jaren 90 is
Morgen maar eens proberen op m'n Presario 433, komt die DX2 OverDrive toch nog van pas.
nostalgi windows 3.11 mijn eerste windows op een 486 dx2 66mhz bakkie :)
Volgens mij was dat alleen naar op de XT’s (8088) en AT’s 8086). Vanaf de 286 was de klok niet meer synchroon met de stroomsinus, dacht ik…
Mijn 486DX2 had een turboknop, hoor. Hier zie je waar die voor was.
Die kon er niks meer mee, 486sx was de laatste met nuttige turbo knop.
Nou ja, goed. Maar hij zat er wel op.
Anoniem: 58485 @mr_evil0826 juni 2023 23:13
33 of 66Mhz; ze bestonden wel degelijk, ook voor de 486DX2 66Mhz.

Alleen - je kon er niets mee. De functie van de turbo knopjes was voor ernstig verouderde programma's die uitgingen van de CPU snelheid. Wanneer die 3x zo snel was liep je app of game ook 3x zo snel.
Ja dat zeg ik, je kon er alleen niks meer mee. ;-)
Zelfs de DX4 had hem nog.

De reden dat de knop op snellere 486 pc,s nog zat is doordat je er ook een 486SX processor op kon prikken, alle andere processors had die knop geen functie meer gezien applicatie,s alsnog te snel liepen.
De SX had geen ingebouwde coprocessor, dit zei niets over de snelheid. Ik had zelf een SX2/66 die gewoon dezelfde klokverdubbeling deed als de DX2. Wat zou de turboknop daar in hemelsnaam mee te maken hebben?
Het gaat om de SX met 25mhz.
Jazeker van 33 mhz naar 66 mhz!! Als mijn geheugen werkt dan met 512 mb geheugen en een hdd van 500 mb ofzo iets. Hele computer met alles erop en eraan was toen 3000 gulden!!
8 tot 16mb ram was toen high-end. ;-)

Op dit item kan niet meer gereageerd worden.