Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
AI Windows

WinGPT Is a New ChatGPT App For Your Ancient Windows 3.1 PC (theverge.com) 91

An anonymous reader quotes a report from The Verge: Someone has created a ChatGPT app for Windows 3.1 PCs. WinGPT brings a very basic version of OpenAI's ChatGPT responses into an app that can run on an ancient 386 chip. It's built by the same mysterious developer behind Windle, a Wordle clone for Microsoft's Windows 3.1 operating system. "I didn't want my Gateway 4DX2-66 from 1993 to be left out of the AI revolution, so I built an AI Assistant for Windows 3.1, based on the OpenAI API," says the developer in a Hacker News thread.

WinGPT is written in C using Microsoft's standard Windows API and connects to OpenAI's API server using TLS 1.3, so there's no need for a separate modern PC. That was a particularly interesting part of getting this app running on Windows 3.1, alongside managing the memory segmentation architecture on 16-bit versions of Windows and building the UI for the app. Neowin notes that the ChatGPT responses are only brief due to the limited memory support that can't handle the context of conversations. The icon for WinGPT was also designed in Borland's Image Editor, a clone of Microsoft Paint that's capable of making ICO files.

"I built most of the UI in C directly, meaning that each UI component had to be manually constructed in code," says the anonymous WinGPT developer. "I was surprised that the set of standard controls available to use by any program with Windows 3.1 is incredibly limited. You have some controls you'd expect -- push buttons, check boxes, radio buttons, edit boxes -- but any other control you might need, including those used across the operating system itself, aren't available."

This discussion has been archived. No new comments can be posted.

WinGPT Is a New ChatGPT App For Your Ancient Windows 3.1 PC

