save brain to seperate file as well

This commit is contained in:
deathbybandaid 2019-06-05 08:03:08 -04:00
parent 766ff9e9d0
commit 80eb810238
4 changed files with 24 additions and 2 deletions

View File

@ -12,6 +12,7 @@ import tempfile
import aiml
from .Database import db as botdb
from .Config import config as botconfig
class SpiceBot_AI_MainSection(StaticSection):
@ -38,8 +39,14 @@ class SpiceBot_AI():
self.aiml_kernel._verboseMode = False
# Learn responses
self.load_saved_brain()
self.load_brain()
def load_saved_brain(self):
if os.path.isfile(botconfig.config.aibrain):
self.aiml_kernel.bootstrap(brainFile=botconfig.config.aibrain)
self.save_brain()
def load_brain(self):
import sopel_modules
braindirs = []
@ -50,6 +57,7 @@ class SpiceBot_AI():
# learn directories
self.learn(braindirs)
self.save_brain()
def load_bot_values(self, bot):
self.aiml_kernel.setBotPredicate("nick", bot.nick)
@ -57,6 +65,7 @@ class SpiceBot_AI():
def load_extras(self, bot):
if len(bot.config.SpiceBot_AI.extra):
self.learn(self, bot.config.SpiceBot_AI.extra)
self.save_brain()
def learn(self, braindirs):
for braindir in braindirs:
@ -79,13 +88,18 @@ class SpiceBot_AI():
self.aiml_kernel.respond("LOAD AIML B")
def on_message(self, bot, trigger, message):
nick = Identifier(trigger.nick)
nick_id = botdb.get_nick_id(nick, create=True)
self.check_user_import(nick, nick_id)
message = self.bot_message_precipher(bot, trigger, message)
aiml_response = self.aiml_kernel.respond(message, nick_id)
self.save_nick_session(nick, nick_id)
aiml_response = self.bot_message_decipher(bot, trigger, aiml_response)
self.save_nick_session(nick, nick_id)
self.save_brain()
return aiml_response
def bot_message_precipher(self, bot, trigger, message):
@ -128,5 +142,8 @@ class SpiceBot_AI():
sessionData = self.aiml_kernel.getSessionData(nick_id)
botdb.set_nick_value(nick, 'botai', sessionData)
def save_brain(self):
self.aiml_kernel.saveBrain(botconfig.config.aibrain)
botai = SpiceBot_AI()

View File

@ -35,6 +35,8 @@ class BotConfig():
self.config.core.logs_raw = os.path.join(self.config.core.logdir, 'raw.log')
# self.config.core.logs_raw = os.path.os.path.join(self.config.core.logdir, self.config.basename + '.raw.log')
self.config.aibrain = os.path.join(self.config.homedir, self.config.basename + '.aibrain.brn')
# load as dict
config = configparser.ConfigParser()
config.read(self.config.filename)

View File

@ -59,6 +59,8 @@ def setup(bot):
bot.config.core.logs_raw = os.path.join(bot.config.core.logdir, 'raw.log')
# bot.config.core.logs_raw = os.path.os.path.join(bot.config.core.logdir, bot.config.basename + '.raw.log')
bot.config.aibrain = os.path.join(bot.config.homedir, bot.config.basename + '.aibrain.brn')
logs.log('SpiceBot_Channels', "Setting Up Configuration")
events.startup_add([events.BOT_CHANNELS])
bot.config.define_section("SpiceBot_Channels", SpiceBot_Channels_MainSection, validate=False)

View File

@ -6,4 +6,5 @@ from .AI import botai
def shutdown(bot):
pass
botai.save_brain()