GPT chatbot using OpenAI API
Project description
pyRobBot: Talk and Chat with GPT LLMs
An interface to OpenAI's GPT large language models (LLMs) that implements:
- A conventional chatbot that can be used either via web UI or terminal
- A personal assistant that can actually interact with you by voice
The package is written in Python. The web chatbot UI is made with Streamlit.
See and try the demo web app on Streamlit!
Features
- Text to speech and speech to text (
rob voice
)- Talk to the GPT assistant!
- You can choose your preferred language (e.g.,
rob voice --lang pt-br
)
- Web UI
- Add/remove conversations dynamically
- Automatic/editable conversation summary title
- Fully configurable
- Support for multiple GPT LLMs
- Control over the parameters passed to the OpenAI API, with (hopefully) sensible defaults
- Ability to pass base directives to the LLM
- E.g., to make it adopt a persona, but you decide which directived to pass
- Dynamically modifiable AI parameters in each chat separately
- No need to restart the chat
- Autosave & retrieve chat history
- Chat context handling using embeddings
- Estimated API token usage and associated costs
- OpenAI API key is never stored on disk
System Requirements
- Python >= 3.9
- A valid OpenAI API key
- Set in the Web UI or through the environment variable
OPENAI_API_KEY
- Set in the Web UI or through the environment variable
- Optionally, to enable voice chat, you also need:
- PortAudio
- Install on Ubuntu with
sudo apt-get --assume-yes install portaudio19-dev python-all-dev
- Install on CentOS/RHEL with
sudo yum install portaudio portaudio-devel
- Install on Ubuntu with
- PortAudio
Installation
This, naturally, assumes your systems fulfills all requirements.
Using pip
pip install pyrobbot
From source
pip install git+https://github.com/paulovcmedeiros/pyRobBot.git
Basic Usage
Upon succesfull installation, you should be able to run
rob [opts] SUBCOMMAND [subcommand_opts]
where [opts]
and [subcommand_opts]
denote optional command line arguments
that apply, respectively, to rob
in general and to SUBCOMMAND
specifically.
Please run rob -h
for information about the supported subcommands
and general rob
options. For info about specific subcommands and the
options that apply to them only, please run rob SUBCOMMAND -h
(note
that the -h
goes after the subcommand in this case).
Using the Web UI
rob
Chatting by Voice
rob voice
Running on the Terminal
rob .
Disclaimers
This project's main purpose is to serve as a learning exercise for me, as well as tool for experimenting with OpenAI API, GPT LLMs and text-to-voice/voice-to-text. It does not claim to be the best or more robust OpenAI-powered chatbot out there.
Having said this, this project does aim to provide a friendly user interface that is easy to use and configure. Feel free to open an issue or submit a pull request if you find a bug or have a suggestion.
Last but not least: this project is not affiliated with OpenAI in any way.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyrobbot-0.2.4.tar.gz
.
File metadata
- Download URL: pyrobbot-0.2.4.tar.gz
- Upload date:
- Size: 128.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.9.16 Linux/5.14.0-284.30.1.el9_2.x86_64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac088cac741a1235f00d063d0e52dd4ffe0e5a4c66fcef97a1e6794e592e81bf |
|
MD5 | 1addc72a369b2fa49a24edb89a44ee26 |
|
BLAKE2b-256 | e209cf01ed65c0385e9274483825f13dd366c93f9c32c8f86a1cd947eb9167bd |
File details
Details for the file pyrobbot-0.2.4-py3-none-any.whl
.
File metadata
- Download URL: pyrobbot-0.2.4-py3-none-any.whl
- Upload date:
- Size: 129.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.9.16 Linux/5.14.0-284.30.1.el9_2.x86_64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a6c27cfea2929296255439b341dedc2a43e5751c069aae23f18877ac041cb9a |
|
MD5 | 8e026bd9b9717616f5405969c3778967 |
|
BLAKE2b-256 | b9add5ecc748ad5d4da6a9038357956395b913a524ff8dbaac189bc69b3daf32 |