Skip to main content

PyQt OpenAI example

Project description

pyqt-openai

Example of using OpenAI with PyQt (Python cross-platform GUI toolkit)

This shows an example of using OpenAI with PyQt as a chatbot and using DALL-E or Stable Diffusion as a image generation tool.

Even though this project has become too huge to be called an 'example'.

The major advantage of this package is that you don't need to know other language aside from Python.

If you want to study openai with Python-only good old desktop software, this is for you.

The OpenAI model this package uses is the gpt-3.5-turbo model(which is nearly as functional as ChatGPT) by default. You can use gpt-4 as well.

Image generation feature(DALL-E and Stable Diffusion) available since v0.1.4.

Stable Diffusion used DreamStudio API. This is not entirely free like stable-diffusion-webgui.

But this is very lightweight and more accessible. don't need CUDA, torch, expansive PC, anything.

This is using sqlite as a database.

You can select the model at the right side bar.

An internet connection is required.

Table of Contents

Feature

  • basically this is desktop application version of ChatGPT with image generation tool.

    • text streaming (enable by default, you can disable it)

    • AI remembers past conversation

  • conversation management

    • add & delete conversations

    • save conversations

    • rename conversation

    • everything above is saved in an SQLite database file named conv.db.

  • support GPT-4 and every other models below GPT3

  • support prompt generator (manageable, autosaved in database)

  • support slash commands

  • support beginning and ending part of the prompt

  • you can run this in background application

    • notification will pop up when response is generated
  • you can make window stack on top or control its transparency

  • image generation (DALL-E, Stable Diffusion with DreamStudio API)

  • you can copy and download the image if you want. just hover the mouse cursor over the image.

Requirements

  • qtpy - the package allowing you to write code that works with both PyQt and PySide

  • PyQt5 >= 5.14 or PySide6

  • openai

  • pyperclip - to copy prompt template from prompt generator

  • stability_sdk - for Stable Diffusion

Preview & Usage

Overview

Note: Some of these previews are not the latest.

image

You have to write your openai api key inside the red box. see How to install

You can change screen between text chatbot and image generating tool screen.

image

Conversation

https://user-images.githubusercontent.com/55078043/236583883-8e9732a3-1223-4b28-85f1-f60d8b2d6ced.mp4

Prompt Generator

https://github.com/yjg30737/pyqt-openai/assets/55078043/2f351442-1e8c-4ba2-b5fe-4391df6250ff

You can use the additional prompt feature by "prompt menu" right next to input field.

image

Image Generation

image

How to Install

  1. open command propmt of your OS.

  2. git clone ~

  3. from the root directory, type "cd pyqt_openai"

  4. pip install -r requirements.txt

  5. You should put your api key in the line edit. You can get it in official site of openai. Sign up and log in before you get it.

Be sure, this is a very important API key that belongs to you only, so you should remember it and keep it secure.

  1. python main.py

If installation doesn't work, you can contact me with bring up new issue in issue tab or check the troubleshooting below even it is only about very specific error.

Troubleshooting

If you see this error while installing the openai package


subprocess-exited-with-error

download the package itself from pypi.

Unzip it, access the package directory, type


python setup.py install

That will install the openai.

Note: I don't know this can happen in newer version of openai as well, so tell me if you know about something

Contact

You can join pyqt-openai's Discord Server to have a conversation about it or AI-related stuff 🙂

Note

I recommend to install sqlite management software. It's not necessary to run this app (obviously), but it's good practice to manage database about conversation history with AI and to know how this works.

TODO list

  • DB for images (to further experiement of both DALL-E and Stable Diffusion or other image generation engine)

  • show the explanation of every model and terms related to AI (e.g. temperature, topp..)

  • save conversation history with other format (xlsx, csv, etc.)

  • tokenizer

  • highlight the source (optional, eventually)

  • support multiple language

  • use SQLAlchemy (maybe not)

  • show reason when the chat input is disabled for some reasons

  • add the basic example sources of making deep learning model with PyTorch (eventually)

See Also

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyqt-openai-0.1.51.tar.gz (62.4 kB view details)

Uploaded Source

Built Distribution

pyqt_openai-0.1.51-py3-none-any.whl (82.1 kB view details)

Uploaded Python 3

File details

Details for the file pyqt-openai-0.1.51.tar.gz.

File metadata

  • Download URL: pyqt-openai-0.1.51.tar.gz
  • Upload date:
  • Size: 62.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.4

File hashes

Hashes for pyqt-openai-0.1.51.tar.gz
Algorithm Hash digest
SHA256 81fab5ddc87f3b46b2a2565672dc5957739cd79f3cf139b4d4c88784e82ad353
MD5 e57134b83e70265f7588c75eaa57aa76
BLAKE2b-256 9710cbd92c554d3c1683eea3ca2662e6c51fee5f3419b4a48602e6c84f5392b0

See more details on using hashes here.

File details

Details for the file pyqt_openai-0.1.51-py3-none-any.whl.

File metadata

  • Download URL: pyqt_openai-0.1.51-py3-none-any.whl
  • Upload date:
  • Size: 82.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.4

File hashes

Hashes for pyqt_openai-0.1.51-py3-none-any.whl
Algorithm Hash digest
SHA256 a24b666cd6a5f2a996fa2afced6bf2f406990a94e610d014d5dcab580de873ea
MD5 79ca495faa30717f2f959336d55ce04b
BLAKE2b-256 4cf462149b7f3ca6c7f9494a5ac7500ce7a85dac518e397d2099d6ed568f011e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page