Chat with GPT LLMs over voice, UI & terminal, with access to internet. Uses the OpenAI API.
Project description
pyRobBot: Chat with GPT LLMs over voice, UI & terminal, with access to internet
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 (e.g.,
rob --tts google
)- OpenAI Text-to-Speech (default): AI-generated human-like voice
- Google TTS: free at the time being, with decent quality
- Choose your preferred Speech-to-Text (STT) engine
- Also between OpenAI and Google (default)
- Web browser UI (made with Streamlit)
- Add/remove conversations dynamically
- Automatic/editable conversation summary title
- Terminal UI
- For a more "Wake up, Neo" experience
- The chat will search the web and try to find the answers it does not have (e.g. current events)
- 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.