# VividNode(pyqt-openai)
<div align="center">
<img src="https://github.com/user-attachments/assets/ab169535-8af0-40c7-848d-59a7e5e4b304"/>
<b>A cross-platform AI desktop chatbot application for LLM such as GPT, Claude, Gemini, Llama chatbot interaction and image generation, offering customizable features, local chat history, and enhanced performance—no browser required!<br><br>
Basically for free, powered by GPT4Free and LiteLLM.</b>
<hr>
[](https://discord.gg/cHekprskVE)
[](https://pypi.org/project/pyqt-openai/) [](https://pepy.tech/project/pyqt-openai) [](https://pypi.org/project/pyqt-openai/) 
</div>

<hr>
## What is VividNode? 🤔
**VividNode** is a cross-platform desktop application that allows you to interact directly with LLM(GPT, Claude, Gemini, Llama) chatbots and generate images without needing a browser. Built with PySide6, VividNode (formerly known as pyqt-openai) supports Windows, Mac, and Linux, and securely stores your chat history locally in a database.
### Key Features:
- **Chat Interface**: Enjoy a seamless chat experience with a customizable interface, fast thread and message search, and advanced conversation settings. You can also import/export chat histories and use prompt management tools for efficient prompt engineering.
- **Image Generation**: Generate images using OpenAI’s DALL-E 3 or models from Replicate or GPT4Free, directly within your chat sessions. The app supports endless image generation, randomly generated prompt, automatic saving, and integrated image management.
- **Focus and Accessibility Modes**: Utilize Focus Mode, “Always on Top” Mode, transparency adjustments, and background notifications to keep the chat accessible and responsive without overwhelming system resources.
- **Customization and Shortcuts**: VividNode offers extensive customization options, including language settings, memory management, and a comprehensive list of keyboard shortcuts for faster operations.
- **Support for interactive chatting (STT & TTS)**: It features a recording function using OpenAI's STT capabilities and allows responses to be heard in various voices through OpenAI Whisper or the TTS functionality of the Edge browser (using edge-tts, which is free).
With VividNode, you can experience a more powerful and resource-efficient alternative to browser-based GPT interfaces, making it easier to manage both text and image-based interactions.
<hr>
## Sidenote 🗒️
Although this is named 'pyqt-openai', the model does not use only OpenAI-related models, and the GUI is created using PySide6, not PyQt. 'pyqt-openai' was the package name decided initially, and we are still using it as changing the package name now would likely result in a huge disaster.
## How to Install
### Standard Way
1. git clone ~
2. cd pyqt-openai
3. pip install -r requirements.txt --upgrade
4. cd pyqt_openai
5. python main.py
### With Makefile
1. make venv
2. make run
### Wanna download this without doing stuffs like above? You can download installer or zip file <a href="https://github.com/yjg30737/pyqt-openai/releases">here.</a>
## How to Use 🧐
**<a href="https://medium.com/@yjg30737/what-is-vividnode-how-to-use-it-4d8a9269a3c0">QuickStart</a>**
## Test Scenario
This is the [default test scenario page](https://github.com/yjg30737/pyqt-openai/wiki/Test-Scenario). If you want to test it out and be sure nothing is wrong, try it :)
## Troubleshooting
### Common Issues
#### Issues Related to PyAudio
- This issue is often due to the absence of PortAudio. Make sure to install PortAudio before you install PyAudio.
#### Issues Related to PySide6 During Installation
- As of October 14, 2024, PySide6 supports Python versions above 3.9 and below 3.13. If support for Python 3.13 is added in the future, you can remove this note.
#### Handling Error Messages Related to Software Updates (Windows)
- If you encounter the following error message when trying to update VividNode via the auto-update feature: **PermissionError: [Errno 13] Permission denied**, To resolve this issue, run VividNode as an administrator.
- Also, if VividNode keeps asking "Wanna update?" even though you've updated it already, just install this again and everything will be fine.
#### Runtime error

- If you see the error above, run the application again. It is likely to be shown in old version(below v1.5.0) so update to the latest version.
#### Incomplete or Inaccurate Translations
- If you come across incomplete or unnatural translations, please update the **pyqt_openai/lang/translations.json** file.
If the solutions listed here don’t resolve your issue, please report it by [opening an issue](https://github.com/yjg30737/pyqt-openai/issues).
## Help Needed 🆘
**Managing this project alone has become quite challenging so i'm reaching out for support.**
If you have experience with coding, documentation, design, or even providing constructive feedback, I would greatly appreciate your involvement. Your contribution could make a significant difference.
Your contribution, even just a fix a simple typo in readme or simple refactoring can be very helpful. Of course there are a lot of official TODOs i need helping hand as well. So [see here](https://github.com/yjg30737/pyqt-openai/blob/main/CONTRIBUTING.md) if you are willing to contribute.
You can contact me 24/7 by sending me an email to **yjg30737@gmail.com** or join [**Discord server**](https://discord.gg/cHekprskVE) to talk in real time
## Contributors
* **Me (WizMiner)** 😊
* Creator of VividNode 🐐
## Disclaimer
Please do not distribute this commercially without my permission, by claiming it as your own creation.
Raw data
{
"_id": null,
"home_page": null,
"name": "pyqt-openai",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.10",
"maintainer_email": null,
"keywords": "openai, pyqt, pyqt5, pyqt6, pyside6, desktop, app, chatbot, gpt, replicate, gemini, claude, llama, llm, gpt4free, litellm",
"author": null,
"author_email": "Jung Gyu Yoon <yjg30737@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/8e/0b/2879c05ed77f4fa7b4776dc25add0b197f3e9c4389490f294489b83ef122/pyqt_openai-1.8.3.tar.gz",
"platform": null,
"description": "# VividNode(pyqt-openai)\r\n<div align=\"center\">\r\n <img src=\"https://github.com/user-attachments/assets/ab169535-8af0-40c7-848d-59a7e5e4b304\"/>\r\n\r\n <b>A cross-platform AI desktop chatbot application for LLM such as GPT, Claude, Gemini, Llama chatbot interaction and image generation, offering customizable features, local chat history, and enhanced performance\u2014no browser required!<br><br>\r\n Basically for free, powered by GPT4Free and LiteLLM.</b>\r\n\r\n<hr>\r\n\r\n [](https://discord.gg/cHekprskVE)\r\n \r\n [](https://pypi.org/project/pyqt-openai/) [](https://pepy.tech/project/pyqt-openai) [](https://pypi.org/project/pyqt-openai/) \r\n</div>\r\n\r\n\r\n\r\n<hr>\r\n\r\n## What is VividNode? \ud83e\udd14\r\n\r\n**VividNode** is a cross-platform desktop application that allows you to interact directly with LLM(GPT, Claude, Gemini, Llama) chatbots and generate images without needing a browser. Built with PySide6, VividNode (formerly known as pyqt-openai) supports Windows, Mac, and Linux, and securely stores your chat history locally in a database.\r\n\r\n### Key Features:\r\n- **Chat Interface**: Enjoy a seamless chat experience with a customizable interface, fast thread and message search, and advanced conversation settings. You can also import/export chat histories and use prompt management tools for efficient prompt engineering.\r\n- **Image Generation**: Generate images using OpenAI\u2019s DALL-E 3 or models from Replicate or GPT4Free, directly within your chat sessions. The app supports endless image generation, randomly generated prompt, automatic saving, and integrated image management.\r\n- **Focus and Accessibility Modes**: Utilize Focus Mode, \u201cAlways on Top\u201d Mode, transparency adjustments, and background notifications to keep the chat accessible and responsive without overwhelming system resources.\r\n- **Customization and Shortcuts**: VividNode offers extensive customization options, including language settings, memory management, and a comprehensive list of keyboard shortcuts for faster operations.\r\n- **Support for interactive chatting (STT & TTS)**: It features a recording function using OpenAI's STT capabilities and allows responses to be heard in various voices through OpenAI Whisper or the TTS functionality of the Edge browser (using edge-tts, which is free).\r\n\r\nWith VividNode, you can experience a more powerful and resource-efficient alternative to browser-based GPT interfaces, making it easier to manage both text and image-based interactions.\r\n\r\n<hr>\r\n\r\n## Sidenote \ud83d\uddd2\ufe0f\r\nAlthough this is named 'pyqt-openai', the model does not use only OpenAI-related models, and the GUI is created using PySide6, not PyQt. 'pyqt-openai' was the package name decided initially, and we are still using it as changing the package name now would likely result in a huge disaster.\r\n\r\n## How to Install\r\n### Standard Way\r\n1. git clone ~\r\n2. cd pyqt-openai\r\n3. pip install -r requirements.txt --upgrade\r\n4. cd pyqt_openai\r\n5. python main.py\r\n### With Makefile\r\n1. make venv\r\n2. make run\r\n\r\n### Wanna download this without doing stuffs like above? You can download installer or zip file <a href=\"https://github.com/yjg30737/pyqt-openai/releases\">here.</a>\r\n\r\n## How to Use \ud83e\uddd0\r\n**<a href=\"https://medium.com/@yjg30737/what-is-vividnode-how-to-use-it-4d8a9269a3c0\">QuickStart</a>**\r\n\r\n## Test Scenario\r\nThis is the [default test scenario page](https://github.com/yjg30737/pyqt-openai/wiki/Test-Scenario). If you want to test it out and be sure nothing is wrong, try it :)\r\n\r\n## Troubleshooting\r\n### Common Issues\r\n#### Issues Related to PyAudio\r\n- This issue is often due to the absence of PortAudio. Make sure to install PortAudio before you install PyAudio.\r\n#### Issues Related to PySide6 During Installation \r\n- As of October 14, 2024, PySide6 supports Python versions above 3.9 and below 3.13. If support for Python 3.13 is added in the future, you can remove this note.\r\n#### Handling Error Messages Related to Software Updates (Windows)\r\n- If you encounter the following error message when trying to update VividNode via the auto-update feature: **PermissionError: [Errno 13] Permission denied**, To resolve this issue, run VividNode as an administrator.\r\n- Also, if VividNode keeps asking \"Wanna update?\" even though you've updated it already, just install this again and everything will be fine.\r\n#### Runtime error\r\n\r\n- If you see the error above, run the application again. It is likely to be shown in old version(below v1.5.0) so update to the latest version.\r\n \r\n#### Incomplete or Inaccurate Translations\r\n- If you come across incomplete or unnatural translations, please update the **pyqt_openai/lang/translations.json** file.\r\n\r\nIf the solutions listed here don\u2019t resolve your issue, please report it by [opening an issue](https://github.com/yjg30737/pyqt-openai/issues).\r\n\r\n## Help Needed \ud83c\udd98\r\n\r\n**Managing this project alone has become quite challenging so i'm reaching out for support.**\r\nIf you have experience with coding, documentation, design, or even providing constructive feedback, I would greatly appreciate your involvement. Your contribution could make a significant difference.\r\n\r\nYour contribution, even just a fix a simple typo in readme or simple refactoring can be very helpful. Of course there are a lot of official TODOs i need helping hand as well. So [see here](https://github.com/yjg30737/pyqt-openai/blob/main/CONTRIBUTING.md) if you are willing to contribute.\r\n\r\nYou can contact me 24/7 by sending me an email to **yjg30737@gmail.com** or join [**Discord server**](https://discord.gg/cHekprskVE) to talk in real time\r\n\r\n## Contributors\r\n* **Me (WizMiner)** \ud83d\ude0a\r\n * Creator of VividNode \ud83d\udc10\r\n\r\n## Disclaimer\r\nPlease do not distribute this commercially without my permission, by claiming it as your own creation.\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python multipurpose chatbot that user can use GPT, other AI models altogether (Release Name: VividNode)",
"version": "1.8.3",
"project_urls": {
"homepage": "https://github.com/yjg30737/pyqt-openai.git"
},
"split_keywords": [
"openai",
" pyqt",
" pyqt5",
" pyqt6",
" pyside6",
" desktop",
" app",
" chatbot",
" gpt",
" replicate",
" gemini",
" claude",
" llama",
" llm",
" gpt4free",
" litellm"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6a48acd68aea21eae6a0c6d9a5bfba8dd1bd349fa1b32fdc4318e1bcef099a91",
"md5": "b543d6152becaf749ce22d0a96b91299",
"sha256": "832b81ab6efabfdc5284cbd93d245344bee9124dc24f5ef057627aa1c73ad2c3"
},
"downloads": -1,
"filename": "pyqt_openai-1.8.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b543d6152becaf749ce22d0a96b91299",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.10",
"size": 254583,
"upload_time": "2024-12-08T01:46:34",
"upload_time_iso_8601": "2024-12-08T01:46:34.390294Z",
"url": "https://files.pythonhosted.org/packages/6a/48/acd68aea21eae6a0c6d9a5bfba8dd1bd349fa1b32fdc4318e1bcef099a91/pyqt_openai-1.8.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8e0b2879c05ed77f4fa7b4776dc25add0b197f3e9c4389490f294489b83ef122",
"md5": "35c191a6cb89b77810cb4d7f47694696",
"sha256": "5a1fc1c8084bd10911ce7f21ac320435afdbd3cf9d7707f5f78e67a35ab477c6"
},
"downloads": -1,
"filename": "pyqt_openai-1.8.3.tar.gz",
"has_sig": false,
"md5_digest": "35c191a6cb89b77810cb4d7f47694696",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.10",
"size": 244044,
"upload_time": "2024-12-08T01:46:35",
"upload_time_iso_8601": "2024-12-08T01:46:35.716080Z",
"url": "https://files.pythonhosted.org/packages/8e/0b/2879c05ed77f4fa7b4776dc25add0b197f3e9c4389490f294489b83ef122/pyqt_openai-1.8.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-08 01:46:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yjg30737",
"github_project": "pyqt-openai",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "PySide6",
"specs": []
},
{
"name": "pyperclip",
"specs": []
},
{
"name": "jinja2",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "pyaudio",
"specs": []
},
{
"name": "pillow",
"specs": []
},
{
"name": "psutil",
"specs": []
},
{
"name": "filetype",
"specs": []
},
{
"name": "openai",
"specs": []
},
{
"name": "anthropic",
"specs": []
},
{
"name": "google-generativeai",
"specs": []
},
{
"name": "replicate",
"specs": []
},
{
"name": "llama-index",
"specs": []
},
{
"name": "docx2txt",
"specs": []
},
{
"name": "openpyxl",
"specs": []
},
{
"name": "g4f",
"specs": [
[
"==",
"0.3.3.4"
]
]
},
{
"name": "curl_cffi",
"specs": []
},
{
"name": "litellm",
"specs": []
},
{
"name": "edge-tts",
"specs": []
}
],
"lcname": "pyqt-openai"
}