PyRobBot is a python package that uses OpenAI's GPT large language models (LLMs) to implement a fully configurable personal assistant that, on top of the traditional chatbot interface, can also speak and listen to you using AI-generated human-like voices.
Features include, but are not limited to:
Voice Chat
Internet access: The assistent will search the web to find the answers it doesn't have in its training data
Web browser user interface
Chat via terminal
Fully configurable
rob --lang pt-br
)Chat context handling using embeddings
Estimated API token usage and associated costs
OpenAI API key is never stored on disk
OPENAI_API_KEY
sudo apt-get --assume-yes install portaudio19-dev python-all-dev
sudo yum install portaudio portaudio-devel
sudo apt-get --assume-yes install ffmpeg
sudo yum install ffmpeg
This, naturally, assumes your system fulfills all requirements.
The recommended way for most users.
pip install pyrobbot
pip install git+https://github.com/paulovcmedeiros/pyRobBot.git
The recommended way for those who want to contribute to the project. We use poetry with the poethepoet plugin. To get everything set up, run:
# Clean eventual previous install
curl -sSL https://install.python-poetry.org | python3 - --uninstall
rm -rf ${HOME}/.cache/pypoetry/ ${HOME}/.local/bin/poetry ${HOME}/.local/share/pypoetry
# Download and install poetry
curl -sSL https://install.python-poetry.org | python3 -
# Install needed poetry plugin(s)
poetry self add 'poethepoet[poetry_plugin]'
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).
rob
See also our demo Streamlit app!
rob voice
rob .
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 independently developed and not affiliated, endorsed, or sponsored by OpenAI in any way. It is separate and distinct from OpenAI’s own products and services.