Discord bot utilizing a recurrent neural network to learn based on sent messages in channels.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Markus Becker 70dc9e34c8 better childbotpy 1 year ago
README.md readme usage of environ 2 years ago
childbot.py better childbotpy 1 year ago
clean.sh better clean file 1 year ago
start.sh live version 2 years ago



This is ChildBot, also known as the “good for a father bot”. It learns from the discord channels it has access to and can train on those to reproduce language similar to messages sent across the channels.


It is build using discord.py and textgenrnn, with those and asyncio being it’s only requirements.


The bot works in two seperate phases. With just executing childbot.py it starts executing the bot phase, interacting with discord and responding to !dnn commands. If childbot.py -t <num> is executed the bot will train on the data it has collected using num Epochs.

The intended way to use this behaviour is to have one instance of the bot listen to all chats, and start the training routine regularly in the background (e.g. once a day). Then the bot instance can be killed and restarted, and it will automatically use the newly learned weights.

In order for the bot to connect to discord you need to set up an application on discordapp.com/developers and enable the bot account. Then set the environment variable DISCORD_AUTH before executing the bot process. However learning based on collected data does not need DISCORD_AUTH to be set.


These vary strongly depending on the amount of messages the bot has access too and the type of messages it sees.

So far, in my testing, it has not been able to “make sense” after less than 50 Epochs, but above starts to repeat the most common messages too much. This is something that needs to be addressed.