{"id":22955281,"url":"https://github.com/happycod3r/wingpt","last_synced_at":"2025-04-16T19:09:29.172Z","repository":{"id":180613591,"uuid":"665400351","full_name":"happycod3r/WinGPT","owner":"happycod3r","description":"A cross-platform, fully functional, full-featured GUI implementation of the OpenAI API.","archived":false,"fork":false,"pushed_at":"2023-08-15T14:09:31.000Z","size":78706,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T05:34:36.809Z","etag":null,"topics":["ai","ai-art","audio-transcription","chat","chatgpt-api","chatgtp","code-gen","cross-platform","fine-tuning","full-featured","gpt","gui-application","image-editing","openai-api","openai-chatgpt","python-3","qa","sentiment-analysis","translation","wingtp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/happycod3r.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-12T06:00:33.000Z","updated_at":"2024-12-08T08:56:24.000Z","dependencies_parsed_at":"2023-09-09T02:06:05.592Z","dependency_job_id":null,"html_url":"https://github.com/happycod3r/WinGPT","commit_stats":null,"previous_names":["happycod3r/wingpt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happycod3r%2FWinGPT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happycod3r%2FWinGPT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happycod3r%2FWinGPT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happycod3r%2FWinGPT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/happycod3r","download_url":"https://codeload.github.com/happycod3r/WinGPT/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249268265,"owners_count":21240903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-art","audio-transcription","chat","chatgpt-api","chatgtp","code-gen","cross-platform","fine-tuning","full-featured","gpt","gui-application","image-editing","openai-api","openai-chatgpt","python-3","qa","sentiment-analysis","translation","wingtp"],"created_at":"2024-12-14T16:28:54.006Z","updated_at":"2025-04-16T19:09:29.149Z","avatar_url":"https://github.com/happycod3r.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WinGPT v1.0.0\r\n\r\n![WinGTP Logo](/docs/res/logo.png)\r\n\r\n\u003e WinGPT is a cross-platform, fully functional, full-featured GUI implementation of the OpenAI API.\r\n\u003e You need a free OpenAI API key to use WinGPT. If you don't already have\r\n\u003e one you can find one at [https://openai.com/](https://openai.com/)\r\n\r\n- [WinGPT v1.0.0](#wingpt-v100)\r\n  - [About](#about)\r\n    - [Cross-platform:](#cross-platform)\r\n    - [Full-featured:](#full-featured)\r\n    - [Control all API settings](#control-all-api-settings)\r\n    - [Persistent Settings](#persistent-settings)\r\n    - [Personalization Settings](#personalization-settings)\r\n  - [Notes](#notes)\r\n  - [Requirements](#requirements)\r\n  - [Install](#install)\r\n    - [Manual Install](#manual-install)\r\n    - [Command Line Install](#command-line-install)\r\n      - [Using Git Clone:](#using-git-clone)\r\n      - [Using Curl:](#using-curl)\r\n  - [Usage](#usage)\r\n    - [OpenAI API Key](#openai-api-key)\r\n    - [Running WinGPT](#running-wingpt)\r\n      - [python](#python)\r\n    - [Examples](#examples)\r\n      - [Chat](#chat)\r\n      - [Images](#images)\r\n      - [Transcriptions](#transcriptions)\r\n      - [Translations](#translations)\r\n      - [Embeddings](#embeddings)\r\n      - [Fine Tuning](#fine-tuning)\r\n      - [Moderations](#moderations)\r\n      - [Sentement Analysis](#sentement-analysis)\r\n      - [Q\u0026A](#qa)\r\n      - [Code Generation](#code-generation)\r\n      - [Edits](#edits)\r\n      - [Summarization](#summarization)\r\n  - [Contributing](#contributing)\r\n  - [Security](#security)\r\n    - [Reporting a vulnerability or bug?](#reporting-a-vulnerability-or-bug)\r\n  - [Contacts](#contacts)\r\n\r\n---\r\n\r\n## [About](#about)\r\n\r\nThis is just version 1 of many updates to come still, so the GUI will improve vastly in the very near future. I really wanted to focus on functionality and wrapping\r\nthe GUI around the OpenAI API in a way that will give you full control over settings. I wanted to create a `1:1` wrapper around the API and I think WinGTP accomplishes that.\r\n\r\n### [Cross-platform](#cross-platform)\r\n\r\nBecause WinGPT is built purely in Python, it will work on Windows, Mac and Linux operating systems.\r\n\r\n### [Full-featured](#full-featured)\r\n\r\n- Chat, files, audio transcription, image edits, image variations, new images, translations, embeddings, fine-tuning, moderations, sentement analysis, Q\u0026A, summarization and code generation are all available and easy to use.\r\n\r\n### [Control all API settings](#control-all-api-settings)\r\n\r\n- Switch between all available models using a simple drop down menu.\r\n- Easily control all available parameters such as: temperature, max tokens, response count, best of, frequency \u0026 presence penalty, timeout, user etc. from a modern GUI to easily adjust responses.\r\n- Use user defined data files, and `.jsonl` data files.\r\n- View and change other API settings like `api_type`, `api_base` and `api_version`.  \r\n- Stream, echo, or save chat at any time.\r\n- Create chat stop lists.\r\n\r\n### [Persistent Settings](#persistent-settings)\r\n\r\n- Your API key is stored so you only need to enter it once during setup and it will be automatically loaded on next startup.\r\n- If you have multiple API keys, you can easily switch between them.\r\n- Organization settings are also available to control which organization is used by default when making requests with your API keys.\r\n\r\n### [Personalization Settings](#personalization-settings)\r\n\r\n- Light, Dark \u0026 System themes are currently available.\r\n- Easily change the color of the output and accent of the gui controls.\r\n- UI scaling options are also available.\r\n\r\n![Hello World](./res/wingpt-hello-example.gif)\r\n\r\n## [Notes](#notes)\r\n\r\n\u003e This an early ***Beta*** release of WinGPT. It's at a point where everything is completely functional yet vastly unpolished.\r\n\u003e Any feedback or [contributions](#contributing) are always welcomed. I started this from scratch over the past two weeks so there is still a ton to do.\r\n\r\n---\r\n\r\n## [Requirements](#requirements)\r\n\r\nA few basic things are required to successfully setup and use WinGPT.\r\n\r\n1) Firstly you need an active internet connection to run WinGPT. Because WinGPT makes calls\r\nto the OpenAI API a connection is required.\r\n2) Python 3.11 or higher: If Python isn't already installed you can find it on the official website here [https://www.python.org/](https://www.python.org/).\r\n3) Lastly you need an API key to finish the WinGPT setup. Check out the [API Key](#openai-api-key) section.\r\n\r\n## [Install](#install)\r\n\r\nCurrently there is no installer yet as WinGPT is still being actively developed. You can use it simply by running the `init.py` file with **Python 3.11** or higher or by using the included `wingpt-v0.1.0.bat` file which will run it for you.\r\n\r\nSoon an executable will be available! once I feel version 1 is polished enough I'll bundle everything and release an executable for you to use, as I know running things from the command line isn't ideal for everyone.\r\n\r\nTo download and use WinGPT choose an install method and follow the corresponding steps. Once fininshed jump to the [Usage](#usage) section.\r\n\r\n\u003e You need a free OpenAI API key to finish the setup. If you don't already have see the [OpenAI API Key](#openai-api-key) section for detailed instructions on how to easily obtain one.\r\n\r\n### [Manual Install](#manual-install)\r\n\r\n1. Simply download and place the ***WinGPT*** folder in a location of your choosing then follow one of the methods in the [Usage](#usage) section to get started.\r\n\r\n### [Command Line Install](#command-line-install)\r\n\r\n#### [Using Git Clone:](#using-git-clone)\r\n\r\n1) Open your terminal and navigate to the directory where you want to clone the repository: \r\n\r\n```bash\r\ncd where/I/want/to/install\r\n```\r\n\r\n2) Next run the following command to clone the repository to the chosen location:\r\n\r\n```bash\r\ngit clone https://github.com/happycod3r/WinGPT.git\r\n```\r\n\r\n#### [Using Curl:](#using-curl)\r\n\r\n1) Pick a directory to download it to:\r\n\r\n```bash\r\ncd where/I/want/to/install\r\n```\r\n\r\n2) Paste the following line into your terminal and press the `Enter` key:\r\n\r\n```bash\r\ncurl https://github.com/happycod3r/WinGPT.git\r\n```\r\n\r\nOnce you have the repository cloned or downloaded your good to go. All you need\r\nnow is Python and and your OpenAI API key.\r\n\r\n## [Usage](#usage)\r\n\r\n### [OpenAI API Key](#openai-api-key)\r\n\r\n\u003e None of your personal information is required to use WinGPT except your [API Key](#openai-api-key)\r\n\u003e which is stored locally on your machine. Your API key is never shared or entered into\r\n\u003e any kind of database. Everything is local. OpenAI may collect data but you'll have to\r\n\u003e check out the OpenAI website as I am not affiliated, sponsered, or contracted with\r\n\u003e OpenAI in any way, shape or form. I'm just a dude in a place.\r\n\r\n**!!!Any API keys used in these examples were deleted immediately after!!!**\r\n\r\nThis step is really important to setup in order to use WinGPT. Since the application\r\nis wrapped around the Python `openai` module heavily you need an OpenAI API key to use it.\r\nYou can easily obtain a free API key by following the next few steps.\r\n\r\n1) Go to [https://openai.com/](https://openai.com/) and either create a free account\r\nmanually or continue using **Google** or any other option for the quickest setup.\r\n\r\n![setup1](./res/setup1.gif)\r\n\r\n---\r\n\r\n2) Once you have an account created click on your profile picture and then **\"View API Keys\"**.\r\n\r\n![setup2](./res/setup2.gif)\r\n\r\n---\r\n\r\n3) Next you will be met with a page like this where you can access or create new API keys.\r\nCreate a new key to use if you don't already have one.\r\n\r\n![setup3](./res/setup3.gif)\r\n\r\n---\r\n\r\n4) Once you have an api key you can use it to setup WinGPT. Enter your username and\r\nthen the API key below it.\r\n\r\n![setup4](./res/setup4.gif)\r\n\r\n---\r\n\r\n### [Running WinGPT](#running-wingpt)\r\n\r\n1) To start WinGPT on Windows you can double-click the `wingpt-0.1.0.bat` file.\r\n\r\nNotice! When running `wingpt-0.1.0.bat`, Windows security might alert you\r\nabout the file being unsafe. This can be ignored as it is completely safe. This file\r\nsimply runs the `init.py` file using the `python` command which starts WinGPT.\r\n\r\n```bash\r\n# wingpt-0.1.0.bat\r\npython \"./init.py\"\r\n```\r\n\r\n2) Next you will see a setup screen where you should enter a username that you would\r\nlike to use within WinGTP and your OpenAI API key.\r\n\r\n\u003e Just to reiterate, without an API key you will not be able to access WinGPT as none of it's features\r\n\u003e will work without it. If you need further instructions on how to obtain one check the previous section: [OpenAI API Key](#openai-api-key)\r\n\r\n#### [python](#python)\r\n\r\n1) WinGPT was built using Python 3.11 so make sure you are using the same or newer.\r\n2) In your terminal navigate to the WinGPT root directory.\r\n\r\n```bash\r\ncd WinGPT\r\n```\r\n\r\n3) Finally, run the following command to start WinGPT:\r\n\r\n```bash\r\npython init.py\r\n```\r\n\r\n---\r\n\r\nOnce the setup window closes you will then be greeted by WinGPT with a greeting including the username that you provide to let you know everything was set up successfully.\r\n\r\nThe following are examples of some of the main features of WinGPT mentioned in the [About](#about) section.\r\n\r\n### [Usage Examples](#examples)\r\n\r\n#### [Chat](#chat)\r\n\r\nType anything into the input box below the output and get an immediate response.\r\nYou can also try changing settings such as the `response token limit` or the `chat output temperature`\r\nto change the response parameters.\r\n\r\n![Chat Example](./res/chat-example1.gif)\r\n\r\n#### [Images](#images)\r\n\r\nYou can either generate new images, edit an existing image or create variations\r\nof an image.\r\n\r\n- First select the `Images` request type from the `Request Types` section\r\n- Once selected the image settings will open in the top right section in place of the `Chat Output Temperature`\r\nsection. These setings allow you to pick an image size and open existing images and or masks.\r\n- Lastly press the `Send` button to get the URL of the image.\r\n\r\nYou can type anything you want to create a new image. After pressing the `Send` button\r\nit may take a second to get the URL as you can see in this example. This is due to OpenAI\r\nand theres not much I can do about it. As for WinGPT hanging when waiting for a\r\nresponse, I will be working out a solution to this in the near future when I find one.\r\n\r\n![Image Example](./res/image-new-example.gif)\r\n\r\nWhen you are done creating the image you can either copy the URL or view the image from within WinGPT.\r\n\r\n![Show Image](./res/show-image-example.gif)\r\n\r\n#### [Transcriptions](#transcriptions)\r\n\r\nYou can also create audio transcriptions in the same manner as images. Remember to pick the\r\ncorrect model for each request type otherwise you won't get a response. \r\n\r\n\u003e NOTE: In the near future I will implement a system that will alert you if you're not using the correct model for the specific request type or have incorrect settings/parameters enabled.\r\n\r\nFor audio transcriptions you can use `whisper-1`.\r\n\r\n- First select `Audio` from the list in the `Request Types` section.\r\n- Next press the `Choose Audio File` button to open the audio file you want to\r\ntranscribe.\r\n- Once you have chosen a valid audio file press the `Transcribe` button.\r\n\r\n![Audio Transcription](./res/audio-transcript-eample1.gif)\r\n\r\n#### [Translations](#translations)\r\n\r\nYou can also easily make translations. Don't forget to choose the correct model type from the **Models** drop-down\r\notherwise it may not work as expected or at all.\r\n\r\n- First you need to choose the `Translations` option in the `Request Types` section.\r\n- You will see langauge options open in the top right section.\r\n- Choose a language to translate from and a language to translate to.\r\n- Once you have selected your languages, type or paste anything into the input box and press\r\nthe `Send` button to get the translation.\r\n\r\n![Translations](./res/translation-example1.gif )\r\n\r\n#### [Embeddings](#embeddings)\r\n\r\nEmbeddings can be created from within WinGPT as well. Since embeddings tend to be really long\r\nit may take a second to recieve the response. I will be working on execution speed\r\nand other issues in the near future. As with images and transcriptions, remember to choose\r\nthe correct model for the job.\r\n\r\nFor embeddings you can use `text-embedding-ada-002`\r\n\r\n- First you need to choose the `Embeddings` option in the `Request Types` section.\r\n\r\n#### [Fine Tuning](#fine-tuning)\r\n\r\n\u003e Section coming soon! Still working on this request type.\r\n\r\n#### [Moderations](#moderations)\r\n\r\nUse the moderations section to gague any text that you may want to analyze.\r\nThis can be helpful to use if you have messages or comments that you may want to filter\r\nfor any reason. Since the response from the OpenAI API is a dictionary you can even\r\nwrite a program around moderations soley since you can get the values of each section easily.\r\n\r\nFor moderations the model type doesn't matter.\r\n\r\n![Moderation Example](./res/moderation-example1.gif)\r\n\r\nHeres an example of a message that should be flagged.\r\n\r\n![Moderation Example2](./res/moderation-example2.gif)\r\n\r\n#### [Sentement Analysis](#sentement-analysis)\r\n\r\nYou can also perform sentement analysis by typing anything into the input box\r\nand pressing the `Send` button. You can also change the `response token limit` to get\r\nshorter or longer answers.\r\n\r\n![Sentement-Analysis](./res/sentement-example1.gif)\r\n\r\n#### [Q\u0026A](#qa)\r\n\r\nThe `Q\u0026A` request type allows you to enter a context and base questions and answers off of it.\r\nThis is helpful if you want to steer the responses in a specific direction.\r\n\r\n![QA-Example](./res/qa-example1.gif)\r\n\r\n#### [Code Generation](#code-generation)\r\n\r\nCode generation can be helpful if your someone who is just learning how to code or even if\r\nyour experienced. Why get stuck on a problem for hours trying to go through different forums like\r\nStack Overflow - Not that they weren't super helpful through the years! - and be bombarded by ads on Google and other sites when you can just ask\r\nand get a straight answer.\r\n\r\n![Code Gen](./res/code-gen-example.gif)\r\n\r\n#### [Edits](#edits)\r\n\r\nThe `Edits` request type allows you to do things such as convert all text to lowercase/uppercase,\r\nfix spelling errors, check punctuation and more. Just choose the type of edit you would\r\nlike to perform from the drop down in the `Edit View`. Next paste in or type anything into the \r\ninput box and press the `Send` button.\r\n\r\n![Edit Example](./res/edits-example1.gif)\r\n\r\n#### [Summarization](#summarization)\r\n\r\nWhen `Summarization` is chosen, anything that you enter into the text box will be summarized.\r\nYou should play with the settings such as `Response Token Limit` and `Chat Output Temperature` to\r\nget different results.\r\n\r\n![Summarization Example](./res/summarization-example1.gif)\r\n\r\n---\r\n\r\n## [Contributing](#contributing)\r\n\r\nIf you have any feature requests, suggestions or general questions you can reach me via any of the\r\nmethods listed below in the [Contacts](#contacts) section. Contributions are always welcome!\r\n\r\n---\r\n\r\n## [Security](#security)\r\n\r\n### Reporting a vulnerability or bug?\r\n\r\n**Do not submit an issue or pull request**: A general rule of thumb is to never publicly report bugs or vulnerabilities because you might inadvertently reveal it to unethical people who may use it for bad. Instead, you can email me directly at: [paulmccarthy676@gmail.com](mailto:paulmccarthy676@gmail.com). I will deal with the issue privately and submit a patch as soon as possible.\r\n\r\n---\r\n\r\n## [Contacts](#contacts)\r\n\r\n**Author:** Paul M.\r\n\r\n- Email: [paulmccarthy676@gmail.com](mailto:paulmccarthy676@gmail.com)\r\n- Github: [https://github.com/happycod3r](https://github.com/happycod3r)\r\n- Linkedin: [https://www.linkedin.com/in/paul-mccarthy-89165a269/]( https://www.linkedin.com/in/paul-mccarthy-89165a269/)\r\n- Facebook: [https://www.facebook.com/paulebeatz]( https://www.facebook.com/paulebeatz)\r\n\r\n---\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhappycod3r%2Fwingpt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhappycod3r%2Fwingpt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhappycod3r%2Fwingpt/lists"}