OtakuMegane / DerpyBot

An active learning chatbot using Markov chains.
MIT License
5 stars 3 forks source link

Amazing, but can AI be improved? #9

Closed snaildos closed 4 years ago

snaildos commented 5 years ago

I love the bot! He used to be a little baby, but now he knows ALOT more words, and some of the things people dont understand, Like if I say: Hello

He says: hello bot is so the research and they couldn’t afford to learn anything

So... He kinda repeats what I say with some other random sentance, is it possible to make him act like better? I dont want to use chatty cathy or anything like that.. I think this one is the best. But I need him to kinda learn the meaning of the words, so he can say it back better, or something like that idk, Anything to make him speak better would be helpful.

Thank you for making this bot :)

OtakuMegane commented 5 years ago

Glad you're enjoying it. You can try adjusting the state_size setting to 2 or 3 which will improve how it builds sentences (though it requires more processing and memory). Also the output structure should continue to improve as it learns more. However the core (markovify) is a Markov chain generator, which is a pretty limited AI type.

Markov chains are basically a chain of fragments connected together based on the beginning and ending of two fragments matching. There are simple statistics that influence the grammar but that's it. Derpy will additionally pick out a keyword to try and make the sentence relevant to what was said. But in the end a Markov generator doesn't know what any of it actually means and there's no practical way to change that.

The bot was named Derpy for a reason lol.

snaildos commented 5 years ago

Were can I change that??

OtakuMegane commented 5 years ago

The config options for the markov generator are in modules/derpmarkov/config/. Rename config.cfg.example to config.cfg and you can change values there. defaults.cfg has all the possible options listed and info about what they do.

DelphiDv commented 5 years ago

How can i make it use sqlite3, pls help im kinda dumb.

DelphiDv commented 5 years ago

Oh and more importantly, is there a way i could make it work in any channel? having to change what channel it listens and learn from is pretty annoying, and my attempt at doing it myself didnt worked.

OtakuMegane commented 5 years ago

It doesn't use sqlite3 or any kind of database. It stores what's learned in a text file.

There is currently no setting to listen on all server channels. I'll take a look at adding something like that.

OtakuMegane commented 4 years ago

The new settings all_channels and markov_all_channels now handle this.