diff --git a/pwnagotchi/automata.py b/pwnagotchi/automata.py index ed373c45..25d112a6 100644 --- a/pwnagotchi/automata.py +++ b/pwnagotchi/automata.py @@ -1,6 +1,7 @@ import logging import pwnagotchi.plugins as plugins +from pwnagotchi.ai.epoch import Epoch # basic mood system diff --git a/pwnagotchi/plugins/default/example.py b/pwnagotchi/plugins/default/example.py index 17f982e5..cf30827c 100644 --- a/pwnagotchi/plugins/default/example.py +++ b/pwnagotchi/plugins/default/example.py @@ -58,6 +58,34 @@ class Example(plugins.Plugin): # or set a custom state # agent.set_bored() + # called when the AI finished loading + def on_ai_ready(self, agent): + pass + + # called when the AI finds a new set of parameters + def on_ai_policy(self, agent, policy): + pass + + # called when the AI starts training for a given number of epochs + def on_ai_training_start(self, agent, epochs): + pass + + # called after the AI completed a training epoch + def on_ai_training_step(self, agent, _locals, _globals): + pass + + # called when the AI has done training + def on_ai_training_end(self, agent): + pass + + # called when the AI got the best reward so far + def on_ai_best_reward(self, agent, reward): + pass + + # called when the AI got the worst reward so far + def on_ai_worst_reward(self, agent, reward): + pass + # called when a non overlapping wifi channel is found to be free def on_free_channel(self, agent, channel): pass diff --git a/pwnagotchi/plugins/default/logtail.py b/pwnagotchi/plugins/default/logtail.py index a572453a..83ff885c 100644 --- a/pwnagotchi/plugins/default/logtail.py +++ b/pwnagotchi/plugins/default/logtail.py @@ -3,7 +3,7 @@ import logging import threading from itertools import islice from time import sleep -from datetime import datetime, timedelta +from datetime import datetime,timedelta from pwnagotchi import plugins from pwnagotchi.utils import StatusFile from flask import render_template_string diff --git a/pwnagotchi/voice.py b/pwnagotchi/voice.py index 78597901..1a459d4f 100644 --- a/pwnagotchi/voice.py +++ b/pwnagotchi/voice.py @@ -26,6 +26,11 @@ class Voice: self._('New day, new hunt, new pwns!'), self._('Hack the Planet!')]) + def on_ai_ready(self): + return random.choice([ + self._('AI ready.'), + self._('The neural network is ready.')]) + def on_keys_generation(self): return random.choice([ self._('Generating keys, do not turn off ...')])