AI chatbot for Matrix with infinite personalties, using ollama
Go to file
2023-12-17 01:00:32 -05:00
launcher.py Initial commit 2023-12-15 00:55:57 -05:00
LICENSE Initial commit 2023-12-15 00:55:33 -05:00
ollamarama.py bug fix 2023-12-17 01:00:32 -05:00
README.md minor update to the help menu 2023-12-15 20:59:07 -05:00

ollamarama-matrix

Ollamarama is an AI chatbot for the Matrix chat protocol using LiteLLM and Ollama. It can roleplay as almost anything you can think of. You can set any default personality you would like. It can be changed at any time, and each user has their own separate chat history with their chosen personality setting. Users can interact with each others chat histories for collaboration if they would like, but otherwise, conversations are separated, per channel, per user.

This is based on my earlier project, infinigpt-matrix, which uses OpenAI and costs money to use.

Coming soon for IRC

Setup

Install and familiarize yourself with Ollama, make sure you can run offline LLMs, etc.

You can install it with this command:

curl https://ollama.ai/install.sh | sh

Once it's all set up, you'll need to download the model. You can play with the available ones and see what works best for you, but for this bot, zephyr:7b-beta-q8_0 seems to work best of the ones I've tested. To install:

ollama pull zephyr:7b-beta-q8_0

You'll also need to install matrix-nio and litellm

pip3 install matrix-nio litellm

Set up a Matrix account for your bot. You'll need the server, username and password.

Plug those into the appropriate variables in the launcher.py file.

python3 launcher.py

Use

.ai message or botname: message Basic usage. Personality is preset by bot operator.

.x user message This allows you to talk to another user's chat history. user is the display name of the user whose history you want to use

.persona personality Changes the personality. It can be a character, personality type, object, idea. Don't use a custom prompt here.

.custom prompt Allows use of a custom system prompt instead of the roleplaying prompt

.reset Reset to preset personality

.stock Remove personality and reset to standard settings

.help Show the built-in help menu