49 lines
2.1 KiB
Python
49 lines
2.1 KiB
Python
import json
|
|
from typing import Dict
|
|
from .config import Config
|
|
import random
|
|
|
|
|
|
class ResponseGenerator:
|
|
def __init__(self, config: Config):
|
|
with config.responses_path.open('r', encoding='utf-8') as file:
|
|
self.responses: Dict[str, list] = json.load(file)
|
|
|
|
def nlg(self, system_act):
|
|
intent = system_act.intent
|
|
slot = system_act.slots[0].name if system_act.slots else None
|
|
|
|
responses = {
|
|
"inform": {
|
|
"item": "Nasz sklep oferuje szeroki wybór artykułów, takich jak\n artykuły spożywcze,\n ogrodowe\n oraz kosmetyki. Proszę podaj produkt.",
|
|
"address": "Nasz sklep nie ma fizycznego adresu. To sklep internetowy.",
|
|
"delivery_method": "Dostępne formy dostawy: INPOST, DPD, DHL.",
|
|
"payment_method": "Dostępne formy płatności: Karta, przy odbiorze",
|
|
"email": "Obsługa klienta: cs2137@gmail.com",
|
|
"card_nr": random.choice([
|
|
"Dzięki karcie rabatowej zbierasz punkty, które poźniej przekładają się na rabat.",
|
|
"Dzisiaj z kartą rabatową meble ogrodowe 200zł taniej!",
|
|
"Dzisiaj z kartą rabatową szampony 2 w cenie 1!"
|
|
])
|
|
},
|
|
"canthelp": {
|
|
"unknown": random.choice([
|
|
"Przepraszam, nie rozumiem polecenia...",
|
|
"Możesz powtórzyć?",
|
|
"Powiedz proszę jeszcze raz.."
|
|
])
|
|
},
|
|
"request": {
|
|
"card_nr": "Podaj proszę numer karty rabatowej",
|
|
"address": "Podaj proszę adres do wysyłki",
|
|
"item": "Jaki produkt chcesz kupić?",
|
|
"email": "Podaj proszę email.",
|
|
"delivery_method": "Jaką formą dostawy jesteś zainteresowany?",
|
|
"payment_method": "Jaką formą płatności jesteś zainteresowany?"
|
|
},
|
|
"bye": "Miłego dnia!",
|
|
"confirmation": "Zamówienie zostało złożone!"
|
|
}
|
|
|
|
return responses.get(intent, {}).get(slot, "Nieznane zapytanie.")
|