def __init__(self, db, logger, enable_debug=True): """ Create a new instance of the chatbot application. >>> from database import Database >>> db = Database('sqlite:///:memory:') >>> bot = Chatbot(db, logging.getLogger()) >>> response = bot.handle_input("Hi!") """ self.prompt = '-> ' self.creative_mode = False # enables creative mode, temporarilly. # creative mode allows concurrent activity # between creative subgroup and lev1, lev2 self.enable_debug = enable_debug self.db = db self.log = logger self.nlg = NaturalLanguageGenerator(logger.getChild('nlg')) self.nlu = NaturalLanguageUnderstander(0.5, logger.getChild('nlu')) self.dm = DialogueManager(db, logger.getChild('dm')) # self.creative_nlp = CreativeManager(db, logger.getChild('creative'), self.nlu, self.nlg, self.dm) # self.log.debug("Chatbot instantiated") self.last_bot_output = "" # Register the NLU messages we want self.nlu.register_message(YesNoMessage) self.nlu.register_message(SearchMessage) self.nlu.register_message(SystemMessage) startup(self.nlg)
import random import types import logging import nlg from nlg import NaturalLanguageGenerator from nlg import ContentPlanMessage as CPM # from nlu.messages import SearchMessage, YesNoMessage, SystemMessage # nlu = NaturalLanguageUnderstander(confidenceThreshold, logger) # nlu = NaturalLanguageUnderstander(0.5, logger) # dm = DialogueManager(db, logger.getChild('dm')) logger = logging.getLogger() nlg = NaturalLanguageGenerator(logger) # from nlu.messages import SearchMessage, YesNoMessage, SystemMessage # def generate_response(self, content_plan_or_plans): # def handle_content_plan_message(self, content_plan): # def generate_recipe(self, recipe): # def generate(self, utter_type, keywords): # def acknowledge(self): # def affirm(self): # def decline(self): # def goodbye(self): # def unknown(self): # def clarify(self, keywords): # def summarize_query(self, query): # def specify_recipe(self, keywords): # def search_fail(self, keywords): # def search_related(self, keywords): # def advise(self): # def change_tone(self, tone):