Quasai - ChatGPT Client
A downloadable tool for Windows
Download NowName your own price
This is a project I'm doing for fun to explore ChatGPT's API and see what I can make it do. You can use this program to connect your own API Key and start chatting with your AI. I have a few features planned to help with context issues and consistency of the AI's output.
For the full source code, you can visit my GitHub page https://github.com/CDcruzCode/Quasai-GPT-Client
You can submit feature requests and bug reports on the Github repo.
Basic Features:
- Use your own API Key to connect to OpenAI's API
- Use your own ElevenLabs API Key for text-to-speech responses
- Has some context awareness and remembers previous messages
- Use pre-processor prompts to instruct the AI on how to respond to your messages.
- Save your chats and load them at a later date to continue your conversation. Your conversations are saved locally to your PC.
- PLANNED - Optimizations to chat memory and memory of key details in a conversation
- PLANNED - Add more specialized & custom interfaces for different use cases, for example, a recipe generator.
- PLANNED - Add a folder structure for saved conversations so you can organise conversations into groups.
- PLANNED - Support for Google's AI PaLM API
- PLANNED - Mac Support, however it seems more difficult to implement than originally expected.
- IDEA - Allow for PDF & Word docs to be analyzed and summarised.
- IDEA - Allow for community-made extensions/ modes to extend the program.
Changelog:
0.3.1:
- Text streaming is supported for Proofreading, Meal Planner, Recipe Creator & Code Assistant modes.
- You can now cancel a message mid-streaming in General Chatting. The canceled message won't be considered a part of the message log.
- Minor bug fixes to improve stability and consistency.
0.3.0:
- Text streaming is now possible in general chat mode. Responses will start generating as soon as you send your message and stream the response. This has the added benefit of the response being less likely to time out, especially for larger responses.
- Text streaming is now possible for the Greentext mode.
- A new game mode, "AI Pretender" has been added that is similar to 20 questions where the AI will be a person or character, and you must guess who they are by asking questions.
- The Tokenizer tool has been updated to support multiple tokenizer models thanks to the SharpToken C# package. This includes a tokenizer for GPT-4.
- A new logo/icon for Quasai has been added. Designed by Brear Croghan
- With the new tokenizer, some token calculations will be more accurate and match whichever model you are currently using.
- There are also improvements to the HTTP code and fixes to threaded code to improve stability.
- An error in General Chatting, where chats would stop after the max token length the model can handle, has been fixed. Chats can be as long as you want now, but the AI will only have context as large as the model you are using can handle. Once a chat history is larger than the model's token limit, older messages will be removed from active memory. The full chat history is still saved for viewing.
- Known bug: Text streaming does not allow special characters or emojis currently. Special characters can be received, but the AI will not be sent any special characters due to some unknown HTTP error.
0.2.2:
- A theme selector has been added including 3 new themes Celtic, Pastel & Sunset. More themes will be added in the future. You can select themes on the main menu settings screen.
- You can add your own themes by adding your own .tres Godot theme file to the user directory's themes folder. Be aware that some custom Type names have been added for styling specific elements.
- Restructured the visuals of some elements to make them compatible with themes.
- More optimizations and refactoring of code were done to increase the readability and expandability of code. A few more modes and QOL features are planned in the next updates.
- Added a "Send" button to the general chatting mode. You can still press Enter to send messages.
- For Your Companion mode, you can set any age (18 and over) as your companion's age instead of the preset age ranges.
0.2.1:
- A notification feature has been added to the main screen. It will notify you about various things. Mainly, the program can now notify you when a new version is available.
- Added a Would You Rather? mode. I may expand on it later with more features.
- Fixed a few bugs relating to performance.
- Added some inline effects to the General Chatting mode with room to add more text formatting.
- Added the ability to change ElevenLabs voices in the main menu. If you have a paid subscription you can even use custom voices.
- Some refactoring of code and other minor fixes across the program.
0.2.0:
- I have decided on a new name for my program. It is now called "Quasai," a play on the word "quasi," which means something that is kind of like something else. In this case, it refers to AI trying to be kind of human.
- I fixed a major bug that caused problems under the hood and led to crashes. The bug was related to the API class being instanced too many times and not being deleted.
- I added a bare-bones implementation of the ElevenLabs API to enable text-to-speech generation. Currently, this implementation is very limited and only works in the General Chatting mode. You also need to supply your own Eleven Labs API in the settings menu.
0.1.8:
- Added a meal planner mode that generates a complete meal plan for your week, based on your preferred diet and a few other parameters. However, the AI can be unpredictable, so the process might take longer and encounter some issues.
- You can easily save your meal plan to a text file for later use.
- You can select text bubbles in general chatting to make it easier to copy AI responses.
- API requests will now timeout if they take too long. The default time is 40 seconds but some modes have longer or shorter times depending on their use.
0.1.7:
- Added a code assistant where you can provide code and the AI will attempt to fix it or convert it to a different language. GPT 3.5 does not perform that well at this task currently. But improvements could be made internally.
- Added a GreenText generator that will generate wild greentext stories with simple input prompts. It will display the greentext in the classic greentext format and uses a random image from imgflip.com using their free API.
- In general chatting mode, AI-provided code will appear in a proper code block if the AI formats it correctly.
- Fixed bug reported by Julian4702 and other minor things.
0.1.6a:
- A very minor release that adds the ability to change GPT models to the newest GPT-4 8K version from the main menu settings. Be aware that GPT-4 is expensive to use compared to GPT-3.5.
- Fixed the cost calculations to calculate cost correctly for GPT-4.
0.1.6:
- Added a translator feature that can translate between major languages and some funny/fake languages. More languages will be supported later.
- An experimental companion mode has been added, where the AI can learn more about the user and act as a friend. However, this mode currently consumes an extremely high amount of tokens and is not recommended for use.
- The proofreader can now handle .txt files dropped into the input box. Multiple files can be dropped at once and will be pasted into the input box.
- Various minor fixes and code refactoring have been performed to make the program more expandable for future language model support.
- The internal prompt scripts have also been tweaked to improve AI focus on the given task.
- A stats section, which can display the total amount of tokens used, has been added to the main menu settings screen. The stats will persist between sessions.
- A waiting indicator has been incorporated into most modes to give feedback to users when the program is waiting for a response from OpenAI servers.
0.1.5:
- Added a tokenizer tool for creating logit bias dictionaries. Due to using a C# library to achieve this, the .exe file needs to be zipped with some .dll files. I may try to port the C# library to Godot so the .exe can be completely standalone again.
- Added the ability to save recipes in the recipe creator to a text file.
- Added an OpenAI server status indicator to the main menu for easy notifications of possible server issues.
- Fixed the chat bubbles to fit text more accurately and not leave as much unneeded space.
- Improved some internal preprocessor prompts used for the proofreader.
0.1.4:
- Added a recipe creator with multiple options and parameters including serving size, vegan options, and different instruction styles.
- The ability to export the recipe will be added at a later date.
0.1.3:
- Added an image prompter interface that will provide prompts to use in software like Stable Diffusion.
- Other minor fixes and changes.
0.1.2:
- Added a new proofreader interface with the ability to fix grammar & spelling, summarize text, analyze sentiment, and change the writing styles of any provided text.
- Refactored parts of the code to make it more modular & expandable. There is still some work to do.
- Preprocessor prompts for the general chatting feature will now accept JSON format for the preprocessor allowing you to include your own logit bias dictionary for more fine-tuning.
- Changed the estimated cost value to reflect the cost I have seen in my usage. $0.000002 seems to be the correct value per 1 token in my testing.
0.1.1:
- Added a new start screen that explains the API and how to get started.
- Added a mode selection screen to allow for different features to be added in the future.
- Changed the save system for conversations to make it more expandable. Old saved conversations will no longer work.
- Minor bug fixes and quality-of-life improvements.
0.1.0: Initial release
Status | Prototype |
Category | Tool |
Platforms | Windows |
Author | CDcruz |
Genre | Visual Novel |
Tags | Creative, Generator, GitHub, Godot, Graphical User Interface (GUI), Text based |
Download
Download NowName your own price
Click download now to get access to the following files:
quasai.zip 67 MB
Development log
- 0.3.1May 23, 2023
- 3.0.0Apr 30, 2023
- 0.2.2Apr 17, 2023
- 0.2.1Mar 30, 2023
- 0.2.0 Renamed to QuasaiMar 25, 2023
- 0.1.8 some other infoMar 22, 2023
- 0.1.7Mar 19, 2023
- 0.1.6aMar 18, 2023
Comments
Log in with itch.io to leave a comment.
hi, it seems can't use the system proxy?
hello, I’m unsure what you mean. Can you please provide more detail?
my computer uses a socks5 proxy, chrome, edge all working well, but Quasai does not obey the proxy, I think it at less should provide a setting to set the proxy(https/http or socks)
i’ve never heard of socks5 proxy but I will look into it. I can’t promise I will add that functionality but I will try.
Thanks!
I don't know how to make feature requests, but can I please request that the user be able to select the output text so that they can copy/paste? Currently the text is not selectable once it is in the chat window
Yes, I should be able to do that. You can actually copy the output message by just clicking on the chat bubble. But It does make more sense to be able to select the text manually.
Awesome. I'd love to be able to add my own chat characters. From chat I keep getting Server 400 error to the point now I can't rely on the app, but I have faith!
Hi, Thanks for the comment.
You can create your own pre-processor prompts for the general chatting mode. You just need to add a text file to your user data folder. You can open this folder from the config menu in general chatting.
Add whatever prompt you want to a text file and reload the program for your pre-processor prompt to work. That is one way to add your own character.
In regards to the 400 error could you provide a bit more information? I haven't come across that error at all while testing. It could also be an API Key issue.
Love your work!
The error I get is below:
"
[OpenAIAPI] Sent msg.
[OpenAIAPI] Request completed.
Request failed with error code:400
SCRIPT ERROR: Trying to assign value of type 'MarginContainer' to a variable of type 'PanelContainer'.
at: _on_openai_request_error (res://scripts/general_chat/chat.gd:185)"
ohh I see what's wrong. Thanks! It's a really simple bug.
It should be fixed in the newest version I have just uploaded.