GPT chatbot using OpenAI API
Project description
pyRobBot: Talk and Chat with GPT LLMs
A python package that uses OpenAI's GPT large language models (LLMs) to implement:
- A fully configurable personal assistant that can speak and listen to you
- An equally fully configurable text-based chatbot that can be used either via web UI or terminal
Features
-
Text to speech and speech to text
- Talk to the GPT assistant and the assistant will talk back to you!
- Choose your preferred language (e.g.,
rob --lang pt-br
) - Choose your preferred Text-to-Speech (TTS) engine
- OpenAI Text-to-Speech (default): AI-generated human-like voice
- Google TTS (
rob --tts google
): free at the time being, with decent quality
-
Browser UI (made with Streamlit)
- Add/remove conversations dynamically
- Automatic/editable conversation summary title
-
Terminal UI
- For a more "Wake up, Neo" experience
-
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
- In the browser UI, you can even read the transcripts of your voice conversations with the AI
-
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
- To enable voice chat, you also need:
Installation
This, naturally, assumes your system 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).
Chatting by Voice (default)
rob
Using the Web UI
rob ui
Running on the Terminal
rob .
Disclaimers
This project's main purpose has been to serve as a learning exercise for me, as well as tool for experimenting with OpenAI API, GPT LLMs and text-to-speech/speech-to-text.
While it does not claim to be the best or more robust OpenAI-powered chatbot out there, it does aim to provide a friendly user interface that is easy to install, use and configure.
Feel free to open an issue or, even better, 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.