PyRobBot is 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
- Personal assistant with text-to-speech and speech-to-text capabilities
- 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
- Input via text or voice
- Terminal UI
- For a more "Wake up, Neo" experience
- Internet access: The assistent will search the web and to find the answers it doesn't have in its training data
- E.g. current events, weather forecasts, etc.
- 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
- 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:
This, naturally, assumes your system fulfills all requirements.
pip install pyrobbot
pip install git+https://github.com/paulovcmedeiros/pyRobBot.git
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
rob ui
See also our demo Streamlit app!
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.