Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update project structure and enhance functionality #199

Merged
merged 3 commits into from
Dec 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -136,4 +136,9 @@ pyqt_openai/pyqt_openai.ini
pyqt_openai/*.db
pyqt_openai/test/
pyqt_openai/config.yaml
test

.history
.archivist
.ruff_cache

test
22 changes: 22 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"recommendations": [
"tamasfe.even-better-toml",
"davidanson.vscode-markdownlint",
"yzhang.markdown-all-in-one",
"irony.qsseditor",
"theqtcompany.qt-core",
"dvratil.vscode-qtdoc",
"seanwu.vscode-qt-for-python",
"theqtcompany.qt-qml",
"theqtcompany.qt-ui",
"charliermarsh.ruff",
"ms-python.vscode-pylance",
"ms-python.python",
"ms-python.debugpy",
"patrick91.python-dependencies-vscode",
"donjayamanne.python-environment-manager",
"twixes.pypi-assistant",
"njqdev.vscode-python-typehint",
"matangover.mypy"
]
}
4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"makefile.configureOnOpen": false,
"mypy.dmypyExecutable": "${workspaceFolder}\\.venv\\Scripts\\dmypy.exe"
}
8 changes: 4 additions & 4 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ representative at an online or offline event.

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
https://www.linkedin.com/in/junggyu-yoon-295246193/.
<https://www.linkedin.com/in/junggyu-yoon-295246193/>.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
Expand Down Expand Up @@ -116,13 +116,13 @@ the community.

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ The following is a list of planned features and tasks that are still in progress
1. **Software Maintainer for Mac**: Seeking a maintainer to support and improve the software for Mac users.
2. **Software Maintainer for Linux**: Seeking a maintainer to support and improve the software for Linux users.

As of October 14, 2024, Windows has an updater and auto-start features;
however, these features are currently unavailable for Mac and Linux. If you are a user of either platform, please contact me! (I'm Windows user 💻)
As of October 14, 2024, Windows has an updater and auto-start features;
however, these features are currently unavailable for Mac and Linux. If you are a user of either platform, please contact me! (I'm Windows user 💻)

### TODO (Additional Improvements)

Expand Down
62 changes: 42 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,75 +1,95 @@
# 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>
![VividNode Logo](https://github.com/user-attachments/assets/ab169535-8af0-40c7-848d-59a7e5e4b304)

<hr>
**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!

Basically for free, powered by GPT4Free and LiteLLM.**

---

[![Discord Server](https://dcbadge.vercel.app/api/server/cHekprskVE)](https://discord.gg/cHekprskVE)

[![](https://dcbadge.vercel.app/api/server/cHekprskVE)](https://discord.gg/cHekprskVE)

[![PyPI - Version](https://img.shields.io/pypi/v/pyqt-openai?logo=pypi&logoColor=white)](https://pypi.org/project/pyqt-openai/) [![Downloads](https://static.pepy.tech/badge/pyqt-openai)](https://pepy.tech/project/pyqt-openai) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyqt-openai?logo=python&logoColor=gold)](https://pypi.org/project/pyqt-openai/) ![commit](https://img.shields.io/github/commit-activity/w/yjg30737/pyqt-openai)
</div>

![image](https://github.com/user-attachments/assets/9f5f2ca0-b191-4655-b671-ae0834e1a0b1)

<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:
### 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 OpenAIs 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.
- **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>
### Wanna download this without doing stuffs like above? You can download installer or zip file [here](https://github.com/yjg30737/pyqt-openai/releases)

## How to Use 🧐
**<a href="https://medium.com/@yjg30737/what-is-vividnode-how-to-use-it-4d8a9269a3c0">QuickStart</a>**

**[QuickStart](https://medium.com/@yjg30737/what-is-vividnode-how-to-use-it-4d8a9269a3c0)**

## 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

#### 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

![image](https://github.com/user-attachments/assets/f53b44bb-1572-48ce-a9a0-a5da2b338d09)

- 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 dont resolve your issue, please report it by [opening an issue](https://github.com/yjg30737/pyqt-openai/issues).
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 🆘

Expand All @@ -78,11 +98,13 @@ If you have experience with coding, documentation, design, or even providing con

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 **[email protected]** or join [**Discord server**](https://discord.gg/cHekprskVE) to talk in real time
You can contact me 24/7 by sending me an email to **<[email protected]>** or join [**Discord server**](https://discord.gg/cHekprskVE) to talk in real time

## Contributors
* **Me (WizMiner)** 😊
* Creator of VividNode 🐐

- **Me (WizMiner)** 😊
- Creator of VividNode 🐐

## Disclaimer

Please do not distribute this commercially without my permission, by claiming it as your own creation.
Loading