You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
3.4 KiB

# text-gen-bot
Matrix bot that generates messages based off of messages of other users using a neural network. The first Matrix AI? [Featured on TWIM!](
Note: Project is still being developed and some functionality is not fully implemented yet.
## Table of content
- [Useage](#usage)
- [Commands](#commands)
- [Setup](#setup)
- [Configurations](#configurations)
- [Using existing messages](#using-existing-messages)
### Usage
First install the needed using the instructions [here](#setup). Then copy `example.config.json` and rename it `config.json`. Replace the items in angled brackets with their respective values of the bot account (e.g. replace `<DOMAIN.TLD>` with the homeserver url like `` or ``). An explanation of each configurable string is located in [configurations](#configurations) section of this document. To obtain the token of an account follow the instructions [here](
Once the config file has been populated with valid data, execute the `index.js` file (Warning: executing for the first time will be slow.).
$ node index.js
<some warnings show up, ignore them>
Client has started!
List of directories and files created by the project and its dependencies:
- `aitextgen/`
- `node_modules/`
- `trained_model/`
- `aitextgen.tokenizer.json`
- `storage.json`
- `training-matrix.txt`
#### Commands
The bot has several commands:
► speak ⇢ Generates a message in the room.
► prompt ⇢ Generate a message using a prompt.
To train the AI, run this command:
> python3
### Setup
The project is split into 2 parts `index.js` and ``. The `index.js` file contains the code that interacts with the user on Matrix and sends text generated by the `` file.
Install [matrix-bot-sdk]( and [python-shell]( (JS):
> pnpm add matrix-bot-sdk
> pnpm add python-shell
Install [aitextgen]( (PY):
> pip3 install aitextgen
### Configurations
Before a bot can be used the fields in the `config.json` file must be populated with valid information. Values in angled brackets (stared below) must be supplied before usage.
► homeserver* ⇢ URL of the bot's homeserver.
► token* ⇢ Account token used to sign in the bot.
► user* ⇢ Account's User ID.
► file ⇢ Path of file used for training the AI (.txt file only).
► prefix ⇢ Bot listens to commands that start with this prefix.
► frequency ⇢ How often the bot sends a message (keep high to prevent spam).
► retrain ⇢ The bot retrains itself after this many extra lines of messages are recorded in the text file.
### Using existing messages
If you do not want to wait until the bot creates its own dataset from new messages, you can export chat history of a room easily using [Element]( In this case, you will need to manually remove the time stamps from the text file then place the path of the file in the `file` variable in the configuration file.