The ChatGPT Zulip Bot is a bot that responds to users by using the ChatGPT language model. It can be used in any Zulip chat streams or private messages.
- Clone the repository:
git clone https://github.com/yeahjack/chatgpt_zulip_bot.git- Install the required dependencies (You might need to create a virtual env if you like):
pip install -r requirements.txt- Set up your Zulip bot:
- Go to your Zulip organization settings, and navigate to the "Your bots" section.
- Click the "Add a new bot" button and follow the prompts to create a new bot.
- Download the configuartion file and move it to this folder.
- Rename
config.ini.exampletoconfig.iniand fill in the values, note that you do not have to add commas (" ") around the values. Here are the explanations of parameters inconfig.ini.
| Parameters | Details |
|---|---|
| OPENAI_API_KEY | Your OpenAI API Key. Could be set via this. |
| ZULIP_CONFIG | The filename of your zulip bot configuration file. |
| USER_ID | The ID of the admin. Used for notifications. |
| BOT_ID | The ID of the zulip bot. Used for positioning. |
| API_VERSION | The version of OpenAI models. e.g. gpt-3.5-turbo |
- Start the bot:
python chatgpt_zulip_bot.pyIf you need to set a proxy for the OpenAI API, the normal method would be
import os
os.environ["http_proxy"] = "http://127.0.0.1:7890"
os.environ["https_proxy"] = "http://127.0.0.1:7890"Remember to replace both strings to your proxy address and port.
To use the bot, mention it in any Zulip stream or send it a private message. You can mention the bot by typing @bot_name where the name is what you gave to the bot when you created it.
Except normal texts, the bot also accepts the following commands
/help: print this usage information./end: end the current conversation. Bot will answer questions based on the context of the conversation. If a conversation reaches its 3000 token limit (you will see a message: "ERROR: OpenAI API rate limit exceeded. Please retry."), then you must restart the conversation with/end.
If you forked this repo and did some changes, you can run the tests to make sure everything is working fine. Each time you push a commit, the tests will be automatically run by GitHub Actions. Note that you need to set API_VERSION and OPENAI_API_KEY in GitHub secrets.
Feel free to leave an issue if you have any questions or suggestions.
Pull requests are also welcomed. If you are interested in contributing this project, a good place to start is the chatgpt_zulip_bot.py and chatgpt.py files. You can customize the bot's behavior by modifying it.