# imports from src.DST.dst import DST from src.DP.dp import DP from src.NLU.nlu import NLU from sys import argv import sys, getopt import argparse from pprint import pprint def main(argv): debug_mode = False # parser = argparse.ArgumentParser() opts, args = getopt.getopt(argv, "", ["debug"]) for opt, arg in opts: if "--debug" == opt: debug_mode = True # parser.add_argument("--debug", help="Debug mode, show state of dialogue") # args = parser.parse_args() # initial modules dst = DST(recipe_path = "AMUseBotBackend/recipe/", dialog_path = "AMUseBotBackend/dialog/") dp = DP(dst=dst) nlu = NLU(intent_dict_path='AMUseBotBackend/utils/intent_dict.json', model_identifier_path='AMUseBotBackend/models/NLU/roberta-base-cookdial.txt') # main loop while True: intent = None system_message = None dst.restart() system_message = dp.generate_response(intent) print(system_message) while True: user_message = input() if "restart" == user_message.lower(): break intents = nlu.predict(user_message) # print("intent ", intent) dst.update_dialog_history( system_message=system_message, user_message=user_message, intents=intents, ) system_message = dp.generate_response(intents) print(system_message) if(debug_mode): printable_object = {"dialog_state" : dst.generate_state()} pprint(printable_object, width=200) if __name__ == '__main__': main(sys.argv[1:])