Comments Filter:
  • "ChatGPT responses are only brief due to the limited memory support that can't handle the context of conversations."

    In other words... 640K may be good enough for anybody, but it ain't good enough for ChatGPT!

    • You'll have to wait for BobGPT to be released.
    • More like something here doesn’t add up. Windows 3.1 is a dinosaur by modern standards and it crashes if you look at it funny, but various online service clients existed in that era and you could have wall of text chats for hours with actual humans. At least until Windows 3.1 inevitably crashed and you’d have to restart and dial back in.

      My guess is that ChatGPT’s API has too many modern dependencies and it would’ve been too much effort to built a thin client from scratch that can p

      • Its just a webservice. From the client side the only thing you need is a https client (Which itself might be a bit of a headache for such a old OS, though I guess one of those low/no dependency libraries used by the embedded crowd would probably do in a jiffy.)

        The problem here as more the UI side of thing, which most software back then dealt with by licensing expensive widget libraries.

        • which most software back then dealt with by licensing expensive widget libraries
           
          No, they didn't. They used Visual C++, Visual Basic, Delphi, or Turbo C++

          • which most software back then dealt with by licensing expensive widget libraries

            No, they didn't. They used Visual C++, Visual Basic, Delphi, or Turbo C++

            Agreed. Delphi on 16-bit Windows had a crap ton of controls right out of the box, with APIs for rolling your own or installing third-party stuff that the GP alluded to.

            If you are limiting yourself to what is "built into Windows", then you are severely limited, but that is a self imposed limitation. There were common control available, even if they were not particularly easy to work with.

            https://www.owenrudge.net/vb/c... [owenrudge.net]

          • by dryeo ( 100693 )

            They used Open Watcom, though the buggy fork rather then the official branch.
            Runs fine here on WinOS2

    • by vbdasc ( 146051 )

      "ChatGPT responses are only brief due to the limited memory support that can't handle the context of conversations."

      In other words... 640K may be good enough for anybody, but it ain't good enough for ChatGPT!

      The memory of this computer is not so limited, especially if we take into consideration that it's used only as a gateway (pun intended) to the real machine running ChatGPT. The computer itself supported up to 64 Mb physical RAM, and if this is not sufficient, Windows 3.1 supports virtual memory. Also, the segmented nature of 16-bit Windows isn't really a problem, because Windows 3.1 supported several methods for pure, flat model, 32-bit programming (Win32s comes to mind, for example).

      The guy who wrote this

      • by dryeo ( 100693 )

        512 MB's using DPMI is the maximum memory I can give a WinOS2 session, about the only way to run Win3.1 natively on modern hardware, the UEFI video BIOS that OS/2 installs for DOS/WinOS2 works quite well. WinGPT seems quite happy with the default 16 MB of ram

    • I don't get why a CLIENT would have limitations like this. Why would the client side hardware affect length of responses? Text is very small in memory. Isn't it just sending things to the server and fetching responses???
  • Boring... (Score:5, Informative)

    by Rosco P. Coltrane ( 209368 ) on Monday June 26, 2023 @10:45PM (#63635668)

    WinGPT is written in C using Microsoft's standard Windows API and connects to OpenAI's API server

    Yet another thin client that uses the OpenAI API to pass along the requests to the OpenAI servers that do the heavy lifting.

    I was kind of hoping it was a clever standalone AI thing that could run on limited hardware, but no... I stopped reading right there. There's already a million other such "Hey look I made AI run on DOS / C64 / RaspPi..." clients out there, and none of them do anything more impressive that run a client on some old underpower machine.

    • Does it share OpenAI's requirement of a valid subscription to Short Message Service from a mobile carrier? Because during the era when Windows 3.1 was popular, SMS wasn't an option. Most people had landlines, and OpenAI's help page for phone verification [openai.com] still states "Please note we do not allow land lines or VoIP (including Google Voice) numbers at this time."

      • Which just prove that OpenAI is just a giant data mining operation with a really big if loop
        • by dknj ( 441802 )

          Bruh you can get a burner phone for less than $35. Criminals are smarter than this.

          • by tepples ( 727027 )

            There wasn't such thing as a "burner phone" in the Windows 3.1 era. What you'd use a burner phone for nowadays used to be done with a pay phone at a gas station.

    • You'll have to settle for Dr. Sbaitso [wikipedia.org].
    • Exactly, these are stupid after the very first one especially given it's trivial to create this and could have just as easily been a Commodore 64 or an Apple II with a TCP/IP networking (which Windows 3.1 didn't originally have either btw before anyone protests).

      • Microsoft offered a free TCP stack for Windows 3.1 from fairly early days, and certainly in a timely fashion given how late in the game most people got Internet access. But it was a separate download and it also sucked (slow AF) so most people used trumpet. I used TGV's, which was so much faster than either that it could make a PC into a tolerably credible router.

    • WinGPT is written in C using Microsoft's standard Windows API and connects to OpenAI's API server

      Yet another thin client that uses the OpenAI API to pass along the requests to the OpenAI servers that do the heavy lifting.

      I was kind of hoping it was a clever standalone AI thing that could run on limited hardware, but no... I stopped reading right there. There's already a million other such "Hey look I made AI run on DOS / C64 / RaspPi..." clients out there, and none of them do anything more impressive that run a client on some old underpower machine.

      I don't know what the state-of-the-art is for Windows 3.1, but being able to call the API over IP, using TLS 1.3 sounds quite impressive to me. The fact that it happens to be an AI server on the other end, as opposed to any other service - maybe or maybe not.

      • by Viol8 ( 599362 )

        This. The impressive part isn't the AI bit ,its getting the sophisticated networking side up and running on an OS that didn't support it. If he's doing it in C it'll be pretty low level with little hand holding even if he's using curl rather than raw sockets.

      • being able to call the API over IP, using TLS 1.3 sounds quite impressive to me

        Are you really impressed by a partial reimplementation of the top 2 or 3 OSI layers? I'm not.

        I admire the man's dedication to tedium, perhaps. But it's not technically challenging, or even interesting. It's been done countless times, and there's no challenge in it - as in, if you want to do it, you know it's doable before even starting.

        If he had gotten some sort of neural network running locally on a 386 and doing something even barely useful, I would applaud loudly. But getting https running on Win31 is ju

        • by Viol8 ( 599362 ) on Tuesday June 27, 2023 @04:41AM (#63636056) Homepage

          "Are you really impressed by a partial reimplementation of the top 2 or 3 OSI layers? I'm not."

          Either you're a genius (or think you are) or you've never written complex networking/encryption code and don't have a clue.

          • No genius needed.
            This is very straight-forward.

            Author used WolfSSL (has 16-bit support) and MS TCP/IP-32 (3.1 TCP/IP stack)
            Building an API client is very, very basic when you've got an SSL library and a socket library.

            The magic of what this guy was getting any of this shit to compile using those archaic fucking toolchains.
            • by dryeo ( 100693 )

              He used OpenWatcom, though the fork by the guy who doesn't believe in testing. OW is actually not that ancient in its most recent releases though better for C++. Even has a posix frontend, owccc.
              Doesn't seem to use the 32 bit stack on standard Windows, just the winsock it found here

              • Hah- I had no idea OW had recent work done on it. That's cool as hell
                • by dryeo ( 100693 )

                  Well, Jiri has done a lot of work on his fork, named OpenWatcom v2, hosted on Github, mostly 64 bit support I believe. Unluckily he has a habit of committing without testing which is why his commit privileges were removed from OpenWatcom I think.
                  Not so much work being done on the main branch, also called OpenWatcom v2, currently at beta 4 I think, hosted at openwatcom.org and a lot of that work is OS/2 related as OW is preferred for OS/2 device drivers, the linker is the only one that can do things like lin

    • These days the hipsters consider an "API" to be a load of http calls, not a collection of useful functions that do stuff. So he probably had to reverse engineer an actual API written in python/node/[some trendy scripting language] before he could write a line of C code so its not totally a no brainer project.

      • HTTP is a transport.
        It's perfectly capable of being the transport for RPC interfaces which are, well, collections of useful functions that do stuff.

        You really should just shut the fuck up. It's pretty damn clear you have no idea what you're talking about.
        • by Viol8 ( 599362 )

          Using your logic TCP is an API as well.

          " you have no idea what you're talking about."

          When you're finished writing your Hello World program in BASIC take a long look in the mirror.

          • Using your logic TCP is an API as well.

            Don't be stupid. My logic implied no such thing.

            When you're finished writing your Hello World program in BASIC take a long look in the mirror.

            Oh, shut the fuck up you pathetic poser.

            An API is a set of functions. Those functions work over an interface. That interface may be local, or it may be remote.
            In the case of remote, it could be as simple as a TCP/UDP socket, or it could be over a higher layer transport like HTTP.

            I'd go away now. You don't want to look any fucking dumber than you do right now.

            • by Viol8 ( 599362 )

              "Oh, shut the fuck up you pathetic poser."

              LOL :) Oh dear, was someone triggered?

              "An API is a set of functions. "

              Oh well done.

              "That interface may be local, or it may be remote"

              Its only recently that sending data down a network link has been called an API. Previously it was always library functions you'd use directly because the devs wouldn't expect someone to have to format and send the fecking data themselves. If you were out of short trousers sonny you'd know that.

              " You don't want to look any fucking dumbe

              • LOL :) Oh dear, was someone triggered?

                I don't think you know what that word means.

                Oh well done.

                Indeed.

                Its only recently that sending data down a network link has been called an API. Previously it was always library functions you'd use directly because the devs wouldn't expect someone to have to format and send the fecking data themselves. If you were out of short trousers sonny you'd know that.

                Fucking A, you just don't get it.
                "sending data down a network link" is just the transport.
                Nobody has ever called the transport the API, and that's what you don't fucking get here.
                You use the transport as the interface to the fucking API, you ignoramus.

                You don't even understand the fucking base principles here, so seriously, just shut the fuck up.

                • by Viol8 ( 599362 )

                  "I don't think you know what that word means."

                  Ah irony, gotta love it :)

                  What a shame there's no equivalent of crayon here but nevermind. Just for your tinky winky lonely braincell - requests sent via HTTP *are* considered the API these days. Got it? Sure?

                  Either you're so completely out of touch you should have retired long ago or you just some kid BS'ing and F bombing because you know you've run out of any kind of argument and are hoping lots of swearing somehow makes up for being clueless. Newsflash - it d

                  • What a shame there's no equivalent of crayon here but nevermind. Just for your tinky winky lonely braincell - requests sent via HTTP *are* considered the API these days. Got it? Sure?

                    No, they're the interface to an API.
                    You have no idea what you're talking about.

                    Either you're so completely out of touch you should have retired long ago or you just some kid BS'ing and F bombing because you know you've run out of any kind of argument and are hoping lots of swearing somehow makes up for being clueless. Newsflash - it doesn't.

                    Nope. I do this for a living. Just recently I had to implement an API to talk to a Nokia COS system for a new network we've got going in.
                    Again, you have no idea what the fuck you're talking about.

                    I suggest you do yourself a favour and go get a clue you sad potty mouthed halfwit.

                    You're the stupid fucker who think that APIs aren't transport agnostic.

                    I mean look at what you fucking said:

                    So he probably had to reverse engineer an actual API written in python/node/[some trendy scripting language] before he could write a line of C code so its not totally a no brainer project.

                    That statement is so laughably fucking stupid that it still cracks me up, days later.
                    OpenAI absolutely ships some "python/no

                    • by Viol8 ( 599362 )

                      "You have no idea what you're talking about."

                      You keep saying that while proving its actually you.

                      " Just recently I had to implement an API to talk to a Nokia COS system"

                      Gosh , you're so clever!

                      "That statement is so laughably fucking stupid that it still cracks me up, days later."

                      You dumb twat, you didn't even understand my point. If there was an actual API library it wouldn't have been in C. A child could have understood that. 2nd point - formatted data via HTTP is considered an API now. A child could have

                    • lol. You are so fucking stupid.

                      Formatted data via HTTP is merely the transport.
                      Whether it's data in registers followed by a SWI, data over a TCP/UDP socket, or data over a higher layer protocol like HTTP, that's merely the transport.
                      The API is function you call, not how you call it.
                      It's fucking sad that I need to reference fucking wikipedia [wikipedia.org] here, but here we are.
                      The people there are used to writing for morons, so I think their explanations are likely to be more your speed.

                      You dumb twat, you didn't even understand my point. If there was an actual API library it wouldn't have been in C. A child could have understood that. 2nd point - formatted data via HTTP is considered an API now. A child could have understood that too.

                      Fuck- another one! How fuckin

                    • by Viol8 ( 599362 )

                      "The API is function you call, not how you call it."

                      An API is a group of functions inside a library, not an RPC call wrapped in HTTP or whatever the hell it is which is what the definition has become.

                      "Formatted data via HTTP is merely the transport."

                      Yes, I know that, but tell the hipsters. WHich is what I said in my original post. I assume you can read?

                      "it sure as fuck wasn't on the development side of things."

                      Think again. Some of my code is in space right now while yours is probably just spaced out, a bit

                    • An API is a group of functions inside a library

                      Wrong.
                      An API is a group of functions, period.
                      You're conflating an API with how the functions that make up an API are stored, just as you conflate them with the protocol or ABI they may use to be called.
                      They can be in a library, they can be in a kernel, they can be in another process on the same machine, they can be on another server.
                      The protocol spoken can be an agreement of which registers to put data in, the way a shared struct is laid out in memory, or it can be serialized, both locally and remotely.

    • by tlhIngan ( 30335 )

      Yet another thin client that uses the OpenAI API to pass along the requests to the OpenAI servers that do the heavy lifting.

      You've obviously never tried doing it, have you?

      Hint: Most of the technologies needed to access ChatGPT via the API did not exist even when Windows 3.1 was obsoleted. Hell, even trying to accessing that stuff with a decade old OS is a challenge.

      In the effort to rush to secure the web, things like SSL and TLS have evolved into incompatible things where anything online cannot be accessed

      • I didn't say it wasn't difficult (prolly isn't though...) or that it wasn't a lot of work (prolly is). I said it's not interesting. Backporting ultra-common stuff is old news, it's not impressive, and even if it's a technical performance of sorts, it has fuck- all to do with AI.

        The only reason this is even a story is because it's a OpenAI client backport. If the guy had backported, say, Angry Birds to Win31, you would never have heard of it because... well, it's just not very exciting.

    • by jonadab ( 583620 )
      > I was kind of hoping it was a clever standalone AI
      > thing that could run on limited hardware

      That's not realistic. The maximum hard drive size on a system of that era was nowhere near large enough to contain even a token set of training data for something like ChatGPT. I suppose you could cluster a thousand of the things together, but at that point you're no longer running on DOS 6 and Windows 3.1.

      So yeah, the thing's going to require Trumpet Winsock. Unavoidable.
  • by brxndxn ( 461473 ) on Monday June 26, 2023 @10:49PM (#63635674)

    Anyone that was alive for Windows 3.1 knows you'd say "Gateway 2000 486 dx2 66" not "Gateway 4dx2-66".. Also, Windows 3.11 was more common.. Sometimes I wonder how fucked up our timelines really are that people need to fake being around for when PC's came in cow-spotted boxes.

    • They were surprised that Windows 3.1 didn't have every widget available for the UI and kept calling it an OS. Windows 3.1 was a glorified shell. DOS still did all the heavy lifting like memory management, disk I/O.
      • by Dwedit ( 232252 )

        "Glorified shells" don't provide a way to share resources across applications. Usually something that does that is called an operating system.

        • You mean like DOS that Windows 3.1 requires to run?
          • by dknj ( 441802 )

            Windows 3.1 does not require DOS, it requires a bootloader which just happened to be MS-DOS. When Windows 3.1 starts, it completely removes DOS from memory and handles all BIOS interrupts. Windows 3.1 even had multitasking (non-preemptive) which allows multiple apps to run. That alone means DOS is NOT running (DOS is not catching any interrupts) as Windows is responsible for configuring the processor between context switches.

      • by dknj ( 441802 )

        They were surprised that Windows 3.1 didn't have every widget available for the UI

        Worse than that, they didn't realize there was an entire lawsuit around Windows 3.1 having a hidden API and the lack of UI's used in every other microsoft product was exactly one of the reasons.

        TL;DR: time travelers exist. time to set traps like in looper

      • by Scoth ( 879800 )

        Depends on the mode it was running in. Real mode Windows 3.0 was pretty much just a basic shell. Some basic drivers for things like graphics (though not many worked in real mode Windows) and some input devices but that was about it.

        Standard mode got a little more interesting - it used the 286 Protected Mode to provide better memory management, better DOS box support, and the like. It didn't use DOS for memory management anymore, but was limited by 16-bit limitations of 64kb segmentation. Made memory managem

      • Windows 3.1 was a glorified shell.

        The technical term is Graphical User Interface (GUI).

    • It also depended on your budget at the time. It wasn’t at all uncommon to have been running Windows 3.1 on a 386, Windows 95 on a 486, and Windows 98 on a Pentium (or their various socket 7 competitors available at the time). Previous generation CPUs were still commonly sold as less expensive options, it wasn’t until Intel released the Celeron that CPU manufacturers filled the need for entry-level options with a specific product line, rather than just saying “buy something older.”

      • Found the guy who hasn't heard of the 386SX or the 486SX

        • Or the 8088 for that matter, now I come to think of it

        • Comment removed based on user account deletion
          • Windows 3.0 was dog-shit slow on everything lower than a 386

            Windows for 286 was acceptably performant, but you couldn't really run anything on most 286s because their max RAM was very bad. But the point is, the 8088 is a low cost 8086 (more or less) and there were low cost 386s and 486s, so clearly Intel DID have budget CPUs long before Celery.

            • Comment removed based on user account deletion
              • True enough, although this was combined with "We'll sell a 6MHz and a 12MHz version of this chip!" (there wasn't an 80288 for example, they just went by clock speed)

                Yeah, I had one of those budget machines. It was a 286-6 with 1MB of DIP DRAM, which fully populated the board. I ran SCO Xenix on it, and my own UUCP node. (Before I got Xenix, I also ran it on DOS using first Waffle BBS, then UUPC.)

                Then my next PC was a 386DX25, and then a 486DX25, and then I think a 486DX2-66... I got to skip the SXs. And then the rest of my computers aren't relevant here :)

    • Re: (Score:2, Informative)

      by djgl ( 6202552 )

      Windows 3.11 wasn't more common. The only feature it offered over 3.1 was network connectivity. LANs at home were rare. Dialup was usually done only to BBSes. Everything that didn't need networking also ran on 3.1. Games with multiplayer mode ran on DOS.

      When we upgraded our computer we went straight from 3.1 to 95 and even there the network stack was not installed by default.

      • by DamnOregonian ( 963763 ) on Tuesday June 27, 2023 @05:53AM (#63636130)

        Windows 3.11 wasn't more common.

        Sure was in my experience.
        3.1 was only out for 18 months before it was replaced with 3.11 on all shipping OEM machines that shipped with a copy of Windows, and all stores that sold retail copies.

        I've never actually encountered a machine running 3.1.. since 1992-3 would be the only period you could get it.
        Encountered lots running 3.11.

        • I never ever encountered a home PC running WfW 3.11 until I started installing it on the windows PCs in my geek house. They ran 3.1 before. (We had a mix of other OSes, and even one user on a vt100 running 19200 bps over phone lines back to the house Linux box.)

          OTOH all of the business PCs I messed with had Windows 3.11.

          • WfW 3.11 is different-
            There was also just Windows 3.11

            But ya, WfW would not have commonly be found on home PCs. Just among geeks, mostly.
      • Comment removed based on user account deletion
    • by Tyr07 ( 8900565 )

      Right? I owned a 486 dx2-66 and was confused as well by the 4dx2. Had a whole 12 MB of ram, good times. That's how I referenced it as well. This person likely never owned one :P

  • by az-saguaro ( 1231754 ) on Tuesday June 27, 2023 @12:04AM (#63635802)

    Take a look at the article (link on the first line of this post). There is a screencap illustration of a Win 3.1 desktop with a chat app open. The sample dialog in that box asks three questions - who is president?, how to watch latest movies at home?, how to share a digital image? Paraphrasing the answers - Bush, Blockbuster, floppy disk.

    Is this a joke?
    Is there something about this ChatGPT client that servers know it is on Win 3.1?
    Is it spoofing date of the request?
    Does ChatGPT know to give a response based on Windows version?

    These of course are silly rhetorical questions.
    But seriously, the requests as shown do not say "Pretend it is 1993 - now, who is president?"

    So, is the illustration or listed text a sham?
    If so, is the whole thing a joke (even though a simple client-server connection as described is perfectly believable)?

    It's actually funny, but I can make the same paste-up myself without coding a client app to essentially attach a Ferrari to a mule cart.

    • by Anonymous Coward

      Do you lose this much sleep every time a hacking story features an image of a hooded figure That Wasn't Actually The Culprit?

      >I can make the same paste-up myself
      then you know how trivial it would be to auto-append "pretending it's 1993" to queries - not that an article's Pretty Picture requires such

      yes, it's a cosmetic front end being paraded for easy clicks, complaining is warranted, but we might as well start getting used to clickfarming shit now that it's automated

    • by Alworx ( 885008 )

      ah, so I'm not the only one who noticed the irony!

    • by necro81 ( 917438 )
      I wondered about the time-context, too. I expect that the screenshot is genuine, not a sham, and that getting the time-appropriate answers was something that was first done by a prompt, as you sorta suggested and then discounted. I think it'd be neat if one of WinGPT's options was a checkbox "localize to date: ", which would, behind the scenes, feed ChatGPT a prompt along those lines. You can already customize ChatGPT to localize to different geographies, why not also localize to a certain date?
      • I haven't used ChatGPT much but I think you can just tell it to pretend it's 1993 and it will try to play in character.

        People used similar abilities to trick it into doing stuff it's not supposed to as well.

  • What a missed opportunity: They should've stylised it as Clippy, your ever-present & helpful desktop assistant.
  • Next we will have Windows Bob-GPT. Oh the shame!
    {O.O}

  • Does it run from a floppy disk on my IBM Convertible?

  • by blugalf ( 7063499 ) on Tuesday June 27, 2023 @05:22AM (#63636106)
    by connecting it to my computer, running voice recognition on the audio input, passing the text output to the openAI api, running TTS on the result and playing it to the phone. Magic.
  • ... couldn't you just use a web browser?
  • Only commit the simple patch so that it works with windows 7?

  • This is like running Doom on an oscilloscope.

  • "I built most of the UI in C directly, meaning that each UI component had to be manually constructed in code," says the anonymous WinGPT developer. "I was surprised that the set of standard controls available to use by any program with Windows 3.1 is incredibly limited. You have some controls you'd expect -- push buttons, check boxes, radio buttons, edit boxes -- but any other control you might need, including those used across the operating system itself, aren't available."

    This is a rather amateur attempt

The unfacts, did we have them, are too imprecisely few to warrant our certitude.

Working...