Chatbots for Matrix.
Go to file
Cyberes 06396a70da make process_image async 2024-04-10 18:21:26 -06:00
docs add config documentation 2024-04-10 16:48:35 -06:00
matrix_gpt make process_image async 2024-04-10 18:21:26 -06:00
.gitignore add vision 2024-04-09 19:26:44 -06:00
LICENSE Initial commit 2023-03-17 20:11:13 -06:00
README.md add a bit more logging and docs, update readme 2024-04-10 18:16:36 -06:00
config.sample.yaml add vision 2024-04-09 19:26:44 -06:00
main.py add a bit more logging and docs, update readme 2024-04-10 18:16:36 -06:00
matrixgpt.service fix service 2024-04-08 00:12:37 -06:00
requirements.txt forgot to update requirements 2024-04-10 16:51:31 -06:00

README.md

MatrixGPT

Chatbots for Matrix.

This bot supports OpenAI, Anthropic, and locally hosted models that use an OpenAI-compatible endpoint. It can run multiple different models using different triggers, such as !c4 for GPT4 and !ca for Anthropic, all through the same bot.

Supported Services

  • OpenAI (+ vision)
  • Anthropic (+ vision)
  • Anthropic
  • Bing Copilot
  • Dalle-3 (TODO)

Install

  1. Install requirements:
    sudo apt install libolm-dev gcc python3-dev
    pip install -r requirements.txt
    
  2. Copy config.sample.yaml to config.yaml and fill it out with the bot's Matrix authentication and your OpenAI and/or Anthropic API keys.
  3. Start the bot with python3 main.py

Pantalaimon is required for the bot to be able to talk in encrypted rooms.

I included a sample Systemd service (matrixgpt.service).

Use

First, invite your bot to a room. Then you can start a chat by prefixing your message with your trigger (for example, !c hello!). The bot will create a thread when it replies. You don't need to use the trigger in the thread.

Use !matrixgpt to view the bot's help. The bot also responds to !bots.


  • Don't try to use two bots in the same thread.
  • You can DM the bot for a private chat.
  • The bot will move its read marker whenever a message is sent in the room.

The bot can give helpful reactions:

  • 🚫 means permission denied (not allowed to chat with the bot).
  • 🕒 means the API timed out.
  • means the bot encountered an exception.
  • 🔐 means there was a decryption failure.

TODO

  • Dalle bot
  • Add our own context mechanism to Copilot?
  • Improve error messages sent with reactions to narrow down where the issue occurred.
  • Allow replying to an image post which will give a vision model an image + text on the first message.
  • Fix the typing indicator being removed when two responses are generating.
  • Add vision to Copilot (not doing, API to unstable).