chatbot #4
@ -1,27 +1,33 @@
|
|||||||
{
|
{
|
||||||
"name_response": [
|
"inform": {
|
||||||
"Witaj, nazywam się Dia.",
|
"item": "Nasz sklep oferuje szeroki wybór artykułów, takich jak\n artykuły spożywcze,\n ogrodowe\n oraz kosmetyki. Proszę podaj produkt.",
|
||||||
"Cześć! Jestem Dia.",
|
"address": "Nasz sklep nie ma fizycznego adresu. To sklep internetowy.",
|
||||||
"Hej, jestem Dia.",
|
"delivery_method": "Dostępne formy dostawy: INPOST, DPD, DHL.",
|
||||||
"Witaj! Nazywam się Dia.",
|
"payment_method": "Dostępne formy płatności: Karta, przy odbiorze",
|
||||||
"Cześć, jestem Dia.",
|
"email": "Obsługa klienta: cs2137@gmail.com",
|
||||||
"Hej! Jestem Dia.",
|
"card_nr": [
|
||||||
"Jestem Dia. Miło mi Cię poznać.",
|
"Dzięki karcie rabatowej zbierasz punkty, które poźniej przekładają się na rabat.",
|
||||||
"Witaj, jestem chatbot Dia."
|
"Dzisiaj z kartą rabatową meble ogrodowe 200zł taniej!",
|
||||||
],
|
"Dzisiaj z kartą rabatową szampony 2 w cenie 1!"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"canthelp": {
|
||||||
"unknown": [
|
"unknown": [
|
||||||
"Przepraszam, nie rozumiem. Możesz to powtórzyć?",
|
"Przepraszam, nie rozumiem. Możesz to powtórzyć?",
|
||||||
"Nie jestem pewien, co masz na myśli. Czy możesz to wyjaśnić?",
|
"Nie jestem pewien, co masz na myśli. Czy możesz to wyjaśnić?",
|
||||||
"Nie rozumiem. Możesz to powtórzyć?",
|
"Nie rozumiem. Możesz to powtórzyć?",
|
||||||
"Nie jestem pewien, co masz na myśli. Możesz to wyjaśnić?",
|
"Nie jestem pewien, co masz na myśli. Możesz to wyjaśnić?",
|
||||||
"Nie jestem pewien, co masz na myśli. Czy możesz to wyjaśnić?"
|
"Nie jestem pewien, co masz na myśli. Czy możesz to wyjaśnić?"
|
||||||
],
|
|
||||||
"repeat": [
|
|
||||||
"Wygląda na to, że krążymy wokół tego samego tematu. Czy możemy przejść do czegoś innego?",
|
|
||||||
"Znowu to samo pytanie, może zmienimy temat?",
|
|
||||||
"Ponownie pytasz o to samo, czy jest coś innego, o co chciałbyś zapytać?"
|
|
||||||
],
|
|
||||||
"give_price": [
|
|
||||||
"Cena to 20zl"
|
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"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!"
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ def main():
|
|||||||
nlu = NLU()
|
nlu = NLU()
|
||||||
dst = DialogStateMonitor()
|
dst = DialogStateMonitor()
|
||||||
dp = DialoguePolicy()
|
dp = DialoguePolicy()
|
||||||
generator = ResponseGenerator()
|
generator = ResponseGenerator(config)
|
||||||
|
|
||||||
print(Fore.CYAN + "Witaj w chatbocie! Rozpocznij rozmowę.")
|
print(Fore.CYAN + "Witaj w chatbocie! Rozpocznij rozmowę.")
|
||||||
print(Fore.YELLOW + "Wpisz 'quit' aby zakończyć program.\n")
|
print(Fore.YELLOW + "Wpisz 'quit' aby zakończyć program.\n")
|
||||||
|
@ -7,42 +7,18 @@ import random
|
|||||||
class ResponseGenerator:
|
class ResponseGenerator:
|
||||||
def __init__(self, config: Config):
|
def __init__(self, config: Config):
|
||||||
with config.responses_path.open('r', encoding='utf-8') as file:
|
with config.responses_path.open('r', encoding='utf-8') as file:
|
||||||
self.responses: Dict[str, list] = json.load(file)
|
self.responses: Dict[str, dict] = json.load(file)
|
||||||
|
|
||||||
def nlg(self, system_act):
|
def nlg(self, system_act):
|
||||||
intent = system_act.intent
|
intent = system_act.intent
|
||||||
slot = system_act.slots[0].name if system_act.slots else None
|
slot = system_act.slots[0].name if system_act.slots else None
|
||||||
|
|
||||||
responses = {
|
intent_responses = self.responses.get(intent, {})
|
||||||
"inform": {
|
slot_responses = intent_responses.get(slot)
|
||||||
"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.")
|
if isinstance(slot_responses, list):
|
||||||
|
return random.choice(slot_responses)
|
||||||
|
elif isinstance(slot_responses, str):
|
||||||
|
return slot_responses
|
||||||
|
else:
|
||||||
|
return "Nieznane zapytanie."
|
Loading…
Reference in New Issue
Block a user