Port over local repo
This commit is contained in:
commit
676b6aa8ea
21 changed files with 1121 additions and 0 deletions
75
README.md
Normal file
75
README.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
I went a little overboard with this bot.
|
||||
|
||||
This started off as just a NLP test in a Discord bot however I ended up liking
|
||||
it so I'm porting some additional ideas into it as well, and might just use this
|
||||
for my guilds.
|
||||
|
||||
## Natural Language Processing
|
||||
|
||||
Back before the advent of interactions, I never understood why we were trying to
|
||||
train users on command prefixes. It made sense to have "!do_a_thing" but it was
|
||||
also unnatural.
|
||||
|
||||
We've long had bots that grep out phrases and act when they're made. There was
|
||||
nothing stopping us from analyzing every on_message for trigger phrases and
|
||||
performing actions when conditions are met.
|
||||
|
||||
We've already trained users on "Hey Google" and Apple has gone as far as "Siri,
|
||||
".
|
||||
|
||||
This bot does away with commands - prefixes or UI commands.
|
||||
|
||||
This bot listens out for being mentioned in a Discord or being DM'd directly.
|
||||
It leverages spaCy to tokenize and lemmatize the message and attempts to detect
|
||||
intention from a relatively free form message.
|
||||
|
||||
## Cog/Action Separation
|
||||
|
||||
I have this issue where I'll write a Discord bot and lose a lot of time porting
|
||||
over logic and commands, or just losing progress all together.
|
||||
|
||||
This bot separates a lot of the logic between performing actions and determining
|
||||
when to perform actions.
|
||||
|
||||
- Cogs are used to detect intention and process messages
|
||||
- Cogs just run actions
|
||||
- Actions contain automation logic
|
||||
|
||||
This is a leadup into creating an API for managing a Discord server, and might
|
||||
allow me to convert the bot into supporting OpenTofu if I'm motivated.
|
||||
|
||||
## REDIS
|
||||
|
||||
I had some issues with the MySQL helper. Latency per request was a little too
|
||||
high. Those database calls added *just* enough latency to be noticable in the
|
||||
Discord client, and in a few larger requests it even timed out on the
|
||||
interaction reply.
|
||||
|
||||
REDIS is super quick and way easier to configure.
|
||||
|
||||
Long story but I much prefer MariaDB to REDIS for storing application data. In
|
||||
my K3S clusters I can easily just delegate out table/credentials using the
|
||||
MariaDB provider, and allow the provider to handle scaling for me.
|
||||
|
||||
Unfortunately doing this with REDIS isn't as easy. REDIS isn't designed for this
|
||||
kind of thing and because of that, you'll probably need to run a REDIS pod
|
||||
alongside your Bot.
|
||||
|
||||
But most bots are likely just docker-compose for fun or whatever. I don't see
|
||||
this as massively scalable code. And REDIS simplifies the ever loving shit out
|
||||
of the codes logic.
|
||||
|
||||
## Notice on AI
|
||||
|
||||
People love to jump up and say "OH BUT THIS IS AI".
|
||||
|
||||
Yeah no shit mate.
|
||||
|
||||
I use AI to skip searching for things. I get it to help along the way then I
|
||||
ask it to cleanup code afterwards so that I don't have to waste time coding out
|
||||
try blocks and shit.
|
||||
|
||||
Most of this code was just written out and then processed by AI. So fuck off
|
||||
about it.
|
||||
|
||||
If you're curious; ChatGPT and Gemini.
|
Loading…
Add table
Add a link
Reference in a new issue