45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
from pathlib import Path
|
|
from modules.nlu import NLU, Slot, Act
|
|
from modules.state_monitor import DialogStateMonitor
|
|
from modules.generator import ResponseGenerator
|
|
from modules.strategy import DialoguePolicy
|
|
from modules.config import Config
|
|
import scipy.stats
|
|
import colorama
|
|
from colorama import Fore, Style
|
|
|
|
colorama.init(autoreset=True)
|
|
|
|
|
|
def main():
|
|
print(Fore.CYAN + "Starting chatbot. Please wait...")
|
|
base_path = Path(__file__).resolve().parent
|
|
config_path = base_path / 'config' / 'config.json'
|
|
config = Config.load_config(config_path)
|
|
|
|
nlu = NLU()
|
|
dst = DialogStateMonitor()
|
|
dp = DialoguePolicy()
|
|
generator = ResponseGenerator(config)
|
|
|
|
print(Fore.CYAN + "Witaj w chatbocie! Rozpocznij rozmowę.")
|
|
print(Fore.YELLOW + "Wpisz 'quit' aby zakończyć program.\n")
|
|
|
|
while True:
|
|
user_input = input(Fore.GREEN + "Ty: " + Style.RESET_ALL)
|
|
if user_input.lower() == "quit":
|
|
print(Fore.RED + "Zamykanie chatbota...")
|
|
break
|
|
|
|
user_act = nlu.analyze(user_input)
|
|
|
|
dst.update(user_act)
|
|
system_action = dp.next_action(dst)
|
|
response = generator.nlg(system_action)
|
|
|
|
print(Fore.CYAN + "Bot: " + response)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|