Compare commits
102 Commits
origin/mas
...
master
Author | SHA1 | Date | |
---|---|---|---|
![]() |
fb02b1ef4f | ||
![]() |
781623bf5e | ||
ef2e4fc3f7 | |||
![]() |
256fd00b7b | ||
01046d677f | |||
![]() |
145cd06a16 | ||
87fe08a208 | |||
![]() |
031fdff757 | ||
![]() |
a1b0d7a8eb | ||
![]() |
5d9ea60358 | ||
![]() |
3a0c120710 | ||
![]() |
90cd71b16a | ||
![]() |
221d442609 | ||
![]() |
2ec80069af | ||
![]() |
1630edf119 | ||
![]() |
f7341e3123 | ||
![]() |
b323afbc52 | ||
![]() |
247c855d6f | ||
![]() |
b15957b5d1 | ||
![]() |
330f3bc947 | ||
![]() |
f73a796df1 | ||
![]() |
e61b55dbaa | ||
![]() |
bfbfc507cf | ||
![]() |
299452076d | ||
![]() |
a1257f29fb | ||
![]() |
53d498fb2c | ||
![]() |
43115895e5 | ||
![]() |
46d6f28114 | ||
![]() |
02e30f53e0 | ||
![]() |
9001dfae12 | ||
![]() |
81c4eb1377 | ||
![]() |
515edc086a | ||
![]() |
11a10d9293 | ||
![]() |
56ce78a89e | ||
![]() |
e1647eae91 | ||
![]() |
8df2c5c059 | ||
![]() |
113fba9022 | ||
493479fc40 | |||
![]() |
183b019dc6 | ||
b3a6d43abd | |||
90e30dd21c | |||
bbee312022 | |||
2828d67ac2 | |||
83c1d4584a | |||
![]() |
c6513b6060 | ||
![]() |
b27bb2e0f9 | ||
![]() |
c68c78522b | ||
![]() |
3da2fb8aad | ||
f694cbcd86 | |||
![]() |
d071927fb1 | ||
![]() |
54f71c15ff | ||
![]() |
16b6ac2794 | ||
![]() |
96f31cc740 | ||
7b8937a98a | |||
2a1f03b365 | |||
2de6bee37b | |||
![]() |
f24e3b00f7 | ||
![]() |
c4abf9c60f | ||
![]() |
94acf7f8e7 | ||
![]() |
b2a2cd6b9f | ||
![]() |
8efe50c3d9 | ||
![]() |
ad00a977bb | ||
a0606c4749 | |||
![]() |
cfbb0317af | ||
![]() |
025ccafaa4 | ||
47e49d3761 | |||
e989147807 | |||
13144c3018 | |||
![]() |
f2bb3e49b3 | ||
![]() |
70cc3d18c7 | ||
b890a691fe | |||
![]() |
1939795c9f | ||
![]() |
f37f57800e | ||
![]() |
8bb60e917e | ||
![]() |
3fc73fbf5f | ||
![]() |
f560ec6616 | ||
![]() |
1763079981 | ||
![]() |
85fc3882f6 | ||
![]() |
a911cd349d | ||
![]() |
f9143117a4 | ||
![]() |
bc4c4dae54 | ||
![]() |
120b02ed92 | ||
![]() |
0efa23f2cc | ||
![]() |
6aa968a517 | ||
![]() |
60b8b81129 | ||
385a323e1e | |||
ef9a6b3090 | |||
c70bbbddd6 | |||
![]() |
feae9a1553 | ||
![]() |
c3822d4ef7 | ||
49c7c86a0a | |||
![]() |
3461a0ccf4 | ||
077d3bdb29 | |||
cca4bd9de1 | |||
f98b657481 | |||
![]() |
9617ce7015 | ||
a3b4525200 | |||
5223aa05b5 | |||
![]() |
0406ab314e | ||
![]() |
16d2d00493 | ||
![]() |
b43bb4c5bd | ||
![]() |
ebd01c6523 |
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
*.vs
|
||||
*.vscode
|
||||
__pychache__/
|
||||
DialogSystems/
|
295
DialogManager.ipynb
Normal file
295
DialogManager.ipynb
Normal file
@ -0,0 +1,295 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 48,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import json\n",
|
||||
"import os\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"class DST():\n",
|
||||
" def __init__(self):\n",
|
||||
" self.state = json.load(open('dictionary.json'))\n",
|
||||
"\n",
|
||||
" def update(self, user_act=None):\n",
|
||||
" for intent, domain, slot, value in user_act:\n",
|
||||
" domain = domain.lower()\n",
|
||||
" intent = intent.lower()\n",
|
||||
" slot = slot.lower()\n",
|
||||
" \n",
|
||||
" if domain not in self.state['belief_state']:\n",
|
||||
" continue\n",
|
||||
"\n",
|
||||
" if intent == 'inform':\n",
|
||||
" if slot == 'none' or slot == '':\n",
|
||||
" continue\n",
|
||||
"\n",
|
||||
" domain_dic = self.state['belief_state'][domain]\n",
|
||||
"\n",
|
||||
" if slot in domain_dic:\n",
|
||||
" self.state['belief_state'][domain][slot] = value\n",
|
||||
"\n",
|
||||
" elif intent == 'request':\n",
|
||||
" if domain not in self.state['request_state']:\n",
|
||||
" self.state['request_state'][domain] = {}\n",
|
||||
" if slot not in self.state['request_state'][domain]:\n",
|
||||
" self.state['request_state'][domain][slot] = 0\n",
|
||||
" \n",
|
||||
" self.state['user_act'] = user_act\n",
|
||||
" return self.state\n",
|
||||
" def init_session(self):\n",
|
||||
" self.state = json.load(open('dictionary.json'))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 49,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"dst = DST()\n",
|
||||
"user_act = [('inform', 'payment', 'type', 'karta'), ('inform', 'delivery', 'type','paczkomat'), ('inform', 'product', 'type', 'telefon'), ('request', 'product', 'type', '?')]\n",
|
||||
"state = dst.update(user_act)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 50,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"{'payment': {'type': 'karta', 'amount': '', 'loyalty_card': ''}, 'delivery': {'type': 'paczkomat', 'address': '', 'time': ''}, 'product': {'name': '', 'type': 'telefon', 'brand': '', 'price_range': '', 'price': '', 'quantity': '', 'quality': ''}}\n",
|
||||
"{'product': {'type': 0}}\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"{'user_act': [('inform', 'payment', 'type', 'karta'),\n",
|
||||
" ('inform', 'delivery', 'type', 'paczkomat'),\n",
|
||||
" ('inform', 'product', 'type', 'telefon'),\n",
|
||||
" ('request', 'product', 'type', '?')],\n",
|
||||
" 'system_act': [],\n",
|
||||
" 'belief_state': {'payment': {'type': 'karta',\n",
|
||||
" 'amount': '',\n",
|
||||
" 'loyalty_card': ''},\n",
|
||||
" 'delivery': {'type': 'paczkomat', 'address': '', 'time': ''},\n",
|
||||
" 'product': {'name': '',\n",
|
||||
" 'type': 'telefon',\n",
|
||||
" 'brand': '',\n",
|
||||
" 'price_range': '',\n",
|
||||
" 'price': '',\n",
|
||||
" 'quantity': '',\n",
|
||||
" 'quality': ''}},\n",
|
||||
" 'request_state': {'product': {'type': 0}},\n",
|
||||
" 'terminated': False,\n",
|
||||
" 'history': []}"
|
||||
]
|
||||
},
|
||||
"execution_count": 50,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(state['belief_state'])\n",
|
||||
"print(state['request_state'])\n",
|
||||
"dst.state"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 51,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from collections import defaultdict\n",
|
||||
"from convlab.policy.policy import Policy\n",
|
||||
"import json\n",
|
||||
"\n",
|
||||
"class SimpleRulePolicy(Policy):\n",
|
||||
" def __init__(self):\n",
|
||||
" Policy.__init__(self)\n",
|
||||
" self.db = json.load(open('product_db.json'))\n",
|
||||
"\n",
|
||||
" def predict(self, state):\n",
|
||||
" self.results = []\n",
|
||||
" system_action = defaultdict(list)\n",
|
||||
" user_action = defaultdict(list)\n",
|
||||
" system_acts = []\n",
|
||||
" for intent, domain, slot, value in state['user_act']:\n",
|
||||
" user_action[(domain.lower(), intent.lower())].append((slot.lower(), value))\n",
|
||||
" for user_act in user_action:\n",
|
||||
" self.update_system_action(user_act, user_action, state, system_action)\n",
|
||||
" system_acts = [[intent, domain, slot, value] for (domain, intent), slots in system_action.items() for slot, value in slots]\n",
|
||||
" state['system_act'] = system_acts\n",
|
||||
" return system_acts\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" def update_system_action(self, user_act, user_action, state, system_action):\n",
|
||||
" domain, intent = user_act\n",
|
||||
" constraints = [(slot, value) for slot, value in state['belief_state'][domain.lower()].items() if value != '']\n",
|
||||
" self.results = self.db['database'][domain]\n",
|
||||
"\n",
|
||||
" # Reguła 1\n",
|
||||
" if intent == 'request':\n",
|
||||
" if len(self.results) == 0:\n",
|
||||
" system_action[(domain, 'NoOffer')] = []\n",
|
||||
" else:\n",
|
||||
" for slot in user_action[user_act]:\n",
|
||||
" if self.results and slot[0] in self.results[0]:\n",
|
||||
" system_action[(domain, 'Inform')].append([slot[0], self.results[0].get(slot[0], 'unknown')])\n",
|
||||
"\n",
|
||||
" # Reguła 2\n",
|
||||
" elif intent == 'inform':\n",
|
||||
" if len(self.results) == 0:\n",
|
||||
" system_action[(domain, 'NoOffer')] = []\n",
|
||||
" else:\n",
|
||||
" system_action[(domain, 'Inform')].append(['Choice', str(len(self.results))])\n",
|
||||
" for product in self.results:\n",
|
||||
" if all(product.get(slot, '').lower() == value.lower() for slot, value in constraints):\n",
|
||||
" system_action[(domain, 'Recommend')].append(['Name', product['name']])\n",
|
||||
" break\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 52,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[['Inform', 'product', 'Choice', '11'],\n",
|
||||
" ['Recommend', 'product', 'Name', 'RedBull']]"
|
||||
]
|
||||
},
|
||||
"execution_count": 52,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"dst = DST()\n",
|
||||
"user_act = [('inform', 'product', 'type', 'energol')]\n",
|
||||
"state = dst.update(user_act)\n",
|
||||
"policy = SimpleRulePolicy()\n",
|
||||
"policy.predict(state)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 53,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"WARNING:root:nlu info_dict is not initialized\n",
|
||||
"WARNING:root:dst info_dict is not initialized\n",
|
||||
"WARNING:root:policy info_dict is not initialized\n",
|
||||
"WARNING:root:nlg info_dict is not initialized\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from convlab.dialog_agent import PipelineAgent\n",
|
||||
"policy = SimpleRulePolicy()\n",
|
||||
"agent = PipelineAgent(nlu=None, dst=dst, policy=policy, nlg=None, name='sys')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 54,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[['Inform', 'product', 'Choice', '11'],\n",
|
||||
" ['Recommend', 'product', 'Name', 'pomidor']]"
|
||||
]
|
||||
},
|
||||
"execution_count": 54,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"agent.response([('inform', 'product', 'type', 'warzywo'), ('inform', 'product', 'price_range', 'tani'), ('inform', 'product', 'quality', 'exquisite')])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 55,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[['Inform', 'product', 'Choice', '11'],\n",
|
||||
" ['Recommend', 'product', 'Name', 'Sok pomarańczowy']]"
|
||||
]
|
||||
},
|
||||
"execution_count": 55,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"agent.response([('inform', 'product', 'type', 'napój'), ('inform', 'product', 'price_range', 'drogi'), ('inform', 'product', 'quality', 'exquisite')])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 56,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[['Inform', 'product', 'Choice', '11'],\n",
|
||||
" ['Recommend', 'product', 'Name', 'banan']]"
|
||||
]
|
||||
},
|
||||
"execution_count": 56,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"agent.response([('inform', 'product', 'type', 'owoc'), ('inform', 'product', 'price_range', 'tani'), ('inform', 'product', 'quality', 'exquisite')])"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "py38",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.16"
|
||||
},
|
||||
"orig_nbformat": 4
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
BIN
__pycache__/example_nlu.cpython-310.pyc
Normal file
BIN
__pycache__/example_nlu.cpython-310.pyc
Normal file
Binary file not shown.
16
data/dialog-05-04-01.tsv
Normal file
16
data/dialog-05-04-01.tsv
Normal file
@ -0,0 +1,16 @@
|
||||
user: Dzień dobry, w czym możesz mi pomóc? hello()
|
||||
system: "Witaj użytkowniku 04. To jest agent dialogowy sklepu ""Galaktyczny Skład"" - jest to sieć sklepów spożywczych w których każdy klient może dokonać zakupów spożywczych, opłacić rachunki za media, odebrać paczkę pocztową oraz skorzystać z usług gsm. Oprócz zakupów w sklepach stacjonarnych, nasi klienci też mogą zamawiać produkty w naszym sklepie internetowym oraz przy pomocy tego bota. W razie pytań proszę pisać to tego bota lub zadzwonić na infolinię pod numerem +48-217-342-069. W danej chwili bot jest w otwartej wersji beta, wszelkie błędy lub wątpliwości prosimy zgłaszać przy pomocy polecenia /bot_report w tym czacie lub dzwoniąc na infolinię. W czym mogę dzisiaj pomóc?" welcomemsg()
|
||||
user: Chciałbym zakupić kilka warzyw, jakie są dostępne w ofercie? inform(list=vegetables)
|
||||
system: "Obecnie mamy takie warzywa: - Ziemniaki myte luz 2 cebuliony/kg - Ziemniaki świecące na zielono ""Fat Boy"" 69 cebulionów/kg - Papryka czerwona luz 6 cebulionów/kg - Papryka fioletowa luz 20 cebulionów/kg - Pomidory malinowe luz 7 cebulionów/kg - Pomidory penerskie luz 2 cebuliony/kg - Ogórek kosmiczny luz 70 cebulionów/kg - Ogórek gruntowy luz 5 cebulionów/kg - Cebula czerwona luz 7 cebulionów/kg" infrom-conf(list=vegetables)&expl-conf(list=vegetables)
|
||||
user: Proszę dodać do zamówienia 2 ziemniaki myte oraz 2 ogórki gruntowe. inform(productname=ziemniaki_myte, amount=2)&inform(productname=ogorki_gruntowe, amount=2)
|
||||
system: Czy chcesz dodać: -ziemniaki myte luz 2kg -ogórki myte luz 2kg? request(productname=ziemniaki_myte, amount=2)&inform(productname=ogorki_gruntowe, amount=2)
|
||||
user: Tak affirm()
|
||||
system: Do twojego koszyka zostały dodane: - ziemniaki myte luz 2kg - ogórki gruntowe luz 2kg expl-conf(shopping_cart)
|
||||
user: To będzie wszystko. Jakie są dostępne formy płatności? inform(shopping_done)&infrom(payment_options)
|
||||
system: suma płatności: 14 cebulionów obecnie możesz zapłacić online lub przy odbiorze (karta/gotówka). Czy posiadasz kartę klienta? expl-conf(full_price)&expl-conf(payment_options)&request(client_card)
|
||||
user: Niestety nie posiadam. Dobrze, chciałbym zapłacić na miejscu kartą inform(client_card=false)&inform(payment_option=bank_card, location=on_site)
|
||||
system: Zamówienie zostało przyjęte do realizacji. Proszę podać kod sklepu (xxx-xx) w którym chcesz odebrać zamówienie affirm()&request(shop_code)
|
||||
user: 633-44 infrom(shop_code=633-44)
|
||||
system: Twoje zamówienie można będzie odebrać w trakcie 24h od momentu złożenia (16:34). Czy mogę w czymś jeszcze pomóc? affrim()&inform(order_takeout_limit=24)&inform(order_placed_time=16:34)&request()
|
||||
user: To wszystko, dziękuję bye()
|
||||
system: "dziekujemy za korzystanie z usług sklepu ""Galaktyczny Skład""" bye()
|
|
28
data/dialog-05-06-01.tsv
Normal file
28
data/dialog-05-06-01.tsv
Normal file
@ -0,0 +1,28 @@
|
||||
user: Dzień dobry, z jakich usług można w tym miejscu skorzystać? hello()&help(services)
|
||||
system: "Witaj użytkowniku 06. To jest agent dialogowy sklepu ""Galaktyczny Skład"" - jest to sieć sklepów spożywczych w których każdy klient może dokonać zakupów spożywczych, opłacić rachunki za media, odebrać paczkę pocztową oraz skorzystać z usług gsm. Oprócz zakupów w sklepach stacjonarnych, nasi klienci też mogą zamawiać produkty w naszym sklepie internetowym oraz przy pomocy tego bota. W razie pytań proszę pisać to tego bota lub zadzwonić na infolinię pod numerem +48-217-342-069. W danej chwili bot jest w otwartej wersji beta, wszelkie błędy lub wątpliwości prosimy zgłaszać przy pomocy polecenia /bot_report w tym czacie lub dzwoniąc na infolinię. W czym mogę dzisiaj pomóc?" welcomemsg()&inform(services)
|
||||
user: Chciałbym zamówić cziperki lays zielona cebulka i papryka inform(productname=czipsy lays zielona cebulka) & productname=papryka czerwona)
|
||||
system: "Do koszyka zostały dodane: Czipsy ""Lays"" Zelona Cebulka, Papryka Czerwona" affirm()&inform(productname=czipsy lays zielona cebulka) & productname=papryka czerwona)
|
||||
user: Nie chce papryki tylko lays paprykowe negate(productname=papryka czerwona) & inform(lays papryka)
|
||||
system: "Rozumiem, z koszyka zostały usunietę artykuły: - Papryka Czerwona, Do koszyka zostały dodane artykuły: Czipsy ""Lays"" papryka" affirm()&inform(productname=czipsy lays papryka)&inform(productname=czerwona papryka, remove_action=true)
|
||||
user: No to fajnie affirm()
|
||||
system: Czy mógłbym w czymś jeszcze pomóc? reqmore()
|
||||
user: Jakie macie dostępne napoje gazowane, robię bibe i przyda się trochę płynów inform(list=soft_drinks)
|
||||
system: "Obecnie oferujemy takie napoje gazowane: - ""Space-Cola"" 1L - 6,99 cebulionów - ""Space-Cola"" Light 1L - 6,99 cebulionów - ""Space-Cola"" Zero 1L - 5,99 cebulionów - ""Dr. Q'tar"" puszka 330ml - 3,80 cebulionów - ""Słoneczny Wiatrak"" 1L - 5,99 cebulionów - ""6-Down"" 1L - 7,99 cebulionów Obecnie jest promocja na zakup ""Space-Cola"" w zestawie Bourbon ""Gallactines"" + ""Space-Cola"" w cenie 69 cebulionów Czy chciałbyś zamówić coś z wyżej wymienionych produktów?" inform(list=soft_drinks)&offer(tag=soft_drinks)
|
||||
user: niech będą te produkty z promki i 4 butelki 6-down affirm(offer, tag=soft_drinks)&inform(productname=6-down, amount=4)
|
||||
system: "Do koszyka zostały dodane: Bourbon ""Gallactines"" 1szt Space-Cola 1L 1szt 6-Down 1L 4szt, Czy chcesz kontynuować zakupy?" affirm()&reqmore()
|
||||
user: to będzie wszystko negate()
|
||||
system: Chcesz przejść do płatności? request(payment)
|
||||
user: tak affirm()
|
||||
system: koszyk zapisany, czy chcesz abym przeczytał wszystkie artykuły w koszyku? affirm()&request(list=shopping_cart)
|
||||
user: proszę nie, jakie są opcje dostawy? negate()&inform(delivery_options)
|
||||
system: W chwili obecnej można odebrać zamówienie w sklepie stacjonarnym lub skorzystać z dostawy przez kuriera (użytkownicy PREMIUM,). Jako wybrany użytkownik PREMIUM (zamknięte testowanie w wersji beta) możesz zamówić dostawę w dowolnej galaktyce obsługiwanej przez naszą sieć sklepów infrorm(delifery_options)&infrom(user_type=PREMIUM)
|
||||
user: wybiorę odbiór osobisty inform(delivery_options=take out)
|
||||
system: Wybrana opcja odbioru: odbiór osobisty w sklepie stacjonarnym. Proszę podać kod sklepu w którym chcesz odebrać zamówienie affirm(delivery_options=take out)&request(shop_code)
|
||||
user: 420 - 69696 inform(shop_code)
|
||||
system: Twoje zamówienie będzie dostępne do odbioru w wybranym sklepie po finalizacji zakupów. Suma płatności: 100,96 cebulionów. Czy chcesz zakończyć zakupy? affirm(order)&expl-conf(payment, amount=100,96)&reques(finish)
|
||||
user: tak affirm()
|
||||
system: Czy posiadasz kartę klienta? request(client_card)
|
||||
user: nie negate()
|
||||
system: "Dobrze, zamówienie zostało przyjęte ro realizacji, z twojego konta zostanie pobrane 100,96 cebulionów. zakupy zostały opłacone, dziekujemy za korzystanie z usług sklepu ""Galaktyczny Skład""" affirm()&inform(payment, amount=100,96)
|
||||
user: Dziękuję, do widzenia thankyou()&bye()
|
||||
system: Do widzenia! bye()
|
|
19
data/dialog-05-08-01.tsv
Normal file
19
data/dialog-05-08-01.tsv
Normal file
@ -0,0 +1,19 @@
|
||||
user: Dzień dobry, jakie dzisiaj mamy promocje? hello()&request(deals)
|
||||
system: "Witaj użytkowniku 08. Dzisiaj mamy taką listę promocji: - Pizza Hawajska dla wszystkich od firmy ""Galaktyczna Flota"": przy zakupie 2 artykułów ""Pizza Hawajska"" od ""Galaktycznej Floty"" 2 pizze gratis! - Masło 89% w cenie 3,69 cebulionów przy zakupie 10 sztuk - tanio jak 2021! - Bourbon ""Gallactines"" + ""Space-Cola"" w cenie 69 cebulionów - Wielkanocny Gorgielumper z czekolady mlecznej - 5 cebulionów/szt przy zakupie 3 artykułów - Buty do latania ""Scout MK1"" (zniżka 30%) - 2300 cebulionów - Cyberwizor ""Pandemonic"" (zniżka 20%) - 2222 cebulionów - Olej ""Wielkogalaktyczny"" 6,99 (cena za 1 butelkę) cebulionów przy zakupie 2 sztuk" welcomemsg()&expl-conf(deals)
|
||||
user: koniecznie wezme 10 sztuk masła na te cięzkie czasy. opowiedz mi wiecej o cyberwizorze inform(productname=maslo, amount=10)&reqmore(productname=cyberwizor)
|
||||
system: "Do koszyka zostały dodane: masło 89% - 10 szt. Cyberwizor ""Pandemonic"" to jeden z nowszych modeli cyberwizorów, dostępnych na rynku. Dany model posiada takie funkcjonalności: Interfejs AR do latania przy pomocy butów ""Scout MK1"" oraz do szybkiego namierzania celów (funkcjonalność dostępna po subskrybcji na pakiet dla kosmicznych łowców głów). Czy chcesz kupić cyberwizor ""Pandemonic""?" affirm()&inform(productname=maslo, amount = 10)&expl-conf(productname=cyberwizor, info)
|
||||
user: biore affirm()&inform(productname=cyberwizor)
|
||||
system: "Do koszyka zostały dodane: cyberwizor ""Pandemonic"". Czy chcesz kontynuować zakupy?" affirm()&reqmore()
|
||||
user: nie, to bedzie wszystko negate()
|
||||
system: Chcesz przejść do płatności? request(finish)
|
||||
user: tak affirm()
|
||||
system: koszyk zapisany, czy chcesz abym przeczytał wszystkie artykuły w koszyku? inform(finish)&request(shop_cart)
|
||||
user: nie negate()
|
||||
system: suma płatności: 2,258.90 cebulionów Czy posiadasz kartę klienta? expl-conf(shop_cart, payment=2258.90)&request(client_card)
|
||||
user: tak affirm(client_card)
|
||||
system: poprosze numer karty lub numer telefonu, jeśli był podany przy rejestracji reqmore(client_cart)
|
||||
user: 123 456 inform(client_card = 123 456)
|
||||
system: dodatkowe zniżki zostały naliczone. Suma zniżek: 0 cebulionów. Suma płatności ze zniżkami - 2258,90 cebulionów. Czy chcesz zakończyć zakupy? inform(discount)&expl-conf(discount, amount=0)&inform(payment, amount=2256.90)&request(finish_session)
|
||||
user: tak affirm()
|
||||
system: "Dobrze, zamówienie zostało przyjęte ro realizacji, z twojego konta zostanie pobrane 2258,90 cebulionów. zakupy zostały opłacone, dziekujemy za korzystanie z usług sklepu ""Galaktyczny Skład""" affirm(finish_session)&expl-conf(payment, amount=2256.90)&bye()
|
||||
user: dzięki bye()
|
|
8
data/dialog-05-10-01.tsv
Normal file
8
data/dialog-05-10-01.tsv
Normal file
@ -0,0 +1,8 @@
|
||||
user: Cześć, czym zajmuje się wasz system? hello()&help()
|
||||
system: "Witaj użytkowniku 10. To jest agent dialogowy sklepu ""Galaktyczny Skład"" - jest to sieć sklepów spożywczych w których każdy klient może dokonać zakupów spożywczych, opłacić rachunki za media, odebrać paczkę pocztową oraz skorzystać z usług gsm. Oprócz zakupów w sklepach stacjonarnych, nasi klienci też mogą zamawiać produkty w naszym sklepie internetowym oraz przy pomocy tego bota. W razie pytań proszę pisać to tego bota lub zadzwonić na infolinię pod numerem +48-217-342-069. W danej chwili bot jest w otwartej wersji beta, wszelkie błędy lub wątpliwości prosimy zgłaszać przy pomocy polecenia /bot_report w tym czacie lub dzwoniąc na infolinię." welcomemsg()&inform(bot_info)
|
||||
user: Czy wasz system wymaga zalogowania się, aby móc skorzystać z usług? request(authorize, info)
|
||||
system: Wygląda na to że już jesteś zalogowanym użytkownikiem, nazwa profilu to 10. Czy chcesz się wylogować z systemu? Incl-inf(authorized)
|
||||
user: Tak, jeśli jest taka możliwość chciałbym złożyć zamówienie anonimowo. request(logout)
|
||||
system: Wylogowano Cię z systemu. Obecnie korzystasz z profilu tymczasowego. W czym mogę pomóc? affirm(logout)
|
||||
user: … silence()
|
||||
system: Niestety, przez brak odpowiedzi, sesja została zamknięta. Zapraszamy ponownie do skorzystania z usług sieci sklepów “Galaktyczny Skład” bye()
|
|
28
data/dialog-05-11-01.tsv
Normal file
28
data/dialog-05-11-01.tsv
Normal file
@ -0,0 +1,28 @@
|
||||
user: Dzień dobry, chciałbym skorzystać z Państwa systemu dialogowego, co on potrafi?
|
||||
system: "Witaj użytkowniku 11 To jest agent dialogowy sklepu ""Galaktyczny Skład"" - jest to sieć sklepów spożywczych w których każdy klient może dokonać zakupów spożywczych, opłacić rachunki za media, odebrać paczkę pocztową oraz skorzystać z usług gsm. Oprócz zakupów w sklepach stacjonarnych, nasi klienci też mogą zamawiać produkty w naszym sklepie internetowym oraz przy pomocy tego bota. W razie pytań proszę pisać to tego bota lub zadzwonić na infolinię pod numerem +48-217-342-069. W danej chwili bot jest w otwartej wersji beta, wszelkie błędy lub wątpliwości prosimy zgłaszać przy pomocy polecenia /bot_report w tym czacie lub dzwoniąc na infolinię. W czym mogę dzisiaj pomóc?"
|
||||
user: Czy mogę zamówić zakupy z dostawą do domu?
|
||||
system: W chwili obecnej można odebrać zamówienie w sklepie stacjonarnym lub skorzystać z dostawy przez kuriera (użytkownicy PREMIUM,). Jako wybrany użytkownik PREMIUM (zamknięte testowanie w wersji beta) możesz zamówić dostawę w dowolnej galaktyce obsługiwanej przez naszą sieć sklepów
|
||||
user: W takim razie chciałbym zamówić z dostawą do domu
|
||||
system: Wybrana opcja dostawy: dostawa kurierska do domu. Czy chcesz kontynuować zakupy?
|
||||
user: Tak. Chciałbym kupić napój gazowany
|
||||
system: "Obecnie oferujemy takie napoje gazowane: - ""Space-Cola"" 1L - 6,99 cebulionów - ""Space-Cola"" Light 1L - 6,99 cebulionów - ""Space-Cola"" Zero 1L - 5,99 cebulionów - ""Dr. Q'tar"" puszka 330ml - 3,80 cebulionów - ""Słoneczny Wiatrak"" 1L - 5,99 cebulionów - ""6-Down"" 1L - 7,99 cebulionów Obecnie jest promocja na zakup ""Space-Cola"" w zestawie Bourbon ""Gallactines"" + ""Space-Cola"" w cenie 69 cebulionów Czy chciałbyś zamówić coś z wyżej wymienionych produktów?"
|
||||
user: Ile kosztują produkty z zestawu osobno?
|
||||
system: "Produkty z zestawu ""Odlot Galaktyczny"": Bourbon ""Gallactines"" - 75 cebulionów Space-Cola 1L - 6,99 cebulionów. Czy chciałbyś zamówić coś z wyżej wymienionych produktów?"
|
||||
user: Tak, poproszę zestaw Space Cola + Bourbon
|
||||
system: "Do koszyka dodano: -Bourbon ""Gallactines"" -Space-Cola. Czy chcesz kontynuować zakupy?"
|
||||
user: Tak, czy macie Państwo w ofercie produkty mrożone
|
||||
system: Produkty mrożone w ofercie: -Lód w kostkach 1,5kg - 10 cebulionów. Czy chciałbyś zamówić coś z wyżej wymienionych produktów?
|
||||
user: nie, dziękuję. Czy macie Państwo w ofercie produkty potrzebne do zrobienia pizzy?
|
||||
system: "Artykuły o nazwie pizza: -pizza Gallarita -pizza Kosmita -pizza Meteoryt -pizza ""Hawajska dla wszystkich"" Dostępne również promocje: - Pizza Hawajska dla wszystkich od firmy ""Galaktyczna Flota"": przy zakupie 2 artykułów ""Pizza Hawajska"" od ""Galaktycznej Floty"" 2 pizze gratis!. Czy chciałbyś zamówić coś z wyżej wymienionych produktów?"
|
||||
user: Nie, chciałbym zamówić produkty potrzebne do zrobienia pizzy samemu
|
||||
system: "Brak produktu ""potrzebne do zrobienia pizzy samemu"", przepraszamy. Możemy zaoferować takie artykuły o nazwie pizza: -pizza Gallarita -pizza Kosmita -pizza Meteoryt -pizza ""Hawajska dla wszystkich"" Dostępne również promocje: - Pizza Hawajska dla wszystkich od firmy ""Galaktyczna Flota"": przy zakupie 2 artykułów ""Pizza Hawajska"" od ""Galaktycznej Floty"" 2 pizze gratis! Czy chciałbyś zamówić coś z wyżej wymienionych produktów?"
|
||||
user: Nie, dziękuję
|
||||
system: Czy chcesz kontynuować zakupy?
|
||||
user: Nie, chciałbym przejść do płatności
|
||||
system: Zamówienie przyjęte do realizacji. Czy chcesz aby przeczytał zawartość koszyka?
|
||||
user: Nie, dziękuję, chciałbym przejść do płatności
|
||||
system: Suma płatności: 69 cebulionów. Naliczone zniżki dla użytkowników PREMIUM: 0 cebulionów. Link do płatności: oszukaneplatnosci.pl/213742069. [21:22] Yevhenii Poliakov Czy mogę w czymś jeszcze pomóc? [21:25] Paweł Lewicki Ile czasu będzie trwała dostawa?
|
||||
user: Ile czasu będzie trwała dostawa?
|
||||
system: Szacunkowy czas dostawy to 30min. Czy mogę w czymś jeszcze pomóc?
|
||||
user: Nie, dziękuję
|
||||
system: "dziekujemy za korzystanie z usług sklepu ""Galaktyczny Skład"""
|
|
14
data/dialog-05-12-01.tsv
Normal file
14
data/dialog-05-12-01.tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user: Dzień dobry, jakie usługi świadczy ten system?
|
||||
system: "Witaj użytkowniku 12. To jest agent dialogowy sklepu ""Galaktyczny Skład"" - jest to sieć sklepów spożywczych w których każdy klient może dokonać zakupów spożywczych, opłacić rachunki za media, odebrać paczkę pocztową oraz skorzystać z usług gsm. Oprócz zakupów w sklepach stacjonarnych, nasi klienci też mogą zamawiać produkty w naszym sklepie internetowym oraz przy pomocy tego bota. W razie pytań proszę pisać to tego bota lub zadzwonić na infolinię pod numerem +48-217-342-069. W danej chwili bot jest w otwartej wersji beta, wszelkie błędy lub wątpliwości prosimy zgłaszać przy pomocy polecenia /bot_report w tym czacie lub dzwoniąc na infolinię. W czym mogę dzisiaj pomóc?"
|
||||
user: Dzien dobry chciałbym zamówić karmę dla papug, ser żółty gouda 1kg mleko migdałowe i masło
|
||||
system: Do koszyka zostały dodane: - karma dla papug - ser żółty gouda 1kg - mleko migdałowe - masło 89% Obecnie mamy oferte promocyjna: Masło 89% w cenie 3,69 cebulionów/szt przy zakupie 10 sztuk - tanio jak 2021! Czy chcesz skorzystać z oferty?
|
||||
user: tak poproszę
|
||||
system: Koszyk został zaktualizowany: masło 89%(usunięte) masło 89% 10szt(dodane). Czy chcesz kontynuować zakupy?
|
||||
user: Tak
|
||||
system: Co chciałbyś zamówić?
|
||||
user: wcześniejsze produkty z koszyka i masło 10szt
|
||||
system: czy chcesz abym przeczytał wszystkie artykuły w koszyku?
|
||||
user: Tak poproszę
|
||||
system: Twój koszyk: - karma dla papug 1szt - ser żółty gouda 1kg - mleko migdałowe 1szt - masło 89% 10szt
|
||||
user: …
|
||||
system: Niestety, przez brak odpowiedzi, sesja została zamknięta. Zapraszamy ponownie do skorzystania z usług sieci sklepów “Galaktyczny Skład”
|
|
18
data/dialog-05-14-01.tsv
Normal file
18
data/dialog-05-14-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
user: Dzień dobry hello()
|
||||
system: "Witaj użytkowniku 14 w systemie zakupów sieci sklepów spożywczych ""Galaktyczny Skład"", co chcesz dzisiaj zamówić?" welcomemsg()&reqmore()
|
||||
user: Chciałbym jakieś dobre wino inform(productcategory=wine)
|
||||
system: "Obecnie mamy oferujemy takie wina: Wina białe: - Kvazarr 9% (wino z planety Gargantelian) 12,99 cebulionów - Yqromi 11% (wino z planety C'kalger) 14,59 cebulionów - Orzeł_13 13% (wino od Gwiezdnej Floty) 25,99 cebulionów Wina czerwone: - ""Kosmiczny baron"" 15% (wino regionalne) 18,99 cebulionów - ""Czarna dziura"" 18% (wino regionalne) 35,99 cebulionów - ""Ciekły Bismor"" 19% (wino z planety Hoxxes IV) 69,99 cebulionów" offer(productcategory=wine)&inform(list=wines/prices)&request()
|
||||
user: Nie ma nic droższego? request()&inform(product_tag=alcohol, pricerange=high)
|
||||
system: "Mogę zaproponować artykuł: Bourbon ""Gallactines"" w cenie 75 cebulionów Obecnie jest promocja na zakup ""Space-Cola"" w zestawie Bourbon ""Gallactines"" + ""Space-Cola"" w cenie 69 cebulionów. Czy chcesz skorzystać z promocji?" offer(deal)&inform(productname = bourbon, productname=coke, dealprice)
|
||||
user: Tak, bardzo chciałbym skorzystać z tej promocji. Do tego chciałbym jeszcze worek lodu. affirm(deal)&inform(productname=ice, amount=1,5)
|
||||
system: "Do koszyka dodano: -Bourbon ""Gallactines"" -Space-Cola 1L -Lód w kostkach 1,5kg Czy chcesz kontynuować zakupy?" affirm()&inform(productname=bourbon)&inform(productname=coke)&inform(productname=ice)&reqmore(0
|
||||
user: Tak, poproszę jeszcze sok pomarańczowy inform(productname=orange juice)
|
||||
system: Do koszyka dodano: -Sok pomarańczowy 1L. Czy chcesz dodać kolejny artykuł?
|
||||
user: Nie, to wszystko na teraz. Jak mogę zapłacić za zamówienie?
|
||||
system: Zamówienie można opłacić przy odbiorze lub online. Chcesz przejść do płatności?
|
||||
user: Chciałbym zapłacić przy odbiorze. Jaka wyszła cena za wszystkie produkty?
|
||||
system: Wybrana opcja płatności: płatność przy odbiorze. Zamówienie zostało przyjęte do realizacji. Proszę podać kod sklepu (xxx-xx) w którym chcesz odebrać zamówienie. Suma płatności: 95 cebulionów
|
||||
user: Kod sklepu: 420-69. Kiedy będę mógł odebrać zamówienie?
|
||||
system: Zamówienie można odebrać w ciągu 24h od momentu złożenia (20:07). Czy mogę w czymś jeszcze pomóc?
|
||||
user: Nie, to wszystko. Dziękuję
|
||||
system: "dziekujemy za korzystanie z usług sklepu ""Galaktyczny Skład"""
|
|
24
data/dialog-05-14-02.tsv
Normal file
24
data/dialog-05-14-02.tsv
Normal file
@ -0,0 +1,24 @@
|
||||
user: Dzień dobry, chciałbym zamówić składniki na kotlety mielone
|
||||
system: "Witaj użytkowniku 14 w systemie zakupów sieci sklepów spożywczych ""Galaktyczny Skład"". Czy chcesz zamówić mięso mielone na kotlety?"
|
||||
user: Tak, poproszę mięso mielone, bułkę tartą, kajzerkę i mleko.
|
||||
system: Proszę wybrać typ mięsa mielonego: -mieso wołowe -mieso z kurczaka -mieso z indyka -mięso wieprzowe. do koszyka zostały dodane: -bułka tarta -kajzerka -mleko
|
||||
user: Poproszę mięso wieprzowe, jaka jest jego cena
|
||||
system: "Cena artykułu ""mięso wołowe mielone"" 500g: 15 cebulionów Do koszyka dodano: -mięso wołowe mielone"
|
||||
user: Jednak nie potrzebuję mleka, proszę usuń je z koszyka
|
||||
system: Z koszyka usunięto: -mleko Czy chcesz abym przeczytał aktualną zawartość koszyka?
|
||||
user: Tak, poproszę
|
||||
system: Koszyk: -bułka tarta -kajzerka -mięso wołowe mielone. czy chcesz kontynuować zakupy?
|
||||
user: Nie, to wszystko, jaka jest cena tego koszyka?
|
||||
system: Suma płatności za wszystkie artykuły w koszyku: 20 cebulionów. Czy chcesz prejść do płatności?
|
||||
user: Przepraszam, ale w koszyku jest błąd, chciałem mięso wieprzowe, nie wołowe
|
||||
system: Koszyk został zaktualizowany: Usunięto z koszyka: -mięso wołowe mielone Dodano do koszyka: -mięso wieprzowe mielone czy chcesz abym przeczytał zawartość koszyka?
|
||||
user: Tak, poproszę. Podaj mi również cenę koszyka.
|
||||
system: Koszyk: -bułka tarta 4 cebuliony -kajzerka 1 cebulion -mięso wieprzowe mielone 14 cebulionów Suma płatności: 19 cebulionów. Czy chcesz kontynuować zakupy?
|
||||
user: Tak, chciałbym zapłacić za koszyk online
|
||||
system: Zamówienie zostało przyjęto do realizacji. Czy posiadasz kartę klienta?
|
||||
user: Tak, posiadam. Numer mojej karty to 694202137
|
||||
system: dodatkowe zniżki zostały naliczone. Suma zniżek: 0 cebulionów. Suma płatności ze zniżkami - 19 cebulionów. Wygenerowany link do płatności: oszukaneplatnosci.pl/213769420. Czy mogę w czymś jeszcze pomóc?
|
||||
user: Tak, kiedy będę mógł odebrać zakupy?
|
||||
system: Odebrać zakupy można w trakcie 24h od momentu złożenia zamówienia (20:35). Obecny punkt odbioru to : 420-69
|
||||
user: Dziękuję, wszystko wiem. Do zobaczenia!
|
||||
system: "dziekujemy za korzystanie z usług sklepu ""Galaktyczny Skład"""
|
|
14
data/dialog-05-18-01.tsv
Normal file
14
data/dialog-05-18-01.tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user: jakim systemem jesteś
|
||||
system: "Witaj użytkowniku 18. To jest agent dialogowy sklepu ""Galaktyczny Skład"" - jest to sieć sklepów spożywczych w których każdy klient może dokonać zakupów spożywczych, opłacić rachunki za media, odebrać paczkę pocztową oraz skorzystać z usług gsm. Oprócz zakupów w sklepach stacjonarnych, nasi klienci też mogą zamawiać produkty w naszym sklepie internetowym oraz przy pomocy tego bota. W razie pytań proszę pisać to tego bota lub zadzwonić na infolinię pod numerem +48-217-342-069. W danej chwili bot jest w otwartej wersji beta, wszelkie błędy lub wątpliwości prosimy zgłaszać przy pomocy polecenia /bot_report w tym czacie lub dzwoniąc na infolinię"
|
||||
user: dzień dobry, czy jest jakaś paczka dla mnie
|
||||
system: W obecnej chwili nie ma oczekujących paczek. Liczba zamówionych paczek: 0. Czy mogę w czymś jeszcze pomóc?
|
||||
user: Czekam na paczkę od 2 tygodni i status wskazuje, że od tego czasu czeka na odbiór w tym sklepie
|
||||
system: Liczba odnotowanych paczek w systemie na Twoim koncie: 0. W razie problemów lub wątpliwości proszę dzwonić na infolinię pod numerem +48-217-342-069 lub zostawić zgłoszenie, używając polecenia /customer_support, a do Ciebie się odezwie pracownik naszej firmy. Czy mogę w czymś jeszcze pomóc?
|
||||
user: czy mogę nadać paczkę
|
||||
system: Mamy możliwość nadawania paczek w sklepach stacjonarnych lub przez kuriera dla klientów PREMIUM (funkcjonalność PREMIUM nie jest jeszcze zaimplementowana w wersji beta, przepraszamy za niedogodności, pracujemy nad tym aby wprowadzić nowe funkcjonalności jak najszybciej). Czy mogę jeszcze w czymś pomóc?
|
||||
user: chciałbym skorzystać z nadawania paczki w sklepie stacjonarnym
|
||||
system: "Możesz nadać paczkę w dowolnym sklepie stacjonarnym sieci sklepów ""Galaktyczny Skład"". Wystarczy, że się udasz do najbliższego sklepu sieci ""Galaktyczny Skład"" oraz nadasz paczkę. Dodatkowo mamy opcję pakowania oraz rejestrowanie paczki na miejscu. Czy mogę w czymś jeszcze pomóc?"
|
||||
user: Jaki jest maksymalny rozmiar oraz waga nadawanych paczek
|
||||
system: Maksymalny rozmiar paczki to 2m x 2m x 2m. Maksymalna waga: 1 tona (Dla użytkowników STANDARD
|
||||
user: Ile kosztuje nadanie takiej paczki
|
||||
system: SYSTEM ERROR
|
|
10
data/dialog-06-01-01.tsv
Normal file
10
data/dialog-06-01-01.tsv
Normal file
@ -0,0 +1,10 @@
|
||||
system: Dzień dobry, jestem systemem obsługującym zakupy online, co chciałbyś zrobić? welcomemsg()
|
||||
user: szukam składników do messer wat inform(productname=messer wat)
|
||||
system: "W naszej ofercie nie posiadamy przedmiotu o nazwie ""messer wat"", czy możesz rozwinąć myśl?" canthelp(productname=messer wat)&request(productname)
|
||||
user: szukam ciekawych mieszanek przypraw. Jakie macie w swojej ofercie? inform(productcategory=przyprawa)
|
||||
system: Posiadamy przyprawy KAMIS oraz PRYMAT, aktualnie w promocji mamy kurkumę za 0.15 zł!!! inform(productcategory)
|
||||
user: interesuja mnie konkretne mieszanki typu garam masala czy berbere. Jakie podobne oferujecie? inform(productname=garam masala)&inform(productname=barbere)
|
||||
system: "Nie posiadamy w ofercie produktów o nazwie ""garam"" oraz ""barbere"". Czy chciałbyś wybrać coś innego?" canthelp(productname=garam)&canthelp(productname=barbere)&request(productcategory)
|
||||
user: nie negate()
|
||||
system: Przykro nam, że nie udało się dobrać pożądanych składników. Życzymy miłego dnia! bye()
|
||||
user: do widzenia bye()
|
|
15
data/dialog-06-03-01.tsv
Normal file
15
data/dialog-06-03-01.tsv
Normal file
@ -0,0 +1,15 @@
|
||||
system: Dzień dobry, jestem systemem obsługującym zakupy online, co chciałbyś zrobić? welcomemsg()
|
||||
user: Chciałbym kupić jakiś prezent na urodziny. Myślałem o jakiś perfumach. inform(productcategory=perfumy)
|
||||
system: "Dostępne perfumy w naszym sklepie to ""Marcini"", ""Vitolio"", ""Jaushiu"" oraz ""Polini""" inform(count=4)
|
||||
user: Czy to nazwy marek, czy produktów? reqmore(brandname)
|
||||
system: Są to nazwy marek produkujących perfumy inform(brandname)
|
||||
user: Czy wśród tych producentów znajdują się perfumy z dominującą nutą goździków? request(specialcondition)
|
||||
system: "Perfumy marki ""Marcini"" posiadają takową właściwość" inform(specialcondition=True)
|
||||
user: Czy mógłbyś podać ceny tych perfum? request(price)
|
||||
system: "Cena perfum ""Marcini"" to 33,99 zł" inform(price=33,99)
|
||||
user: Super! Chciałbym je zamówić. Czy potrzeba podać adres zamówienia. affirm()&request(deliveryoption)
|
||||
system: "Przy opcji ""dostawa do domu"" adres jest wymagany. Czy chcesz wybrać tę opcję?" confirm-domain(deliveryoption=wysyłka)
|
||||
user: Tak, poproszę affirm()
|
||||
system: Proszę podać Imię i nazwisko oraz adres dostawy. request(name)&request(adress)
|
||||
user: Bilbo Baggins Shire ul. Nizołkowska 13a, 14-8897 inform(adress=Bilbo Baggins Shire ul. Nizołkowska 13a, 14-8897)
|
||||
system: "Zamówienie złożone pomyślnie. Dziękujemy za skorzystanie z usług sklepu ""Motylek""!" bye()
|
|
23
data/dialog-06-05-01.tsv
Normal file
23
data/dialog-06-05-01.tsv
Normal file
@ -0,0 +1,23 @@
|
||||
system: Dzień dobry, jestem systemem obsługującym zakupy online, co chciałbyś zrobić? welcomemsg()
|
||||
user: chciałbym zamówić mleko, jajka, mąkę tortową, mleko zagęszczone słodzone, parówki oraz cygaro inform(productname=mleko)&inform(productname=jajka)&inform(productname=mąka tortowa)&inform(productname=mleko zagęszczone)& inform(productname=parówki)& inform(productname=cygaro)
|
||||
system: Dodano do koszyka: mleko łaciate 1l, opakowanie jajek, 1kg mąki tortowej kremówka, 1 pojemnik mleka zagęszczonego słodzonego, 1 opakowanie parówek Marcinek oraz 1 sztukę cygara, czy coś jeszcze chciałbyś zamówić? inform(productname=mleko)&inform(productname=jajka)&inform(productname=mąka tortowa)&inform(productname=mleko zagęszczone)& inform(productname=parówki)& inform(productname=cygaro)
|
||||
user: chcę jakiś napój gazowany, jakie napoje gazowanę są dostępne? inform(productcategory=napój gazowany)&reqmore()
|
||||
system: Aktualnie w ofercie mamy: coca cola, sprite, 7up, fanta, mirinda, orenżada helena, polo cola, mountain dew inform(count=9)
|
||||
user: w jakich pojemnościach są dostępne napoje polo cola? inform(productname=polo cola)& reqmore()
|
||||
system: Napój polo cola jest dostępny w pojemnościach, 250ml, 333ml, 500ml, 850ml, 1l, 2l, 10l inform(count=7)
|
||||
user: poproszę 6 sztuk polo cola 333ml inform(productname=polo cola, amount=6)
|
||||
system: Dodano do koszyka: 6 sztuk polo cola 333ml, czy chciałbyś kupić coś jeszcze? inform(productname=polo cola, amount=6)
|
||||
user: "Czy jest obecnie dostępne wino ""Ciekły Bismor""?" request(productname=wino, brandname=Ciekły Bismor)
|
||||
system: "W naszej ofercie nie mogę znaleźć wina o nazwie ""Ciekły Bismor"". Czy chciałbyś wybrać jakieś inne wino? Aktualnie na promocji znajduje się wino ""Uśmieszek""" canthelp(brandname=Ciekły Bimor)&request(brandname)&offer(brandname=Uśmieszek)
|
||||
user: "Proszę podać informację na temat wina ""Uśmieszek""" reqmore(brandname=Uśmieszek)
|
||||
system: Jest to wino czerwone z roku 1976, posiada 32% alkoholu i jest w niesamowicie atrakcyjnej cenie 79.99 zł !!! inform(brandname=Uśmieszek, specialcondition)
|
||||
user: "prosze dodać do koszyka wino ""Uśmieszek""" inform(brandname=Uśmieszek)
|
||||
system: "Dodano do koszyka: wino ""Uśmieszek"", czy coś jeszcze?" inform(brandname=Uśmieszek, specialcondition)
|
||||
user: proszę podać zawartość mojego koszyka oraz sumę należności request(cart)
|
||||
system: "Zawartość koszyka to: mleko łaciate 1l, opakowanie jajek, 1kg mąki tortowej kremówka, 1 pojemnik mleka zagęszczonego słodzonego, 1 opakowanie parówek Marcinek, 1 sztuka cygara, 6 sztuk polo cola 333ml oraz wino ""Uśmieszek"". Suma produktów w koszyku to 156,96 zł" inform(cart)
|
||||
user: chciałbym przejść do płatności request(payment)
|
||||
system: Czy chciałbyś zapłacić przy odbiorze czy online? request(paymentmethod)
|
||||
user: zapłacę online kartą inform(paymentmethod=online)
|
||||
system: dobrze, płatność można dokonać pod tym linkiem: www.oszukanepłatności.pl/2137694201337 inform(link)
|
||||
user: dziekuję, to będzie wszystko z mojej strony, do widzenia bye()
|
||||
system: "Zamówienie zostało złożone pomyślnie, do widzenia. Dziękujemy za skorzystanie z usług sklepu ""Motylek""" bye()
|
|
18
data/dialog-06-07-01.tsv
Normal file
18
data/dialog-06-07-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
system: Dzień dobry, jestem systemem obsługującym zakupy online, co chciałbyś zrobić? welcomemsg()
|
||||
user: Chciałbym kupić chipsy firmy LAYS o smaku gulaszowym oraz do tego pepsi lime inform(productname=chipsy, brandname=lays, taste=gulasz)& inform(productname=pepsi, taste=lime)
|
||||
system: Tak się składa, że aktualnie dostępna jest promocja na chipsy LAYS 2 w cenie 1. Czy chciałbyś dobrać drugie chipsy aby aktywować promocję? Impl-conf(productname=chipsy, brandname=lays, taste=gulasz)offer(promotion)
|
||||
user: Bardzo chętnie affirm()
|
||||
system: Jaki smak Cię interesuje? reqmore(taste)
|
||||
user: Zielona cebulka inform(taste=zielona cebulka)
|
||||
system: Dodano chipsy LAYS zielona cebulka do koszyka, czy to wszystko? inform(productname=chipsy, brandname=lays, taste=zielona cebulka)
|
||||
user: To wszystko, proszę o przejście do płatności request(payment)
|
||||
system: Dobrze, przechodzę do płatności. Czy posiadasz kartę rabatową lub kartę lojalnościową? affirm()&request(card)
|
||||
user: Akurat nie posiadam, czy mógłbym taką wyrobić? inform(card=False)
|
||||
system: Aby wyrobić kartę lojalnościową należy podać numer telefonu request(phonenumber)
|
||||
user: 666333999 inform(phonenumber)
|
||||
system: Proszę podać kod weryfikacyjny wysłany na podany numer telefonu request(code)
|
||||
user: LETMEBUY123 inform(code)
|
||||
system: Karta lojalnościowa założona pomyślnie. Kwota do zapłaty za zakupy wynosi 13.37 zł affirm()&inform(money)
|
||||
user: *wysyłam pieniądze* null()
|
||||
system: "Zamówienie złożone pomyślnie. Dziękuję za wybranie sklepu ""Motylek"". Do zobaczenia" bye()
|
||||
user: Dziękuje do widzenia. bye()
|
|
25
data/dialog-06-09-01.tsv
Normal file
25
data/dialog-06-09-01.tsv
Normal file
@ -0,0 +1,25 @@
|
||||
system: Dzień dobry, jestem systemem obsługującym zakupy online, co chciałbyś zrobić? welcomemsg()
|
||||
user: a co można u was kupić? request(shop)
|
||||
system: Nasz sklep oferuje zakupy spożywcze najwyższej jakości inform(shop)
|
||||
user: jakie dokładnie produkty oferujecie? null()
|
||||
system: "Aktualnie posiadamy promocję na chipsy LAYS 2 w cenie 1 oraz promocję 7 dni z ""7 days""." offer(promotion)
|
||||
user: nie jestem zainteresowana chipsami negate()
|
||||
system: A czym drogi użytkowniku jesteś zainteresowany? Cużeś chciałbyś kupić? request(productname)
|
||||
user: w sumie chciałabym kupić owoce, macie jakieś w promocji? inform(productcategory=owoce)&request(promotion)
|
||||
system: Aktualnie na promocji znajdują się pomarańcze. 6Zł za kilogram!!! offer(promotion, productcategory=owoce)
|
||||
user: poprosiłabym w takim razie 3kg, a jakie jeszcze owoce macie w ofercie? inform(productname=pomarańcza, amount=3kg)&request(productcategory=owoce)
|
||||
system: Dodano 3 kg pomarańczy. W naszym sklepie są również dostępne jabłka, gruszki, banany, kiwi, kokosy, mandarynki i wiele więcej. Pełna oferta sklepu jest dostępna pod adresem www.motylek.pl/oferta inform(productcategory=owoce)
|
||||
user: o super, to poprosiłabym 5 bananów ładnych, 6 kiwi i może jakiś jogurt, jakie macie jogurty waniliowe w ofercie? inform(productname=banan, amount=5)&inform(productname=kiwi, amount=6)&request(productname=jogurt)
|
||||
system: "Dodano 5 x banan ""Pięknisiek"" oraz 6 x kiwi do koszyka. Posiadamy jogurty waniliowe ""Bakoma"" oraz ""Taratoma""" inform(productname=banan, amount=5)&inform(productname=kiwi, amount=6)&inform(productname=jogurt, count=2)
|
||||
user: poprosiłabym ten drugi inform(brandname=Taratoma)
|
||||
system: "Dodano jogurt waniliowy ""Taratoma"" do koszyka. Czy chciałbyś kupić coś jeszcze?" inform(productname=jogurt, brandname=Taratoma)
|
||||
user: nie dziękuję to byłoby wszystko request(card)&request(payment)
|
||||
system: Czy posiadasz kartę lojalnościową? request(card)
|
||||
user: nie posiadam inform(card=False)
|
||||
system: Czy chciałbyś założyć kartę lojalnościową? offer(cardcreation)
|
||||
user: nie dziękuję negate()
|
||||
system: Suma do zapłaty wynosi 27,13 zł inform(money=27,13)
|
||||
user: oki affirm()
|
||||
system: Czy chciałbyś opłacić zamówienie online czy też przy odbiorze? request(paymentmethod)
|
||||
user: online, przelewem inform(paymentmethod=online)
|
||||
system: "Link do płatności: www.przelewikniescam.pl/zmowienie14123315435/przelewik Po zaksięgowaniu płatności zamówienie zostanie złożone. Dziękujemy za skorzystanie ze sklepu ""Motylek""" bye()
|
|
19
data/dialog-06-13-01.tsv
Normal file
19
data/dialog-06-13-01.tsv
Normal file
@ -0,0 +1,19 @@
|
||||
system: Dzień dobry, jestem systemem obsługującym zakupy online, co chciałbyś zrobić? welcomemsg()
|
||||
user: jakie sery żółte macie w ofercie? request(productname=żółty ser)
|
||||
system: "W naszej ofercie dostępne są następujące sery: ""Gouda"", ""Cheddar"", ""Pleśniowy uśmieszek""" inform(count=3)
|
||||
user: dodaj do listy 0.5kg pleśniowego uśmieszka. chciałbym jeszcze czekoladę gorzką inform(brandname=pleśniowy uśmieszek, amount=0.5kg)&inform(productname=czekolada)
|
||||
system: "Do koszyka dodano 0.5kg sera ""pleśniowy uśmieszek"" oraz jedną sztukę czekolady gorzkiej ""wedel"". Co jeszcze chciałbyś dodać?" inform(brandname=pleśniowy uśmieszek, amount=0.5kg)&inform(productname=czekolada, brandname=Wedel)
|
||||
user: usuń czekoladę wedel z listy. jakie są dostepne gorzkie czekolady? deny(brandname=Wedel)&request(brandname)
|
||||
system: "Usuwam czekoladę ""Wedel"" z listy. Aktualnie dostępnymi czekoladami gorzkimi są ""Wedel"", ""Milka"" oraz ""Gorzeczka""" affirm()&inform(count=3)
|
||||
user: dodaj do listy zakupów gorzką milkę i gorzeczkę inform(brandname=Milka)&inform(brandname=Gorzeczka)
|
||||
system: "Dodaję do koszyka czekoladę ""Milka"" oraz czekoladę ""Gorzeczka"", czy to wszystko?" inform(brandname=Milka)&inform(brandname=Gorzeczka)
|
||||
user: pokaż mi aktualną listę zakupów request(cart)
|
||||
system: "Aktualnie w koszyku znajdują się: 0.5kg sera ""pleśniowy uśmieszek"", czekolada ""Milka"" oraz czekolada ""Gorzeczka""." inform(cart)
|
||||
user: to wszystko request(payment)
|
||||
system: Dobrze, suma do zapłaty wynosi 24,42 zł. Czy posiadasz kartę lojalnościową? inform(money)&request(card)
|
||||
user: tak inform(card=True)
|
||||
system: Proszę podać numer karty lojalnościowej request(cardnumber)
|
||||
user: 32432942 inform(cardnumber=32432942)
|
||||
system: Karta zaakceptowana. Finalna kwota do zapłaty to 22,65 zł affirm()&inform(money)
|
||||
user: chcę zapłacić przy odbiorze inform(paymentmethod=sklep)
|
||||
system: "Dobrze, zamówienie zostało złożone, numer zamówienia: 452625435246. Na numer telefonu przyjdzie powiadomienie o terminie odbioru zamówienia. Dziękujemy za skorzystanie ze sklepu ""Motylek""" bye()
|
|
17
data/dialog-06-15-01.tsv
Normal file
17
data/dialog-06-15-01.tsv
Normal file
@ -0,0 +1,17 @@
|
||||
system: Dzień dobry, jestem systemem obsługującym zakupy online, co chciałbyś zrobić? welcomemsg()
|
||||
user: jakie produkty są u was dostępne? request(shop)
|
||||
system: Nasz sklep oferuje zakupy spożywcze najwyższej jakości inform(shop)
|
||||
user: okej, to ja bym chciał zamówić mleko, chleb, żółty ser i sok jabłkowy inform(productname=mleko)&inform(productname=chleb)&inform(productname=żółty ser)&inform(productname=sok jabłkowy)
|
||||
system: "Do koszyka dodano mleko ""łaciate"", chleb ""Bochenek"", Ser żółty ""Gouda"" oraz sok jabłkowy ""Maciuś"". Czy to wszystko?" inform(productname=mleko)&inform(productname=chleb)&inform(productname=żółty ser)&inform(productname=sok jabłkowy)
|
||||
user: zamień sok jabłkowy na firmy Tymbark deny(brandname=Maciuś)&inform(brandname=Tymbark)
|
||||
system: "Zamieniam sok jabłkowy ""Maciuś"" na ""Tymbark"", czy chciałbyś coś jeszcze?" inform(brandname=Tymbark)
|
||||
user: nie, ile będą kosztowały te zakupy? request(money)
|
||||
system: Suma produktów w koszyku wynosi 33,96 zł inform(money)
|
||||
user: trochę dużo, odejmij mi ser żółty z zamówienia inform(productname=ser żółty, flag=delete)
|
||||
system: "Usuwam ser żółty ""Gouda"" z koszyka. Czy chciałbyś kontynuować zakupy czy przejść do płatności?" affirm()
|
||||
user: chciałbym przejść do płatności request(payment)
|
||||
system: Czy posiadasz kartę lojalnościową? request(card)
|
||||
user: nie inform(card=False)
|
||||
system: Finalna kwota do zapłaty to 33,96 zł inform(money)
|
||||
user: super, to będzie wszystko affirm()
|
||||
system: "Dziękujemy za skorzystanie z usług sklepu ""Motylek""" bye()
|
|
18
data/dialog-06-17-01.tsv
Normal file
18
data/dialog-06-17-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
system: Dzień dobry, jestem systemem obsługującym zakupy online, co chciałbyś zrobić? welcomemsg()
|
||||
user: Dla jakiego rodzaju sklepów działa system? request(shop)
|
||||
system: W naszej ofercie znajdują się produkty spożywcze inform(shop)
|
||||
user: Chciałbym zamówić zakupy z odbiorem na jutro o godzinie 16 W skład listy zakupowej będzie: Chleb pełnoziarnisty, 2szt Mleko, 5l; Ser żółty, 1kg; Jajka, 2 opakowania po 12szt; Masło, 3 kostki; Jogurt naturalny, 10 szt; Płatki owsiane, 2szt; Mięso mielone, 1kg; Filet z kurczaka, 1kg; Kiełbasa, 1szt inform(list)
|
||||
system: "Dodano 2 x Chleb pełnoziarnisty, 5l Mleko, 1kg Ser żółty ""gouda"", 2 opakowania jajek ""kurniczek"", 3 kostki masła ""delka"", 10 x jogurt naturalny, 2 x płatki owsiane, 1kg mięso mielone z łopatki, 1kg filet z kurczaka oraz 1 x kiełbasa ""śląska"" do koszyka. Czy to wszystko?" inform(list)
|
||||
user: poproszę o zmianę sera żółtego gouda na inną markę deny(brandname=gouda)&reqalts()
|
||||
system: "Zmieniono ser ""Gouda"" na ser ""Cheddar"", czy coś jeszcze?" affirm()&inform(brandname=cheddar)
|
||||
user: Nie to wszystko request(payment)
|
||||
system: Czy posiadasz kartę lojalnościową? request(card)
|
||||
user: Nie, chciałbym założyć inform(card=False)&inform(cardcreate=True)
|
||||
system: W celu założenia karty lojalnościowej należy podać numer telefonu request(phone)
|
||||
user: 48123123123 inform(phone=48123123123)
|
||||
system: Proszę podać kod weryfikacyjny wysłany na podany numer telefonu request(code)
|
||||
user: 2137 inform(code-2137)
|
||||
system: Karta lojalnościowa założona pomyślnie. Suma do zapłaty wynosi 134,43 zł czy chciałbyś opłacić zamówienie online czy przy odbiorze? affirm()&inform(moeny)&request(paymentmethod)
|
||||
user: Przy odbiorze inform(paymentmethod=sklep)
|
||||
system: "Dobrze, zamówienie złożone pomyślnie. Na numer telefonu zostanie wysłany sms z informacją gdy zakupy będą gotowe do odbioru. Dziękujemy za skorzystanie ze sklepu ""Motylek""!" affirm()&bye()
|
||||
user: Dziękuje, do widzenia bye()
|
|
85
data/dialog-07-02-02.tsv
Normal file
85
data/dialog-07-02-02.tsv
Normal file
@ -0,0 +1,85 @@
|
||||
user dzień dobry, czy moge tu kupić kota? welcomemsg()&inform(kot)
|
||||
system "Dzień dobry, witamy w systemie obsługi sklepu spożywczego ""Surykatka"". Kot jest niestety niedostępny, ale proponuję karmę dla kota." welcomemsg()&canthelp(productname=kot)&offer(productname=karma)
|
||||
user Karmę akurat mam. A jakie jeszcze produkty macie w ofercie? deny(karma)&inform(promotion)
|
||||
system "Produkty dostępne dzisiaj w promocji:
|
||||
|
||||
|
||||
|
||||
Goya Oliwki Gordales Z Pestką 358 Ml 7,49zł
|
||||
Violife Plastry Smak Wędzony 100 G 8,29 zł
|
||||
Hortex Sok 100% Jabłko Butelka Apet 300 Ml - 2,79 zł
|
||||
Szynka Dojrzewająca Plastry 100G Łuków - 11,29 zł
|
||||
Pomidory suszone w oleju 4,1kg Helcom - Helcom 114,49 zł
|
||||
Bakoma Ave Vege Banan Z Nutą Wanilii 150 G - 4,89 zł
|
||||
Malina Z Sokiem Cytrynowym 225 Ml 4Tea - 8,79 zł
|
||||
Chorizo Sarta Pikantne 200G - 14.99 zł
|
||||
Maluta Ser Moja Gouda 45 % Tł Bez Barwników I Konserwantów 600g 25,43 zł
|
||||
Lay'S Oven Baked Chantarelles In A Cream Sauce 125 G 8,39 zł" inform(promotion)
|
||||
user a czy macie w ofercie piersi z kurczaka, paprykę, cebulę, kiełki fasoli mung oraz sos pomidorowy? "inform(productname=pierś z kurczaka)&
|
||||
inform(productname=papryka)
|
||||
&inform(productname=cebula)&inform(productname=kiełki fasoli mung)&inform(productname=sos pomidorowy)"
|
||||
system "Niestety piersi z kurczaka oraz kiełki fasoli mung są niedostępne.
|
||||
|
||||
Dostępne papryki: anuum (roczne), baccatum (jagodowe), chinense (pochodzące z Chin), frutescens (owocowe) i pubescens (omszone).
|
||||
|
||||
Dostępne cebule: Biała cebula, Czerwona cebula, Cebula dymka.
|
||||
|
||||
Sos pomidorowy: Łowicz Premium Basillico." "deny(productname=pierś z kurczaka)
|
||||
&deny(productname=kiełki fasoli mung)&inform(productname=papryka, count=5)
|
||||
&inform(productname=cebula, count=3)&inform(productname=sos pomidorowy)"
|
||||
user poproszę cebulę białą oraz paprykę chinense oraz ten sos pomidorowy. Czy jakieś inne mięso jest dostępne w sklepie? "inform(productname=papryka, brandname=chinense)
|
||||
&inform(productname=cebula)&inform(productname=sos pomidorowy, brandname=Łowicz Premium Basillico)&reqalts(productname=mięso)"
|
||||
system Dodano do koszyka 1x cebula biała, 1x papryka chinense, 1x sos pomidorowy: Łowicz Premium Basillico. "inform(productname=papryka, brandname=chinense)
|
||||
&inform(productname=cebula)&inform(productname=sos pomidorowy, brandname=Łowicz Premium Basillico)"
|
||||
system "Dostępne produkty mięsne:
|
||||
|
||||
Wieprzownia
|
||||
|
||||
Drób
|
||||
|
||||
Dziczyzna" inform(productname=mięso, count=3)
|
||||
user w jakiej postaci można kupić drób? inform(productname=drób)
|
||||
system Aktualnie dostępne są: Płat trybowany z kurczaka nadbiebrzańskiego oraz Podudzie z kurczaka nadbiebrzańskiego. inform(productname=drób, count=2)
|
||||
user jakie opakowania podudzia są dostępne? reqmore(productname=drób)
|
||||
system Zafoliowana tacka. inform(wrapping)
|
||||
user mam na myśli wagę porcji negate(wrapping)&request(amount)
|
||||
system Podudzie z kurczaka nadbiebrzańskiego, 0.621 kg. inform(amount)
|
||||
user świetnie, poprosze o dodanie do zamówienia affirm()
|
||||
system Dodano do koszyka Podudzie z kurczaka nadbiebrzańskiego, 0.621 kg. inform(productname=drób, brandname=Podudzie z kurczaka nadbiebrzańskiego, amount=0.621kg)
|
||||
system Chcesz zamówić coś jeszcze? request(all)
|
||||
user to wszystko, jaka jest cena produktów w koszyku? request(price)
|
||||
system 37.29 zł inform(price)
|
||||
system "Proszę wybrać formę dostawy.
|
||||
|
||||
Formy dostawy:
|
||||
|
||||
dostawa do domu
|
||||
dostawa do paczkomatu
|
||||
odbiór osobisty" request(delivery)
|
||||
user jaka jest lokalizacja sklepu? request(location)
|
||||
system Kościelna 30, Poznań. inform(location=Kościelna 30, Poznań)
|
||||
user w takim razie mogę odebrać osobiście inform(delivery=odbiór osobisty)
|
||||
user w jakich godzinach jest to możliwe? request(opening hours)
|
||||
system 7:00-21:00 inform(opening hours)
|
||||
system "Proszę o wybranie formy płatności.
|
||||
|
||||
Dostępne formy płatności:
|
||||
|
||||
-Blik,
|
||||
-przelew tradycyjny
|
||||
|
||||
-gotówka przy odbiorze
|
||||
|
||||
-PayPal
|
||||
|
||||
-PayU
|
||||
|
||||
-dotpay
|
||||
|
||||
-Apple Pay/Google Pay" request(paymentmethod)
|
||||
user gotówka inform(paymentmethod=gotówka)
|
||||
system Zamówienie przyjęte, odbiór osobisty, płatność gotówką. O dostępie do odbioru zostanie Pan powiadomiony przez SMS. inform(summary)
|
||||
user a mój numer zdobędziecie w jakiś nielegalny sposób? null
|
||||
system Przepraszam nastąpiła pomyłka. Powiadomienie otrzyma Pan na aktualnym chacie. inform(mistake)
|
||||
user ah rozumiem, w porządku affirm()
|
||||
system "Dziękujemy za skorzystanie z usług sklepu spożywczego ""Surykatka""." bye()
|
|
68
data/dialog-07-04-01.tsv
Normal file
68
data/dialog-07-04-01.tsv
Normal file
@ -0,0 +1,68 @@
|
||||
user Dzień dobry, w czym możesz mi pomóc? welcomemsg()
|
||||
system "Dzień dobry, witamy w systemie obsługi sklepu spożywczego ""Surykatka"". W czym mogę pomóc?" welcomemsg()
|
||||
user Chciałbym zakupić kilka warzyw, jakie są dostępne w ofercie? inform(produtcategory=warzywa)
|
||||
system "Warzywa dostępne dzisiaj w promocji:
|
||||
|
||||
|
||||
|
||||
Papryka
|
||||
17,99 zł
|
||||
|
||||
|
||||
|
||||
Rzodkiewki
|
||||
1,99 zł
|
||||
|
||||
|
||||
|
||||
Ogórek
|
||||
2,99 zł
|
||||
|
||||
|
||||
|
||||
Pomidory
|
||||
9,99 zł
|
||||
|
||||
|
||||
|
||||
Cukinia
|
||||
9,99 zł
|
||||
|
||||
|
||||
|
||||
Marchew
|
||||
3,99 zł" inform(produtcategory=warzywa, count=6)
|
||||
user Proszę dodać do zamówienia 2 pomidory oraz 2 ogórki inform(productname=pomidor, count=2)&inform(productname=ogórek,count=2)
|
||||
system Dodano do koszyka 2x pomidor, 2x ogórek. inform(productname=pomidor, count=2)&inform(productname=ogórek,count=2)
|
||||
system Czy to wszystko? request(all)
|
||||
user Tak, czy można płacić kartą? affirm()&inform(paymentmethod=karta)
|
||||
system "Dostępne formy płatności:
|
||||
|
||||
-Blik,
|
||||
-przelew tradycyjny
|
||||
|
||||
-gotówka przy odbiorze
|
||||
|
||||
-PayPal
|
||||
|
||||
-PayU
|
||||
|
||||
-dotpay
|
||||
|
||||
-Apple Pay/Google Pay" request(paymentmethod)
|
||||
user W takim razie Blikiem inform(paymentmethod=Blik)
|
||||
system "Proszę wybrać sposób dostawy.
|
||||
|
||||
Formy dostawy:
|
||||
|
||||
dostawa do domu
|
||||
dostawa do paczkomatu
|
||||
odbiór osobisty" request(delivery)
|
||||
user Odbiór osobisty inform(delivery=odbiór osobisty)
|
||||
system Proszę podać kod BLIK. request(code)
|
||||
user 177 771 inform(code=177771)
|
||||
system Proszę potwierdzić płatność w aplikacji. request(affirm)
|
||||
user Potwierdzone affirm()
|
||||
system Zamówienie: 2x pomidor, 2x ogórek będzie gotowe do odbioru o godz 11:30. inform(summary)
|
||||
system "Dziękujemy za skorzystanie z usług sklepu spożywczego ""Surykatka""." bye()
|
||||
user Dobrze, dziękuję bye()
|
|
108
data/dialog-07-06-02.tsv
Normal file
108
data/dialog-07-06-02.tsv
Normal file
@ -0,0 +1,108 @@
|
||||
user Dzień dobry, z jakich usług można w tym miejscu skorzystać? welcomemsg()
|
||||
system "Dzień dobry, witamy w systemie obsługi sklepu spożywczego ""Surykatka"". Jakie produkty Pana/Panią interesują?" welcomemsg()
|
||||
user Chciałbym zamówić 2 litry mleka oraz chipsy lays zielona cebulka inform(productname=chipsy, brandname=lays, taste=zielona cebulka)&inform(productname=mleko)
|
||||
system Mleko krowie, kozie, owcze czy kokosowe? reqmore(productname=mleko, type, count=4)
|
||||
user mleko krowie byłoby idealne inform(productname=mleko, type=krowie)
|
||||
system Z laktozą czy bez? reqmore(ingredient)
|
||||
user może być z laktozą inform(ingredient=laktoza)
|
||||
system Dodano do koszyka mleko krowie z laktozą 2L, chipsy lays smak zielona cebulka 140g. Czy chciałbyś zamówić coś jeszcze? Polecam produkty dostępne w promocji. inform(productname=mleko, type=krowie, ingredient=laktoza)&inform(productname=chipsy, brandname=lays, taste=zielona cebulka)&offer(promotion)
|
||||
user Promocja? Brzmi ciekawie... Co macie na promocji w tym momencie? request(promotion
|
||||
system "Goya Oliwki Gordales Z Pestką 358 Ml 7,49zł
|
||||
Violife Plastry Smak Wędzony 100 G 8,29 zł
|
||||
Hortex Sok 100% Jabłko Butelka Apet 300 Ml - 2,79 zł
|
||||
Szynka Dojrzewająca Plastry 100G Łuków - 11,29 zł
|
||||
Pomidory suszone w oleju 4,1kg Helcom - Helcom 114,49 zł
|
||||
Bakoma Ave Vege Banan Z Nutą Wanilii 150 G - 4,89 zł
|
||||
Malina Z Sokiem Cytrynowym 225 Ml 4Tea - 8,79 zł
|
||||
Chorizo Sarta Pikantne 200G - 14.99 zł
|
||||
Maluta Ser Moja Gouda 45 % Tł Bez Barwników I Konserwantów 600g 25,43 zł
|
||||
Lay'S Oven Baked Chantarelles In A Cream Sauce 125 G 8,39 zł" inform(promotion)
|
||||
user Ta szynka brzmi jak produkt który chciałbym posiadać inform(productname=szynka)
|
||||
system Dodano do koszyka Szynka Dojrzewająca Plastry 100G Łuków inform(productname=szynka, brandname=Łuków, amount=100g)
|
||||
system Czy chcesz zamówić coś jeszcze? request(all)
|
||||
user Myślę że do mleka idealne byłby jakieś płatki, jakie płatki do mleka macie w ofercie? inform(productname=płatki)
|
||||
system "Lubella Catering Płatki kukurydziane 1 kg
|
||||
Lubella
|
||||
18,39zł
|
||||
NesVita Owsianka truskawkowa 45 g - Nesvita
|
||||
45g
|
||||
NesVita Owsianka truskawkowa 45 g
|
||||
Nesvita
|
||||
3,19zł
|
||||
Kupiec Coś na ząb Owsianka malina i żurawina 50 g - Kupiec
|
||||
|
||||
|
||||
|
||||
50g
|
||||
Kupiec Coś na ząb Owsianka malina i żurawina 50 g
|
||||
Kupiec
|
||||
2,59zł
|
||||
Nestlé Corn Flakes Choco Płatki śniadaniowe o smaku czekoladowym 250 g - Corn Flakes
|
||||
450g
|
||||
Nestlé Corn Flakes Choco Płatki śniadaniowe o smaku czekoladowym 250 g
|
||||
Corn Flakes
|
||||
9,29zł
|
||||
Nestlé Corn Flakes Płatki kukurydziane 600 g - Nestlé
|
||||
600g
|
||||
Nestlé Corn Flakes Płatki kukurydziane 600 g
|
||||
Nestlé
|
||||
14,69zł
|
||||
Nestlé Frutina Owoce i Błonnik Płatki śniadaniowe 250 g - Nestlé
|
||||
250g
|
||||
Nestlé Frutina Owoce i Błonnik Płatki śniadaniowe 250 g
|
||||
Nestlé
|
||||
9,39zł
|
||||
NesVita Owsianka malinowa 45 g - Nesvita
|
||||
45g
|
||||
NesVita Owsianka malinowa 45 g
|
||||
Nesvita
|
||||
3,19zł
|
||||
NesVita Owsianka wiśniowa 45 g - Nesvita
|
||||
45g
|
||||
NesVita Owsianka wiśniowa 45 g
|
||||
Nesvita
|
||||
3,19zł
|
||||
Nestlé Lion WildCrush Płatki śniadaniowe 350 g - Lion
|
||||
350g
|
||||
Nestlé Lion WildCrush Płatki śniadaniowe 350 g
|
||||
Lion
|
||||
14,39zł
|
||||
Lubella Mlekołaki Choco Kulki Zbożowe kulki o smaku czekoladowym 500 g - Lubella
|
||||
500g
|
||||
Lubella Mlekołaki Choco Kulki Zbożowe kulki o smaku czekoladowym 500 g
|
||||
Lubella
|
||||
10,79zł" inform(productname=płatki, count=10)
|
||||
user Chciałbym te lajonki request(brandname=lion)
|
||||
system Dodano do koszyka Nestlé Lion WildCrush Płatki śniadaniowe 350 g - Lion. inform(productname=płatki, brandname=lion, amount=350g)
|
||||
user Myślę że to wszystko, jakie formy dostawy są dostępne? request(delivery)
|
||||
system Dostawa do domu, do paczkomatu oraz odbiór osobisty. inform(delivery)
|
||||
user dostawa do domu byłaby najbardziej optymalna inform(delivery=dostawa do domu)
|
||||
system Proszę podać adres dostawy. request(address)
|
||||
user ul. wojska M.A.U. 21/13 inform(address=ul. Wojska M.A.U 21/13)
|
||||
user Stargard Szczeciński inform(address=ul. Wojska M.A.U 21/13 Stargard Szczeciński)
|
||||
user 73 - 102 inform(address=ul. Wojska M.A.U 21/13 Stargard Szczeciński 73-102)
|
||||
system Czy chcesz przejść do płatności? request(payment)
|
||||
user Tak affirm()
|
||||
system "Dostępne formy płatności:
|
||||
|
||||
-Blik,
|
||||
-przelew tradycyjny
|
||||
|
||||
-gotówka przy odbiorze
|
||||
|
||||
-PayPal
|
||||
|
||||
-PayU
|
||||
|
||||
-dotpay
|
||||
|
||||
-Apple Pay/Google Pay" request(paymentmethod)
|
||||
user będzie blik inform(paymentmethod=blik)
|
||||
system Proszę podać kod BLIK. request(code)
|
||||
user 6969 inform(code=6969)
|
||||
system Proszę potwierdzić płatność w aplikacji. request(affirm)
|
||||
user potwiedzam intensywnie affirm()
|
||||
system "Zamówienie przyjęte.
|
||||
|
||||
Dostawa na adres : ul. wojska M.A.U. 21/13, Stargard Szczeciński, 73 - 102. Dostawca przyjedzie w okolicach godz 11:15-11:25. Dziękujemy za skorzystanie z usług sklepu ""Surykatka""." bye()
|
||||
user Dziękuje i do widzenia bye()
|
|
68
data/dialog-07-08-02.tsv
Normal file
68
data/dialog-07-08-02.tsv
Normal file
@ -0,0 +1,68 @@
|
||||
user dzień dobry, jak pięknie dziś pada śnieg welcomemsg()
|
||||
system "Dzień dobry, muszę uwierzyć na słowo. Jestem tylko zwykłym szarym robotem. Witamy w systemie obsługi sklepu spożywczego ""Surykatka"", w czym mogę pomóc?" welcomemsg()
|
||||
user świetnie, ponieważ chciałabym zjeść śniadanie. Czy macie może jajka, avokado oraz świeże bułki? inform(productname=jajka)&inform(productname=avokado)&inform(productname=bułki)
|
||||
system Pewnie, jajka kurze, perlicze, gęsie, kacze, przepiórcze czy strusie? inform(productname=jajka, count=6)
|
||||
system Dostępne bułki: Kajzerka, Bagietka, Ciabatta, Grahamka, Bułka pełnoziarnista, Brioszka. inform(productname=bułki, count=6)
|
||||
user poproszę 10 jaj przepiórczych i świeżutką bagietkę request(productname=jajka, type = przepiórcze, count=10)&request(productname=bułki, type=bagietka)
|
||||
system Dodano do koszyka 10 jaj przepiórczych oraz Bagietkę. Czy chcesz zamówić coś jeszcze? Polecamy produkty dostępne na promocji. inform(productname=jajka, type = przepiórcze, count=10)&inform(productname=bułki, type=bagietka)&offer(promotion)
|
||||
user a co jest dzisiaj na promocji? request(promotion)
|
||||
system "Goya Oliwki Gordales Z Pestką 358 Ml 7,49zł
|
||||
Violife Plastry Smak Wędzony 100 G 8,29 zł
|
||||
Hortex Sok 100% Jabłko Butelka Apet 300 Ml - 2,79 zł
|
||||
Szynka Dojrzewająca Plastry 100G Łuków - 11,29 zł
|
||||
Pomidory suszone w oleju 4,1kg Helcom - Helcom 114,49 zł
|
||||
Bakoma Ave Vege Banan Z Nutą Wanilii 150 G - 4,89 zł
|
||||
Malina Z Sokiem Cytrynowym 225 Ml 4Tea - 8,79 zł
|
||||
Chorizo Sarta Pikantne 200G - 14.99 zł
|
||||
Maluta Ser Moja Gouda 45 % Tł Bez Barwników I Konserwantów 600g 25,43 zł
|
||||
Lay'S Oven Baked Chantarelles In A Cream Sauce 125 G 8,39 zł" inform(promotion)
|
||||
user w takim razie poproszę jeszcze szynkę dojrzewająca request(productname=szynka)
|
||||
user i masełko! request(productname=masło)
|
||||
system Dodano do koszyka Szynka Dojrzewająca Plastry 100G Łuków - 11,29 zł. inform(productname=szynka, amount=100g, price=11,29zł)
|
||||
system Masło ekstra, wyborowe, delikatesowe, stołowe czy śmietankowe? reqmore(productname=masło, type)
|
||||
user poproszę masło wyborowe inform(productname=masło, type=wyborowe)
|
||||
system Dodano do koszyka masło wyborowe. Czy to wszystko? inform(productname=masło, type=wyborowe)&request(all)
|
||||
user tak to wszystko affirm()
|
||||
system "Produkty dodane do koszyka:
|
||||
|
||||
10 jaj przepiórczych
|
||||
|
||||
Bagietka
|
||||
|
||||
Szynka Dojrzewająca Plastry 100G Łuków
|
||||
|
||||
masło wyborowe" inform(cart)
|
||||
system Czy chcesz przejść do płatności? request(payment)
|
||||
user tak affirm()
|
||||
system "Dostępne formy płatności:
|
||||
|
||||
-Blik,
|
||||
-przelew tradycyjny
|
||||
|
||||
-gotówka przy odbiorze
|
||||
|
||||
-PayPal
|
||||
|
||||
-PayU
|
||||
|
||||
-dotpay
|
||||
|
||||
-Apple Pay/Google Pay" request(paymentmethod)
|
||||
user zapłacę blikiem inform(paymentmethod=blik)
|
||||
system "Proszę wybrać formę dostawy.
|
||||
|
||||
Formy dostawy:
|
||||
|
||||
dostawa do domu
|
||||
dostawa do paczkomatu
|
||||
odbiór osobisty" request(delivery)
|
||||
user odbiorę osobiście inform(delivery=odbiór osobisty)
|
||||
system Proszę podać kod BLIK. request(code)
|
||||
user 123 456 inform(code=123456)
|
||||
system Proszę potwierdzić płatność w aplikacji. request(affirm)
|
||||
user potwierdzam affirm()
|
||||
system Zamówienie przyjęte. Gotowe do odbioru o godz 11:25. inform(summary)
|
||||
system "Dziękujemy za skorzystanie z usług sklepu spożywczego ""Surykatka""." bye()
|
||||
user wspaniale, dziękuję bye()
|
||||
user życze miłego dzionka i smacznej kawusi bye()
|
||||
system Wzajemnie. bye()
|
|
73
data/dialog-07-10-01.tsv
Normal file
73
data/dialog-07-10-01.tsv
Normal file
@ -0,0 +1,73 @@
|
||||
user Cześć, czym zajmuje się wasz system? welcomemsg()
|
||||
system "Dzień dobry, witamy w systemie obsługi sklepu spożywczego ""Surykatka"". W czym mogę pomóc?" welcomemsg()
|
||||
user Jakiego rodzaju produkty oferujecie? inform(products)
|
||||
system "Produkty dostępne dzisiaj w promocji:
|
||||
|
||||
|
||||
|
||||
Goya Oliwki Gordales Z Pestką 358 Ml 7,49zł
|
||||
Violife Plastry Smak Wędzony 100 G 8,29 zł
|
||||
Hortex Sok 100% Jabłko Butelka Apet 300 Ml - 2,79 zł
|
||||
Szynka Dojrzewająca Plastry 100G Łuków - 11,29 zł
|
||||
Pomidory suszone w oleju 4,1kg Helcom - Helcom 114,49 zł
|
||||
Bakoma Ave Vege Banan Z Nutą Wanilii 150 G - 4,89 zł
|
||||
Malina Z Sokiem Cytrynowym 225 Ml 4Tea - 8,79 zł
|
||||
Chorizo Sarta Pikantne 200G - 14.99 zł
|
||||
Maluta Ser Moja Gouda 45 % Tł Bez Barwników I Konserwantów 600g 25,43 zł
|
||||
Lay'S Oven Baked Chantarelles In A Cream Sauce 125 G 8,39 zł" inform(promotion)
|
||||
user Interesuje mnie głównie zakup składników do Fondue request(productname=Fondue)
|
||||
system Fondue serowe, czekoladowe czy mięsne? reqmore(productname=Fondue, type)
|
||||
user serowe inform(productname=Fondue, type = serowe)
|
||||
system "Proponujemy:
|
||||
|
||||
Ser Ementaler oraz Gruy?re
|
||||
|
||||
kirsch
|
||||
|
||||
mąka ziemniaczana
|
||||
|
||||
czosnek
|
||||
|
||||
biały pieprz
|
||||
|
||||
gałka muszkatołowa
|
||||
|
||||
cytryna
|
||||
|
||||
białe wytrawne wino" inform(productname=Fondue, ingredients=all)
|
||||
user Z listy wziąłbym w takim razie oba sery, po 300g oraz gałkę muszkatołową. Chciałbym do tego też Bazylię oraz dowiedzieć się jakie wino proponujecie? inform(productname=ser, count=2, amount=300g)&inform(productname=gałka muszkatołowa)&inform(productname=bazylia)&request(wino)
|
||||
system Dodano do koszyka ser ementaler 300g, ser Gruy?re, gałka muszkatołowa, bazylia. inform(productname=ser, count=2, amount=300g)&inform(productname=gałka muszkatołowa)&inform(productname=bazylia)
|
||||
system "Proponujemy wina:
|
||||
|
||||
Chardonnay, Sauvignon Blanc oraz Riesling" inform(productname=wino)
|
||||
user Może być Chardonnay. To by było wszystko dla mnie. inform(productname=wino, brandname=Chardonnay)&inform(all)
|
||||
system Dodano do koszyka Chardonnay. inform(productname=wino, brandname=Chardonnay)
|
||||
system "Proszę wybrać formę dostawy.
|
||||
|
||||
Formy dostawy:
|
||||
|
||||
dostawa do domu
|
||||
dostawa do paczkomatu
|
||||
odbiór osobisty" request(delivery)
|
||||
user Dostawa do paczkomatu inform(delivery=Dostawa do paczkomatu)
|
||||
system Proszę wybrać adres lub numer paczkomatu request(address)
|
||||
user POZ29A inform(address=POZ29A)
|
||||
system "Proszę o wybranie formy płatności.
|
||||
|
||||
Dostępne formy płatności:
|
||||
|
||||
-Blik,
|
||||
-przelew tradycyjny
|
||||
|
||||
-gotówka przy odbiorze
|
||||
|
||||
-PayPal
|
||||
|
||||
-PayU
|
||||
|
||||
-dotpay
|
||||
|
||||
-Apple Pay/Google Pay" request(paymentmethod)
|
||||
user Gotówka przy odbiorze inform(paymentmethod=gotówka)
|
||||
system Zamówienie przyjęte, o godzinie odbioru zostanie Pan poinformowany w osobnej wiadomości. bye()
|
||||
system "Dziękujemy za skorzystanie z usług sklepu spożywczego ""Surykatka""." bye()
|
|
63
data/dialog-07-12-01.tsv
Normal file
63
data/dialog-07-12-01.tsv
Normal file
@ -0,0 +1,63 @@
|
||||
user Dzień dobry, jakie usługi świadczy ten system? welcomemsg()
|
||||
system "Dzień dobry, witamy w systemie obsługi sklepu spożywczego ""Surykatka"". W czym mogę pomóc?" welcomemsg()
|
||||
user chcialbym kupic karme dla kota, mleko i pepsi inform(productname=karma dla kota)&inform(productname=mleko)&inform(productname=pepsi)
|
||||
system "Karma dla kota mokra, sucha czy półwilgotna?
|
||||
|
||||
Pepsi 0.5L czy 1L?
|
||||
|
||||
Mleko z laktozą czy bez?" reqmore(productname=karma dla kota, type)&reqmore(productname=pepsi, amount)&reqmore(productname=mleko, ingredient)
|
||||
user karma dla kota półwilgotna, pepsi 1l 3szt mleko bez laktozy 10l inform(productname=karma dla kota, type=półwilgotna)&inform(productname=mleko, ingredient=bez laktozy, count=3, amount=10l)&inform(productname=pepsi, amount=1l)
|
||||
system Dodano do koszyka: karma dla kota półwilgotna, pepsi 1l, 3x mleko bez laktozy 10l. inform(productname=karma dla kota, type=półwilgotna)&inform(productname=mleko, ingredient=bez laktozy, count=3, amount=10l)&inform(productname=pepsi, amount=1l)
|
||||
system Czy to wszystko? request(all)
|
||||
user Macie jakieś owoce w promocji? inform(promotion, productcategory=owoce)
|
||||
system "Produkty dostępne dzisiaj w promocji:
|
||||
|
||||
|
||||
|
||||
Goya Oliwki Gordales Z Pestką 358 Ml 7,49zł
|
||||
Violife Plastry Smak Wędzony 100 G 8,29 zł
|
||||
Hortex Sok 100% Jabłko Butelka Apet 300 Ml - 2,79 zł
|
||||
Szynka Dojrzewająca Plastry 100G Łuków - 11,29 zł
|
||||
Pomidory suszone w oleju 4,1kg Helcom - Helcom 114,49 zł
|
||||
Bakoma Ave Vege Banan Z Nutą Wanilii 150 G - 4,89 zł
|
||||
Malina Z Sokiem Cytrynowym 225 Ml 4Tea - 8,79 zł
|
||||
Chorizo Sarta Pikantne 200G - 14.99 zł
|
||||
Maluta Ser Moja Gouda 45 % Tł Bez Barwników I Konserwantów 600g 25,43 zł
|
||||
Lay'S Oven Baked Chantarelles In A Cream Sauce 125 G 8,39 zł" inform(promotion)
|
||||
user poproszę Bakoma Ave Vege Banan Z Nutą Wanilii 150 G inform(productname=jogurt, brandname=Bakoma, taste=banan z nutą wanilii, amount=150g)
|
||||
system Dodano do koszyka Bakoma Ave Vege Banan Z Nutą Wanilii 150 G. inform(productname=jogurt, brandname=Bakoma, taste=banan z nutą wanilii, amount=150g)
|
||||
system Czy chcesz zamówić coś jeszcze? request(all)
|
||||
user Nie dziękuję affirm()
|
||||
system "Proszę wybrać formę dostawy.
|
||||
|
||||
Formy dostawy:
|
||||
|
||||
dostawa do domu
|
||||
dostawa do paczkomatu
|
||||
odbiór osobisty" request(delivery)
|
||||
user Dostawa do paczkomatu inform(delivery=dostawa do paczkomatu)
|
||||
user POZ230M inform(address=POZ230M)
|
||||
system "Proszę wybrać sposób płatności.
|
||||
|
||||
Dostępne formy płatności:
|
||||
|
||||
-Blik,
|
||||
-przelew tradycyjny
|
||||
|
||||
-gotówka przy odbiorze
|
||||
|
||||
-PayPal
|
||||
|
||||
-PayU
|
||||
|
||||
-dotpay
|
||||
|
||||
-Apple Pay/Google Pay" request(paymentmethod)
|
||||
user BLIK inform(paymentmethod=blik)
|
||||
system Proszę podać kod BLIK. request(code)
|
||||
user 666666 inform(code=666666)
|
||||
system Proszę potwierdzić w aplikacji. request(affirm)
|
||||
user potwierdzam affirm()
|
||||
system Zamówienie otrzymane. Dostawa do paczkomatu POZ230M. Śledz paczkę w aplikacji. inform(summary)
|
||||
system "Dziękujemy za skorzystanie z usług sklepu spożywczego ""Surykatka""." bye()
|
||||
user Dziękuję! bye()
|
|
142
data/dialog-07-14-02.tsv
Normal file
142
data/dialog-07-14-02.tsv
Normal file
@ -0,0 +1,142 @@
|
||||
user Dzień dobry welcomemsg()
|
||||
system "Dzień dobry, witamy w systemie obsługi sklepu spożywczego ""Surykatka"". W czym mogę pomóc?" welcomemsg()
|
||||
user Chciałbym kupić mleko, chleb, jakieś wino. inform(productname=mleko)&inform(productname=chleb)&inform(productname=wino)
|
||||
system "Mleko z laktozą czy bez?
|
||||
|
||||
Aktualnie dostępne chleby: Chleb razowy, Chleb jasny, Chleb pszenny, Chleb żytni.
|
||||
|
||||
Karta win: FRANZ ANTON MAYER | LITER GRUNER VELTLINER | WAGRAM, AUSTRIA
|
||||
Cytrusowy, zwiewny i zbalansowany 23 PLN
|
||||
2020 CHATELAIN DESJACQUES | SAUVIGNON BLANC IGP | DOLINA LOARY, FRANCJA
|
||||
Przystępne, świeże i rześkie 23 PLN
|
||||
2020 BODEGA LAS VIRTUDES | ARCABUCERO BLANCO DO | ALICANTE, HISZPANIA
|
||||
Łagodne, owocowe i orzeźwiające 14 PLN
|
||||
2021 MARTÍN CÓDAX | ALBA MARTÍN ALBARI?O DO | RÍAS BAIXAS, HISZPANIA
|
||||
Rześkie, zwiewne i mineralne 30 PLN
|
||||
2021 LEITZ | EINS ZWEI ZERO RIESLING | DOLINA RENU, NIEMCY (BEZALKOHOLOWE)
|
||||
Bezalkoholowe, świeże i przyjemne" reqmore(productname=mleko, ingredient)&reqmore(productname=chleb, type)&reqmore(productname=wino, type)
|
||||
user Mleko zwykłe, chleb żytni. Są jakieś droższe wina? inform(productname=mleko)&inform(productname=chleb, type=żythni)&reqmore(productname=wino, price=expensive)
|
||||
system "Szampany oraz wina musujące ekskluzywne:
|
||||
|
||||
2012 MOET & CHANDON | DOM PERIGNON BRUT I SZAMPANIA, FRANCJA
|
||||
Złożony, elegancki i klasyczny 2288 PLN
|
||||
2012 POL ROGER | SIR WINSTON CHURCHILL | SZAMPANIA, FRANCJA
|
||||
Bogaty, aromatyczny i dojrzały 2008 PLN
|
||||
NV BERNARD PERTOIS | BRUT TRADITION BLANC DE BLANCS | SZAMPANIA, FRANCJA
|
||||
Żywy, elegancki i zbalansowany 398 PLN
|
||||
NV BERNARD PERTOIS | DEMI SEC TRADITION BLANC DE BLANCS | SZAMPANIA, FRANCJA
|
||||
Obfity, kremowy i półwytrawny398 PLN
|
||||
NV BERNARD PERTOIS | CUVÉE FLAVIE BRUT ROSÉ | SZAMPANIA, FRANCJA
|
||||
Aromatyczny, elegancki i złożony 508 PLN
|
||||
NV POL ROGER | BRUT | SZAMPANIA, FRANCJA
|
||||
Klasyczny, świeży i aromatyczny 598 PLN
|
||||
2013 POL ROGER | BRUT BLANC DE BLANCS | SZAMPANIA, FRANCJA
|
||||
Elegancki, złożony i efektowny 888 PLN
|
||||
2015 POL ROGER | BRUT ROSE | SZAMPANIA, FRANCJA
|
||||
Aromatyczny, świeży i treściwy 858 PLN
|
||||
NV TAITTINGER | BRUT | SZAMPANIA, FRANCJA
|
||||
Owocowy, harmonijny i aromatyczny 648 PLN
|
||||
NV TAITTINGER | DEMI-SEC | SZAMPANIA, FRANCJA
|
||||
Półwytrawny, owocowy i delikatny 598 PLN
|
||||
NV TAITTINGER | PRESTIGE ROSE | SZAMPANIA, FRANCJA
|
||||
Elegancki, złożony i aromatyczny 708 PLN
|
||||
NV HENRI CHAMPLIAU | CRÉMANT DE BOURGOGNE | BRUT AUTHENTIQUE | BURGUNDIA, FRANCJA
|
||||
Owocowy, strukturalny i wytrawny 238 PLN
|
||||
NV HENRY CHAMPLIAU | PÉTRONE 68 | BLANC DE BLANCS BRUT | BURGUNDIA, FRANCJA
|
||||
Soczysty, świeży i aromatyczny 148 PLN
|
||||
2021 SOLIGO | PROSECCO MILLESIMATO ROSE DOC | TREVISO, WŁOCHY
|
||||
Aromatyczne, owocowe i różowe 138 PLN
|
||||
NV EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY
|
||||
Przyjemny świeży i bezalkoholowy 178 PLN
|
||||
2018 2018 MAS XAROT | MONASTRELL | GRAN RESERVA CAVA BRUT | KATALONIA, HISZPANIA
|
||||
Klasyczny, świeży i aromatyczny 178 PLN
|
||||
2020 TORELLÓ | CORPINNAT BRUT ROSÉ RESERVA | PENED?S, HISZPANIA
|
||||
Intrygujący, owocowy i wytrawny 218 PLN
|
||||
NV EMILIANA | SANTA EMILIANA BRUT | CASABLANCA VALLEY, CHILE
|
||||
Aromatyczny, świeży i treściwy 198 PLN
|
||||
NV HENNERS | BRUT | EAST SUSSEX, ANGLIA
|
||||
Powściągliwy, delikatny i aromatyczny 378 PLN" inform(productname=wino, price=expensive)
|
||||
user To ja chciałbym to za 178pln inform(productname=wino, price=178pln)
|
||||
system Dodano do koszyka Mleko zwykłe, chleb żytni, 2018 MAS XAROT | MONASTRELL | GRAN RESERVA CAVA BRUT | KATALONIA, HISZPANIA. Czy chcesz zamówić coś jeszcze? inform(productname=mleko)&inform(productname=chleb, type=żythni)&inform(productname=wino, price=178pln)&request(all)
|
||||
user Nie to, to drugie za 178pln inform(productname=wino, price=178pln, brandname=EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY)
|
||||
system Usunięto z koszyka 2018 MAS XAROT | MONASTRELL | GRAN RESERVA CAVA BRUT | KATALONIA, HISZPANIA. inform(productname=wino, price=178pln,brandname=2018 MAS XAROT | MONASTRELL | GRAN RESERVA CAVA BRUT | KATALONIA, HISZPANIA)
|
||||
system Dodano do koszyka EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY. inform(productname=wino, price=178pln, brandname=EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY)
|
||||
system Polecamy również produkty dostępne w promocji. offer(promotion)
|
||||
system Czy chcesz zamówić coś jeszcze? request(all)
|
||||
user A co jest w promocji? request(promotion)
|
||||
system "Goya Oliwki Gordales Z Pestką 358 Ml 7,49zł
|
||||
Violife Plastry Smak Wędzony 100 G 8,29 zł
|
||||
Hortex Sok 100% Jabłko Butelka Apet 300 Ml - 2,79 zł
|
||||
Szynka Dojrzewająca Plastry 100G Łuków - 11,29 zł
|
||||
Pomidory suszone w oleju 4,1kg Helcom - Helcom 114,49 zł
|
||||
Bakoma Ave Vege Banan Z Nutą Wanilii 150 G - 4,89 zł
|
||||
Malina Z Sokiem Cytrynowym 225 Ml 4Tea - 8,79 zł
|
||||
Chorizo Sarta Pikantne 200G - 14.99 zł
|
||||
Maluta Ser Moja Gouda 45 % Tł Bez Barwników I Konserwantów 600g 25,43 zł
|
||||
Lay'S Oven Baked Chantarelles In A Cream Sauce 125 G 8,39 zł" inform(promotion)
|
||||
user Chcę szynkę dojrzewającą jeszcze. Macie otwieracz do wina? inform(productname=szynka)&inform(productname=otwieracz do wina)
|
||||
system Dodano do koszyka Szynka Dojrzewająca Plastry 100G Łuków. inform(productname=szynka)
|
||||
system Aktualnie dostępne są: Prosty korkociąg ręczny, korkociąg automatyczny. inform(productname=otwieracz do wina, count=2)
|
||||
user Tak, chcę korkociąg automatyczny, ile kosztuje? request(productname=otwieracz do wina, type=automatyczny, price)
|
||||
system Cena korkociągu automatycznego: 39,99 zł. inform(price)
|
||||
user Poproszę spakować, co mam w koszyku aktualnie ? request(cart)
|
||||
system "Produkty dodane do koszyka:
|
||||
|
||||
-Mleko zwykłe,
|
||||
|
||||
-chleb żytni,
|
||||
|
||||
-EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY.
|
||||
|
||||
-Szynka Dojrzewająca Plastry 100G Łuków
|
||||
|
||||
-korkociąg automatyczny." inform(cart)
|
||||
user I ile to wyszło? request(cartprice)
|
||||
system Cena produktów w koszyku: 213,79 zł. Czy chcesz przejść do kasy? inform(cartprice)&request(payment)
|
||||
user Tak, czy przywozicie zamówienia na adres? affirm()&inform(delivery)
|
||||
system "Formy dostawy:
|
||||
|
||||
dostawa do domu
|
||||
dostawa do paczkomatu
|
||||
odbiór osobisty" inform(delivery)
|
||||
user To ja chcę dostawę do domu, i chcę 2 butelki tego wina z mojego koszyka jednak inform(delivery=dostawa do domu)&inform(productname=wino, price=178pln, brandname=EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY)
|
||||
system Dodano do koszyka EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY. inform(productname=wino, price=178pln, brandname=EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY)
|
||||
system Cena produktów w koszyku: 393,79 zł. Proszę podać adres dostawy inform(cartprice)&request(address)
|
||||
user ul. Banananana 69 Poznań inform(address=ul. Banananana 69 Poznań)
|
||||
user Można płacić online? request(payment)
|
||||
system "Dostępne formy płatności:
|
||||
|
||||
-Blik,
|
||||
-przelew tradycyjny
|
||||
|
||||
-gotówka przy odbiorze
|
||||
|
||||
-PayPal
|
||||
|
||||
-PayU
|
||||
|
||||
-dotpay
|
||||
|
||||
-Apple Pay/Google Pay" request(paymentmethod)
|
||||
user To zapłacę gotówką przy odbiorze. Kiedy będzie dostawa? inform(paymentmethod=gotówka)&request(delivery, time)
|
||||
system Dostawa na adres: ul. Banananana 69 Poznań zostanie dostarczona w okolicach godz. 11:05 - 11:15. inform(delivery, time)
|
||||
system Zamówienie przyjęte, proszę przygotować 393,79 zł w gotówce przy odbiorze. inform(summary)
|
||||
user Wtedy mnie nie będzie w domu. Może być po 12:00? inform(delivery, time=12:00)
|
||||
system Zmiana godziny dostawy na godz. 12:00. inform(delivery, time=12:00)
|
||||
user Super, dziękuję bye()
|
||||
system "Dziękujemy za skorzystanie z usług sklepu spożywczego ""Surykatka""." bye()
|
||||
user Chciałbym anulować zamówienie inform(delivery, flag = cancel)
|
||||
system Czy na pewno chcesz anulować całe zamówienie? request(affirm)
|
||||
user W sumie to nie, chciałbym tylko zostawić wino z mojego koszyka negate()&inform(cart, flag = reset)&inform(productname=wino, price=178pln, brandname=EINS ZWEI ZERO | SPARKLING RIESLING 0% | DOLINA RENU, NIEMCY, count=2)
|
||||
system "Usunięto z koszyka
|
||||
|
||||
-Mleko zwykłe,
|
||||
|
||||
-chleb żytni,
|
||||
|
||||
-Szynka Dojrzewająca Plastry 100G Łuków
|
||||
|
||||
-korkociąg automatyczny." inform(cart)
|
||||
system Dostawa zostanie dostarczona o godzinie 12:00. Forma płatności: gotówka przy odbiorze. inform(summary)
|
||||
user Oki, dziękuję bye()
|
||||
system "Dziękujemy za skorzystanie z usług sklepu spożywczego ""Surykatka""." bye()
|
|
92
data/dialog-07-18-02.tsv
Normal file
92
data/dialog-07-18-02.tsv
Normal file
@ -0,0 +1,92 @@
|
||||
user Dzień dobry welcomemsg()
|
||||
system "Dzień dobry, witamy w systemie obsługi sklepu spożywczego ""Surykatka"". W czym mogę pomóc?" welcomemsg()
|
||||
user Czy sklep realizuje zamówienia z dostawą? request(delivery)
|
||||
system "Formy dostawy:
|
||||
|
||||
dostawa do domu
|
||||
dostawa do paczkomatu
|
||||
odbiór osobisty" inform(delivery)
|
||||
user Czy w ofercie sklepu dostępna jest karma dla psa? inform(productname=karma dla psa)
|
||||
system "Dostępne karmy dla psów:
|
||||
|
||||
TASTE OF THE WILD High Prairie 2KG
|
||||
59,00 zł
|
||||
|
||||
|
||||
|
||||
do koszyka
|
||||
TASTE OF THE WILD Southwest Canyon 2KG
|
||||
59,00 zł
|
||||
|
||||
|
||||
|
||||
do koszyka
|
||||
TASTE OF THE WILD Pine Forest 2KG
|
||||
59,00 zł
|
||||
|
||||
|
||||
|
||||
do koszyka
|
||||
Eden Country Cuisine dla kota 1,5kg
|
||||
94,99 zł" inform(productname=karma dla psa, count=4)
|
||||
user poprosze 2 razy TASTE OF THE WILD High Prairie 2KG inform(brandname=TASTE OF THE WILD High Prairie 2KG, count =2)
|
||||
system Dodano do koszyka 2x TASTE OF THE WILD High Prairie 2KG. Czy chcesz zamówić coś jeszcze? Polecamy produkty dostępne na promocji. inform(productname=karma dla psabrandname=TASTE OF THE WILD High Prairie 2KG, count =2)
|
||||
user Jakie produkty są w promocji request(promotion)
|
||||
system "Produkty dostępne dzisiaj w promocji:
|
||||
|
||||
|
||||
|
||||
Goya Oliwki Gordales Z Pestką 358 Ml 7,49zł
|
||||
Violife Plastry Smak Wędzony 100 G 8,29 zł
|
||||
Hortex Sok 100% Jabłko Butelka Apet 300 Ml - 2,79 zł
|
||||
Szynka Dojrzewająca Plastry 100G Łuków - 11,29 zł
|
||||
Pomidory suszone w oleju 4,1kg Helcom - Helcom 114,49 zł
|
||||
Bakoma Ave Vege Banan Z Nutą Wanilii 150 G - 4,89 zł
|
||||
Malina Z Sokiem Cytrynowym 225 Ml 4Tea - 8,79 zł
|
||||
Chorizo Sarta Pikantne 200G - 14.99 zł
|
||||
Maluta Ser Moja Gouda 45 % Tł Bez Barwników I Konserwantów 600g 25,43 zł
|
||||
Lay'S Oven Baked Chantarelles In A Cream Sauce 125 G 8,39 zł" inform(promotion)
|
||||
user Poproszę podać najniższą cenę produktów z ostatnich 30 dni zgodnie z dyrektywą omnibusa null
|
||||
system Nie mam pozwolenia na takie polecenie. canthelp()
|
||||
user Będę zmuszony zgłosić sklep do inspekcji handlowej reqmore()
|
||||
system Przepraszamy za kłopot. Proponuję skontaktować się z kierownikiem pod numerem: 213701019 inform(contact)
|
||||
user po rozmowie z kierownikiem ustaliliśmy, że jest pan zmuszony podać ceny, aby nie łamać dyrektywy null
|
||||
system Niestety jestem nowym pracownikiem, o szczegóły proszę pytać kierownika. canthelp()
|
||||
user poprosze lejsy inform(productname=chipsy, brandname= lays)
|
||||
system Jaki smak oraz porcja? reqmore()
|
||||
user Oven Baked Chantarelles In A Cream Sauce 125 G inform(taste=Oven Baked Chantarelles In A Cream Sauce, amount=125g
|
||||
system Dodano do koszyka Oven Baked Chantarelles In A Cream Sauce 125 G. inform(productname=chipsy, brandname= lays, taste=Oven Baked Chantarelles In A Cream Sauce, amount=125g
|
||||
system Czy to wszystko? request(all)
|
||||
user tak affirm()
|
||||
system "Proszę wybrać formę dostawy.
|
||||
|
||||
Formy dostawy:
|
||||
|
||||
dostawa do domu
|
||||
dostawa do paczkomatu
|
||||
odbiór osobisty" request(delivery)
|
||||
user odbiór osobisty inform(delivery=odbiór osobisty)
|
||||
system "Proszę o wybranie formy płatności.
|
||||
|
||||
Dostępne formy płatności:
|
||||
|
||||
-Blik,
|
||||
-przelew tradycyjny
|
||||
|
||||
-gotówka przy odbiorze
|
||||
|
||||
-PayPal
|
||||
|
||||
-PayU
|
||||
|
||||
-dotpay
|
||||
|
||||
-Apple Pay/Google Pay" request(paymentmethod)
|
||||
user blik inform(paymentmethod=blik)
|
||||
system Proszę podać kod BLIK request(code)
|
||||
user 6.3639E+050 inform(code=6.3639E+050)
|
||||
system Proszę o potwierdzenie w aplikacji. request(affirm)
|
||||
user potwierdziłem affirm()
|
||||
system Zamówienie przyjęte, o godzinie odbioru zostanie Pan poinformowany w osobnej wiadomości. inform(summary)
|
||||
system "Dziękujemy za skorzystanie z usług sklepu spożywczego ""Surykatka""." bye()
|
||||
user dziekuję, do widzenia bye()
|
|
27
data/dialog-08-01-01.tsv
Normal file
27
data/dialog-08-01-01.tsv
Normal file
@ -0,0 +1,27 @@
|
||||
"subject" "utterance" "annotation"
|
||||
user Szukam restauracji z kuchnią etiopską inform(food=etiopska)
|
||||
system dzień dobry, jestem systemem obsługi sklepu spożywczego, nie posiadam informacji na temat restauracji z kuchnią etiopską welcomemsg()&canthelp(food=etiopska)
|
||||
user szukam składników do messer wat inform(productname=składniki_do_messer_wat)
|
||||
system nie posiadam produktu składniki do messet wat. czy możesz sformuować to inaczej? canthelp(productname=składniki_do_messer_wat)&request(productname)
|
||||
user szukam ciekawych mieszanek przypraw. Co macie w swojej ofercie? inform(productcategory=mieszanka_przypraw)
|
||||
system z mieszanek przypraw mamy w ofercie: przyprawa arabska - sól, kukurydza, pieprz ziołowy, pietruszka, gorczyca, kolendra, kminek, majeranek, cząber, tymianek, chilli, papryka słodka, cukier, kolendra, papryka ostra, kmin rzymski, cynamon, soda, imbir, ziele angielskie, gałka muszkatołowa, goździki; przyprawa azjatycka - sól, czosnek, marchew, kukurydza, papryka słodka, imbir, curry, szczypiorek, chili, papryka ostra, barwnik naturalny-ekstrakt papryki; przyprawa cajun - papryka słodka, pieprz cayenne, chili, sól, pieprz czarny, czosnek, cebula, oregano, tymianek, pieprz biały; przyprawa chińska - sól, kolendra, imbir, papryka ostra, kozieradka, cynamon, cukier, kukurydza, kurkuma, kminek, koper włoski, kardamon, pieprz biały, papryka chilli, naturalny barwnik- oleorezyna kurkumy; przyprawa 5 Smaków - kolendra, sól, cynamon, ziele angielskie, kukurydza, papryka słodka, papryka ostra, barwnik naturalny, ekstrakt z papryki inform(productcategory=mieszanka_przypraw,count=5)
|
||||
user a posiadacie mieszanki bez soli w składzie? inform(productcategory=mieszanka_przypraw,type=bez_soli)
|
||||
system posiadamy dwie mieszanki: zioła zamiast soli - gorczyca, papryka słodka, kozieradka, kurkuma, cebula, czosnek, kolendra, pieprz czarny, oregano, imbir, pietruszka, papryka chilli, bazylia, lubczyk, majeranek; przyprawa garam masala premium bez soli - kolendra, pieprz czarny, kmin rzymski, cynamon, liść laurowy, goździki, kardamon, imbir, gałka muszkatołowa inform(productname=mieszanka_przypraw,type=bez_soli,count=2)
|
||||
user dodaj obie mieszanki do koszyka inform(productcategory=mieszanka_przypraw,type=bez_soli,count=2)
|
||||
system dodaje zioła zamiast soli oraz przyprawa garam masala bez soli. Czy coś jeszcze dodać do koszyka? inform(productname=zioła_zamiast_soli, productname=przyprawa_garam_masala_bez_soli)
|
||||
user czy macie napoje z usa w ofercie? inform(productcategory=napoje, type=usa)
|
||||
system nie posiadam takiej kategorii napojów. Z kategorii napojów mamy coca-cole, pepsi, sprite oraz soki. czy któryś z tych napojów cię interesuje? canthelp(productcategory=napoje, type=usa)&inform(productcategory=napoje, count=4)
|
||||
user nie negate()
|
||||
system czy chcesz przejść do płatności? request(payment)
|
||||
user tak affirm()
|
||||
system czy posiadasz naszą kartę lojalnościową? request(card)
|
||||
user nie negate()
|
||||
system czy chciałbyś założyć kartę lojalnościową? offer(cardcreation)
|
||||
user nie negate()
|
||||
system podaj adres zamowenia request(adress)
|
||||
user ul. Uniwersytetu Poznańskiego 4, Poznań inform(adress=Uniwersytetu_Poznańskiego_4_Poznań)
|
||||
system przyjmuje adres zamowienia. przekierowuje do systemu płatności. Nie zamykaj okna czatu. gdy płatność przebiegnie pomyślnie, poinformuje cię o tym tutaj inform(payment)
|
||||
user system odrzuca mi platność kartą inform(paymentissue)
|
||||
system jeśli występują problemy z systemem płatności, skontaktuj się z operatorem płatności. Czy coś jeszcze moge dla ciebie zrobić? canthelp(paymentissue)&reqmore
|
||||
user nie negate()
|
||||
system dziękuję i zapraszam ponownie bye()
|
|
14
data/dialog-08-03-01.tsv
Normal file
14
data/dialog-08-03-01.tsv
Normal file
@ -0,0 +1,14 @@
|
||||
"subject" "utterance" "annotation"
|
||||
system dzień dobry, jestem systemem obsługi sklepu spożywczego welcomemsg()
|
||||
user Jasne, czy w tym sklepie mogę zamówić produkty kuchni azjatyckiej? inform(productcategory=kuchnia_azjatycka)
|
||||
system oczywiście, mamy w ofercie m.in sos sojowy, srirache, sos rybny, mleczko kokosowe, ocet ryzowy, ryż, makaron ryżowy, makaron udon, makaron ramen, kolendre, pasty miso, pasty curry inform(productcategory=kuchnia_azjatycka,count=12)
|
||||
user Jak dobrze rozumiem pasty z tamarydnowca nie ma w ofercie, czy nie ma go obecnie na stanie. Czy byłaby możliwość zamówienia takiego produktu? inform(productname=pasta_z_tamaryndowca)&request(order)
|
||||
system Mamy również paste z tamaryndowca. Czy dodać ją do koszyka? inform(productname=pasta_z_tamaryndowca)
|
||||
user Tak poproszę, razem z sosem rybnym, sojowym, makaronem ryżowym, octem ryżowym i srirachą inform(productname=pasta_tamaryndowca,productname=sos_rybny,productname=sos_sojowy,productname=makaron_ryżowy,productname=ocet_ryżowy,productname=sriracha)
|
||||
system dodaje paste z tamaryndowca, sos rybny, sos sojowy, makaron ryzowy, ocet ryzowy i sos srirache. czy cos jeszcze chcesz kupic? inform(productname=pasta_tamaryndowca,productname=sos_rybny,productname=sos_sojowy,productname=makaron_ryżowy,productname=ocet_ryżowy,productname=sriracha)
|
||||
user Nie, to by było wszystko negate()
|
||||
system podaj adres zamowienia request(adress)
|
||||
user Shire ul. Nizołkowska 13a, 14-8897 inform(adress=Nizołkowska_13a_14-8897_Shire)
|
||||
system przyjmuje adres zamowienia. Przekierowuje do systemu płatnołci. Nie zamykaj okna czatu. Gdy płatność przebiegnie pomyślnie, poinformuje cię o tym tutaj. Płatność przebiegła pomyslnie, twoje zamowienie jest w realizacji. Czy cos jeszcze moge dla ciebie zrobić? inform(payment)
|
||||
user Nie, myślę, że to wszystko negate()
|
||||
system dziekuje, do zobaczenia bye()
|
|
21
data/dialog-08-05-01.tsv
Normal file
21
data/dialog-08-05-01.tsv
Normal file
@ -0,0 +1,21 @@
|
||||
"subject" "utterance" "annotation"
|
||||
system Dzień dobry, jestem systemem obsługi sklepu spożywczego, w czym moge pomóc? welcomemsg()
|
||||
user Chiałbym kupić jakieś piwo inform(productcategory=piwo)
|
||||
system Mam aktualnie w ofercie: Captain JackPirate Orange x4, Kronenbourg 1664 Blanc330ml butelka, Tyskie 0% 4pak500ml x2, Brooklyn Crisp Lager piwo 500ml 4pak puszka4x500ml x2, Captain JackCuba Libre x4, Captain JackExotic Daiquiri x4, HEINEKEN piwo 0%, ZATECKY piwo, OKOCIM jasne okocimskie 4-pak, HEINEKEN piwo silver 4-pack, HEINEKEN piwo, DESPERADOS 4-pack inform(productcategory=piwo, count=12)
|
||||
user Poproszę ZATECKY 6 szt inform(productname=zatecky,count=6)
|
||||
system Dodaje do koszyka ZATECKY piwo 6 szt. Czy chciałabyś kupić coś jeszcze? inform(productname=zatecky,count=6)
|
||||
user To poproszę czipsy wiejskie ziemniaczki "Masło z solą" 1 opakowanie inform(productname=czipsy_wiejskie_ziemniaczki, count=1)
|
||||
system Dodaje do koszyka czipsy wiejskie ziemniaczki "Masło z solą" 1 szt. Czy chciałabyś kupić coś jeszcze? inform(productname=czipsy_wiejskie_ziemniaczki, count=1)
|
||||
user na razie to wszystko negate()
|
||||
system czy chciałbyś przejść do finalizacji zamównia? request(payment)
|
||||
user tak, chcę przejść do finalizacji zamówienia affirm()
|
||||
system podaj adres dostawy reques (adress)
|
||||
user Hogwarts, dom Hagrida 1 inform(adress=dom_Hagrida_1_Hogwarts)
|
||||
system czy masz naszą kartę lojalnościową? request(card)
|
||||
user tak affirm()
|
||||
system podaj numer karty lojalnościowej request(cardnumber)
|
||||
user 69-2137 inform(cardnumber=69-2137)
|
||||
system karta lojalnosciowa dopisana do zamówienia. Kwota twojego zamówienia to 37 zł, przekierowuje do systemu płatności. Gdy płatność przebiegnie pomyslnie, poinformuje cię. Nie zamykaj okna chatu. inform(payment)
|
||||
system Płatność została zrealizowana, twoje zamowienie jest w realizacji. Czy coś jeszcze mogę dla Ciebie zrobić? offer()
|
||||
user Dziękuję, to wszystko negate()
|
||||
system Dziękuję za odwiedziny w naszym sklepie, zapraszamy ponownie! bye()
|
Can't render this file because it contains an unexpected character in line 7 and column 47.
|
19
data/dialog-08-07-01.tsv
Normal file
19
data/dialog-08-07-01.tsv
Normal file
@ -0,0 +1,19 @@
|
||||
"subject" "utterance" "annotation"
|
||||
system dzień dobry. jestem systemem obsługi sklepu spozywczego, w czym moge pomoc? welcomemsg()
|
||||
user chciałbym zakupić bagietkę czosnkową i do tego napój aloesowy inform(productname=bagietka_czosnkowa,productname=napój_aloesowy)
|
||||
system dodaje bagietke czosnkową. napoj aloesowy w pojemnosci 0,5 czy 1 litr? inform(productname=bagietka)&request(type=napój_aloesowy)
|
||||
user 2 razy 1 litr inform(type=1l,count=2)
|
||||
system dodaje 2x npoj aleoswy 1litr. czy cos jeszcze chcesz zamowic? inform(productname=napój_aloesowy,type=1l,count=2)
|
||||
user Nie, dziękuję. Jeszcze mam sporo sklepów do odwiedzenia. negate()
|
||||
system czy chcesz przejsc do finalizacji zamówienia? request(payment)
|
||||
user Tak, proszę. affirm()
|
||||
system podaj adres zamowienia request(adress)
|
||||
user Chatbota spożywczego 24/7 inform(adress=chatbota_spożywczego_24/7)
|
||||
system czy masz nasza karte lojalnosciową? request(card)
|
||||
user Nie mam, na razie podziękuję negate()
|
||||
system przyjmuje adres zamowienia. przekierowuje do systemu płatności. Nie zamykaj okna czatu. gdy płatność przebiegnie pomyślnie, poinformuje cię o tym tutaj inform(payment)
|
||||
user **blik blik** null()
|
||||
system Płatność została zrealizowana. Czy coś jeszcze mogę dla ciebie zrobić? offer()
|
||||
user To wszystko, dziękuje. Super sklep! negate()
|
||||
system To miłe. dziekuje i do zobaczenia bye()
|
||||
user Do zobaczenia! bye()
|
|
30
data/dialog-08-09-01.tsv
Normal file
30
data/dialog-08-09-01.tsv
Normal file
@ -0,0 +1,30 @@
|
||||
"subject" "utterance" "annotation"
|
||||
user Dzien dobry, chcialabym sie zapisac na zajecia welcomemsg()
|
||||
system dzień dobry, jestem systemem obsługi sklepu spożywczego, nie posiadam informacji na temat zajęć welcomemsg()&canthelp(topic=zajęcia)
|
||||
user co moglibyście mi zaoferować? request(offer)
|
||||
system w tym tygodniu mamy tydzień włoski - passaty, spody do pizzy oraz włoskie sery z specjalną promocją 2+1 za grosz offer(productcategory=kuchnia_włoska)
|
||||
user mam ochotę dzisiaj na coś greckiego, co byście mieli w ofercie? request(offer(productcategory=kuchnia_grecka))
|
||||
system oczywiście, miedzy innymi sery (feta, graviera, metsovone, mizithra, halloumi, kefalotiri, manouri, jogurt grecki), ryby i owoce morza (tuńczyk, okoń, sardynka, barwena, kalmary, ośmiornice), mięsa do gyrosa, produkty pszenne np pita oraz makarony, warzywa wykorzystywane w kuchni greckiej np. pomidor, ogórek, papryka, cebula, bakłażan, cukinia, strączki, czosnek, koper włoski, karczoch, kapusta, szpinak inform(productcategory=kuchnia_grecka,count=8)
|
||||
user o to duży wybór, interesował by mnie ser feta, makaron, i warzywa typu pomidor, cebula, cukinia, może też papryka, poproszę więcej informacji o tych produktach inform(productname=feta,productcatgory=makaron,productname=pomidor, productname=cebula, productname=cukinia, productname=papryka)&request(information)
|
||||
system warzywa mamy świeżutkie prostu z pola, ser feta idealnie słony, a z makaronów możesz wybrać pomiędzy pszennym, pełnoziarnistym i ryzowym. Do kuchni greckiej polecam makaron pszenny lub pelnoziarnisty inform(productcategory=warzywa, productname=feta, productcategory=makaron,count=3)
|
||||
user super to poprosiłabym pszenny typu penne, macie może jakieś promocje na któryś z tych produktów? inform(productname=makaron_pszenny_penne)&request(specialoffer)
|
||||
system Tak dzisiaj specjalna promocja na makarony pszenne, druga paczka makaronu za pół ceny inform(specialoffer)
|
||||
user a jakie są ceny tych produktów? request(price)
|
||||
system paczka makaronu kosztuje 4 zł. czy interesują cię ceny pozostałych produktów? inform(price)
|
||||
user tak affirm()
|
||||
system ser feta - 11 zł, pomidor 1 szt - 3,50zł, cebula 1 szt - 2 zł, cukinia - 3 zł, papryka - 5zł inform(price)
|
||||
user poprosiłabym 2 papryki, 2 cukinie, cebule, 4 pomidory i jeden ser feta, a i do tego 2 paczki makaronu. Czy mają państwo w ofercie wodę nałęczowiankę niegazowaną? inform(productname=papryka, count=2,productname=cebula,productname=pomidor,count=4,productname=feta,productname=makaron_pszenny_penne, count=2, productname=nałęczowianka_niegazowana)
|
||||
system dodaje produkty do koszyka. niestety mamy jedynie wode nałęczowianke gazowaną. Czy coś jeszcze chciałbyś kupić? inform((productname=papryka, count=2,productname=cebula,productname=pomidor,count=4,productname=feta,productname=makaron_pszenny_penne, count=2)&negate(nałęczowianka_niegazowana)
|
||||
user poproszę żelki śmielżelki kwaśne inform(productname=żelki_śmiejżelki_kwaśne)
|
||||
system dodaje poproszę żelki śmielżelki kwaśne. Czy chcesz kupic cos jeszcze? inform(productname=żelki_śmiejżelki_kwaśne)
|
||||
user nie dziękuję to byłoby wszystko negate()
|
||||
system przechodzę do finalizacji. Podaj adres zamownia request(adress)
|
||||
user ul. lasów polnych 8/3 Kraków inform(adress=lasów polnych_8/3_Kraków)
|
||||
system przyjmuje adres zamowienia. przekierowuje do systemu płatności. Nie zamykaj okna czatu. gdy płatność przebiegnie pomyślnie, poinformuje cię o tym tutaj inform(payment)
|
||||
system płatność przebiegła pomyslnie, twoje zamowienie jest w realizacji. czy cos jeszcze moge dla ciebie zrobić? inform(payment)&reqmore()
|
||||
user Dziękuję to byłoby wszystko negate()
|
||||
system dziękuję, do zobaczenia bye()
|
||||
|
||||
|
||||
|
||||
|
|
20
data/dialog-08-15-01.tsv
Normal file
20
data/dialog-08-15-01.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
"subject" "utterance" "annotation"
|
||||
system dzień dobry, jestem systemem obsługi sklepu spożywczego welcomemsg()
|
||||
user okej, to ja bym chciał zamówić mleko, chleb, żółty ser i sok jabłkowy inform(productname=mleko, productname=chleb, productname=żółty_ser, productname=sok_jabłkowy)
|
||||
system dodaje do koszyka mleko, chleb, żółty ser i sok jabłkowy. Czy chciałbyś kupić coś jeszcze? inform(productname=mleko, productname=chleb, productname=żółty_ser, productname=sok_jabłkowy)
|
||||
user tak, dodaj jeszcze czekoladę mleczną inform(productname=czekolada_mleczna)
|
||||
system dodaje czekolade mleczną. Akurat dzisiaj mamy specjalną ofertę - po dodaniu dwóch czekolad mlecznych, trzecia dostajesz gratis. Czy dodać jeszcze jedna czekolade mleczną? offer(specialoffer=czekolada_mleczna)
|
||||
user o super, tak poproszę affirm()
|
||||
system w koszyk znajduje się teraz trzy czekolady. Czy chciałbyś zamówić coś jeszcze? inform(productname=czekolada_mleczna,count=3)
|
||||
user nie, ile będą mnie kosztować te zakupy? request(price)
|
||||
system kwota twojego koszyka wynosi aktualnie 28,96 inform(price)
|
||||
user trochę sporo, odejmij mi mleko z koszyka request(remove=mleko)
|
||||
system odejmuje mleko, teraz kwota twojego zamowienia wynosi 23,46 infomr(price)
|
||||
user okej, to będzie wszystko affirm()
|
||||
system przechodzę do finalizacji. podaj adres zamowienia request(adress)
|
||||
user ul. XYZ 1/23, Poznań inform(adress=XYZ_1/23_Poznań)
|
||||
system przyjmuje adres zamowienia. przekierowuje do systemu płatności. Nie zamykaj okna czatu. Gdy płatność przebiegnie pomyślnie, poinformuje cię o tym tutaj inform(payment)
|
||||
user okej affirm()
|
||||
system płatność została zrealizowana. Czy coś jeszcze mogę dla ciebie zrobić? inform(payment)
|
||||
user nie, to wszystko, dziękuję negate()
|
||||
system dziekuje, do zobaczenia bye()
|
|
15
data/dialog-08-17-01.tsv
Normal file
15
data/dialog-08-17-01.tsv
Normal file
@ -0,0 +1,15 @@
|
||||
"subject" "utterance" "annotation"
|
||||
user Dzień dobry welcomemsg()
|
||||
system Dzień dobry, jestem systemem obsługi sklepu spożywczego, w czym moge pomóc? welcomemsg()
|
||||
user Chciałbym złożyć zamówienie na 50kg ziemniaków, ważne jest też by było dostarczone na dziś wieczór.Dodatkowo chciałbym zamówić 5l mleka inform(productname=ziemniaki,count=50kg,productname=mleko,count=5l,productname=szybka_dostawa)
|
||||
system Dodaje do koszyka 50kg ziemniaków oraz 5l mleka. Dodaje do koszyka wysyłke ekspresową. czy coś jeszcze chciałbyś zamówić? inform(productname=ziemniaki,count=50kg,productname=mleko,count=5l,productname=szybka_dostawa)
|
||||
user Nie to wszystko. Ile wynosi łączny koszt wraz z wysyłką? negate()
|
||||
system Kwota twojego koszyka to 125 zł. Wysyłka ekspresowa wyniesie 12 zł. razem 137 zł. czy przejść do płatności? infomr(price)&request(payment)
|
||||
user Tak affirm()
|
||||
system Podaj adres zamówienia request(adress)
|
||||
user Ul. Uniwersytetu Poznańskiego 4, 61-000 Poznań inform(adress=uniwersytetu_Poznańskiego_4_61-000_Poznań)
|
||||
system Przyjmuje adres zamówienia. Przekierowuje do systemu płatności. Nie zamykaj okna czatu. gdy płatność przebiegnie pomyślnie, poinformuje cię o tym tutaj. inform(payment)
|
||||
system Płatność została zrealizowana. Czy coś jeszcze mogę dla Ciebie zrobić? infomr(payment)
|
||||
user Nie, to wszystko negate()
|
||||
system Dziękuję, do zobaczenia bye()
|
||||
|
|
36
dictionary.json
Normal file
36
dictionary.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"user_act":[
|
||||
|
||||
],
|
||||
"system_act":[
|
||||
|
||||
],
|
||||
"belief_state":{
|
||||
"payment":{
|
||||
"type":"",
|
||||
"amount":"",
|
||||
"loyalty_card":""
|
||||
},
|
||||
"delivery":{
|
||||
"type":"",
|
||||
"address":"",
|
||||
"time":""
|
||||
},
|
||||
"product":{
|
||||
"name":"",
|
||||
"type":"",
|
||||
"brand":"",
|
||||
"price_range":"",
|
||||
"price":"",
|
||||
"quantity":"",
|
||||
"quality":""
|
||||
}
|
||||
},
|
||||
"request_state":{
|
||||
|
||||
},
|
||||
"terminated":false,
|
||||
"history":[
|
||||
|
||||
]
|
||||
}
|
45
evaluate.py
Normal file
45
evaluate.py
Normal file
@ -0,0 +1,45 @@
|
||||
import csv
|
||||
import example_nlu as en
|
||||
|
||||
rows = []
|
||||
|
||||
|
||||
def readData():
|
||||
ii = [5, 6, 7, 8]
|
||||
jj = [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
|
||||
kk = [1, 2]
|
||||
|
||||
for i in ii:
|
||||
for j in jj:
|
||||
for k in kk:
|
||||
try:
|
||||
if j < 10:
|
||||
with open(f'./data/dialog-0{i}-0{j}-0{k}.tsv', 'r') as read_obj:
|
||||
csv_reader = csv.reader(read_obj, delimiter='\t')
|
||||
for row in csv_reader:
|
||||
if 'user' in row[0]:
|
||||
rows.append(row[1])
|
||||
else:
|
||||
with open(f'./data/dialog-0{i}-{j}-0{k}.tsv', 'r') as read_obj:
|
||||
csv_reader = csv.reader(read_obj, delimiter='\t')
|
||||
for row in csv_reader:
|
||||
if 'user' in row[0]:
|
||||
rows.append(row[1])
|
||||
except:
|
||||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
readData()
|
||||
#l = en.predict('Kup cztery wody')
|
||||
#print(l)
|
||||
|
||||
good = 0
|
||||
|
||||
for r in rows:
|
||||
l = en.predict(str(r))
|
||||
if l != []:
|
||||
good += 1
|
||||
|
||||
print(f'Accuracy: {good/len(rows)*100}%')
|
||||
|
||||
en.predict('rock and stone')
|
10
evaluation.md
Normal file
10
evaluation.md
Normal file
@ -0,0 +1,10 @@
|
||||
## Ewaluacja systemu przez użytkowników
|
||||
|
||||
System oceniło czworo użytkowników. Rozumienie systemu przez użytkownika zostało ocenione na średnio 4.0, jednak rozumienie użytkownika przez system na jedynie 2.25. Łatwość poszukiwania produktów, a także znalezienie odpowiedzi na pytania, ankietowani
|
||||
wycenili średnio na ocenę 3.0. Byli zadowoleni z tempa interakcji oraz komfortu rozmowy - średnia ocena to odpowiednio 5.0 oraz 4.0. Użytkownikom zabrakło kilku produktów, których poszukiwali, np. zupki chińskiej, coca-coli, parówek. System niestety nie posiadał funkcjonalności, których oczekiwali użytkownicy. Mimo to 3 na 4 użytkowników planuje używać systemu w przyszłości.
|
||||
|
||||
|
||||
|
||||
## Podsumowanie
|
||||
|
||||
Stworzony system posiada standardową architekturę systemu dialogowego. Poszczególne moduły odpowiedzialne za przekazywanie tekstu bądź ram, tworzone pojedynczo, realizowały zadania NLU, DM, DP oraz NLG. Problemtyczny okazała się kwestia połączenia systemu w całość, ponieważ poszczególne moduły różniły się sposobem działania. Z tego powodu nie zrealizowano wszystkich wymagań, założonych w początkowej dokumentacji, takich jak: dodawanie i usuwanie przedmiotów do koszyka, finalizacja zakupów czy obsługa płatności. Aktualnie system potrafi poinformować o produktach dostępnych w sklepie, a także sugerować dostępne promocje bądź produkty. Na tej podstawie, oraz przestawionej powyżej analizie ewaluacji, system uznano za projekt do dalszego rozwoju.
|
53
example_nlu.py
Normal file
53
example_nlu.py
Normal file
@ -0,0 +1,53 @@
|
||||
import jsgf
|
||||
from pathlib import Path
|
||||
import os
|
||||
|
||||
__location__ = Path().resolve()
|
||||
|
||||
book_grammar = jsgf.parse_grammar_file(os.path.join(__location__, "grammar3.jsgf"))
|
||||
book_grammar
|
||||
|
||||
|
||||
def get_dialog_act(rule):
|
||||
slots = []
|
||||
get_slots(rule.expansion, slots)
|
||||
return {'act': rule.grammar.name, 'slots': slots}
|
||||
|
||||
def get_slots(expansion, slots):
|
||||
if expansion.tag != '':
|
||||
slots.append((expansion.tag, expansion.current_match))
|
||||
return
|
||||
|
||||
for child in expansion.children:
|
||||
get_slots(child, slots)
|
||||
|
||||
if not expansion.children and isinstance(expansion, jsgf.NamedRuleRef):
|
||||
get_slots(expansion.referenced_rule.expansion, slots)
|
||||
|
||||
def nlu(utterance):
|
||||
matched = book_grammar.find_matching_rules(utterance)
|
||||
|
||||
if matched:
|
||||
return get_dialog_act(matched[0])
|
||||
else:
|
||||
return {'act': 'null', 'slots': []}
|
||||
|
||||
|
||||
def predict(utterance):
|
||||
utterance = utterance.lower()
|
||||
punctuation = '''!;:/?,.*'''
|
||||
|
||||
for i in utterance:
|
||||
if i in punctuation:
|
||||
utterance = utterance.replace(i, "")
|
||||
|
||||
|
||||
matched = book_grammar.find_matching_rules(utterance)
|
||||
nlu(utterance)
|
||||
|
||||
try:
|
||||
print(get_dialog_act(matched[0]))
|
||||
except:
|
||||
pass
|
||||
|
||||
return matched
|
39
grammar1.jsgf
Normal file
39
grammar1.jsgf
Normal file
@ -0,0 +1,39 @@
|
||||
#JSGF V1.0 UTF-8 pl;
|
||||
|
||||
grammar shopping;
|
||||
|
||||
public <command> = (dodaj | usuń | zaktualizuj | przeczytaj | kontynuuj | przejdź_do | sprawdź | zakończ);
|
||||
|
||||
<products> = (jajka | chleb | mleko | ser | woda | cukier | sól | mięso_wołowe | mięso_kurczak | mięso_indyk | mięso_wieprzowe | bułka_tarta | kajzerka);
|
||||
|
||||
<all_products> = (<products>);
|
||||
|
||||
<meat_types> = (mięso_wołowe | mięso_kurczak | mięso_indyk | mięso_wieprzowe);
|
||||
|
||||
<units> = (kg | dag | g | sztuki);
|
||||
|
||||
<cart_command> = (dodaj | usuń | zaktualizuj | przeczytaj | kontynuuj | przejdź_do | sprawdź | pusty_koszyk);
|
||||
|
||||
<question> = (jaka_jest_cena | kiedy_mogę_odebrać | jakie_są_dostępne_produkty | jaki_jest_stan_magazynowy | czy_chcę_zapłacić_online | jakie_są_opłaty | jakie_są_promocje | jakie_są_godziny_otwarcia);
|
||||
|
||||
<greeting> = (dzień dobry | cześć | witaj);
|
||||
|
||||
<list> = (<products> | <meat_types> | <units>);
|
||||
|
||||
<all_questions> = (<question>);
|
||||
|
||||
<all_cart_commands> = (<cart_command>);
|
||||
|
||||
public <dialog> = <greeting> <command> (<products> | <meat_types> | <units> | koszyk | żadne | <all_cart_commands> | <all_questions>);
|
||||
|
||||
<request> = dla jakiego rodzaju sklepów działa system | chcę kupić | zamówienie | potrzebuję zakupów | jakie sklepy oferuje system ;
|
||||
|
||||
<inform> = w naszej ofercie znajdują się produkty spożywcze | dodano <list> do koszyka | karta lojalnościowa założona pomyślnie | na numer telefonu zostanie wysłany sms z informacją gdy zakupy będą gotowe do odbioru | dziękujemy za skorzystanie ze sklepu Surykatka ;
|
||||
|
||||
<deny> = nie | nie ten | zmień | nie chcę | nie teraz | nie tak | cofnij | usuń <productname> <brandname> z listy;
|
||||
|
||||
<reqalts> = ale może coś innego | czy jest jakaś inna opcja ;
|
||||
|
||||
<affirm> = tak | zgoda | oczywiście | dokładnie | pewnie | jasne | dobrze | właśnie tak | ok | rozumiem ;
|
||||
|
||||
<bye> = do widzenia | dziękuję | miłego dnia | do zobaczenia ;
|
61
grammar2.jsgf
Normal file
61
grammar2.jsgf
Normal file
@ -0,0 +1,61 @@
|
||||
#JSGF V1.0;
|
||||
|
||||
grammar generalStore;
|
||||
|
||||
public <command> = <buyCommand> | <cartCommand> | <filterCommand> | <searchCommand> | <helpCommand> | <accountCommand> | <paymentCommand> | <shippingCommand> | <returnCommand> | <promoCommand> | <storeCommand> | <serviceCommand>;
|
||||
|
||||
<buyCommand> = (buy | purchase) <quantity> <product>;
|
||||
|
||||
<cartCommand> = (add | remove | edit | update | view | cancel | confirm) <itemAction> <item> in my cart;
|
||||
|
||||
<itemAction> = (item | items);
|
||||
|
||||
<item> = <quantity> <product>;
|
||||
|
||||
<quantity> = (a | an | two | three | four | five | six | seven | eight | nine);
|
||||
|
||||
<product> = <grocery> | <beverage> | <personalCare> | <cleaning> | <homeGoods> | <electronics>;
|
||||
|
||||
<grocery> = (bread | cereal | pasta | rice | beans | soup | canned food | snacks | cookies | candy | chocolate | condiments | spices);
|
||||
|
||||
<beverage> = (water | soda | juice | coffee | tea | energy drink | sports drink | beer | wine);
|
||||
|
||||
<personalCare> = (toothbrush | toothpaste | floss | mouthwash | soap | shampoo | conditioner | body wash | lotion | deodorant | razor | shaving cream | feminine hygiene | diapers | baby wipes);
|
||||
|
||||
<cleaning> = (laundry detergent | dish soap | all-purpose cleaner | glass cleaner | disinfectant | bleach | cleaning wipes | scrub brush | mop | broom | dustpan);
|
||||
|
||||
<homeGoods> = (towels | bedding | curtains | rugs | storage | hangers | trash bags | batteries | light bulbs | candles | pet food | cat litter);
|
||||
|
||||
<electronics> = (cell phone | tablet | laptop | headphones | speaker | charging cable | batteries | memory card);
|
||||
|
||||
<filterCommand> = filter by <filterType>;
|
||||
|
||||
<filterType> = (price low | price high | brand <brandName> | color <colorName> | size <sizeType> | rating <ratingType> | available);
|
||||
|
||||
<brandName> = (Coca-Cola | Pepsi | Tide | Kellogg's | Nestle | L'Oreal | Procter & Gamble | Samsung | Apple | Sony);
|
||||
|
||||
<colorName> = (red | blue | green | yellow | black | white | pink | purple | gray);
|
||||
|
||||
<sizeType> = (small | medium | large | extra large | XXL);
|
||||
|
||||
<ratingType> = (one star | two stars | three stars | four stars | five stars);
|
||||
|
||||
<searchCommand> = (search | find) <product>;
|
||||
|
||||
<helpCommand> = help me with <helpType>;
|
||||
|
||||
<helpType> = (my payment information | my order status | my account | my shipping information | my returns);
|
||||
|
||||
<accountCommand> = (manage my account | login to my account | sign in to my account | create an account);
|
||||
|
||||
<paymentCommand> = (manage my payment information | update my credit card information);
|
||||
|
||||
<shippingCommand> = (manage my shipping information | track my shipment | update my shipping address);
|
||||
|
||||
<returnCommand> = (check my return status | return an item);
|
||||
|
||||
<promoCommand> = (apply a promotion | redeem a gift card | use a coupon code);
|
||||
|
||||
<storeCommand> = (find a store near me | check store hours)
|
||||
|
||||
<serviceCommand> = (get customer service support | ask for help | report an issue | provide feedback | request a refund | contact us);
|
92
grammar3.jsgf
Normal file
92
grammar3.jsgf
Normal file
@ -0,0 +1,92 @@
|
||||
#JSGF V1.0 UTF-8 pl;
|
||||
|
||||
grammar zakupyOnline;
|
||||
|
||||
public <command> = [<greeting> {hello}] [<dwarfGreeting> {rocknstone}] [<polite>] [<commandType>{commandType}] [<item>{product}] [<rest> {rest}] [<bye> {bye}];
|
||||
|
||||
<commandType> = (<buyCommand> | <cartCommand> | <filterCommand> | <questionCommand> | <searchCommand> | <helpCommand> | <accountCommand> | <paymentCommand> | <shippingCommand> | <returnCommand> | <promoCommand> | <storeCommand> | <serviceCommand> | <affOrNegCommand>);
|
||||
|
||||
<buyCommand> = (kup | zakup | kupić | kupic | zakupić | zamówić | zamów | podać);
|
||||
|
||||
<affOrNegCommand> = (nie | tak) [<polite>] [posiadam];
|
||||
|
||||
<more> = jeszcze | do tego | dodatkowo;
|
||||
|
||||
<productCategoryInfoRequest> = [<affOrNegCommand>] [<polite>] [<any>] <quality> <product>;
|
||||
|
||||
<approveNoun> = bardzo | jaknajbardziej | chętnie | z chęcią;
|
||||
|
||||
<any> = jakiś | jakieś | jakąś;
|
||||
|
||||
<produktQualityGood> = dobre | dobry | dobrego | dobrą | dobrych | fajny | fajną | fajne | fajnych;
|
||||
|
||||
<polite> = (proszę | poproszę | chcę | chciałbym | chcialbym | dziękuję | dziekuje | dziękuje | dziekuję | dzięki | dzieki | super | wspaniale);
|
||||
|
||||
<greeting> = (dzień dobry | cześć | witaj);
|
||||
|
||||
<dwarfGreeting> = (rock and stone | rock and stone to the bone | rockity rock and stone | for karl | by the beard | yeah yeah rock and stone | if you dont rock and stone you aint coming home | stone and rock oh wait | did i hear a rock and stone);
|
||||
|
||||
<bye> = (do widzenia | cześć | pa | dziękuję | dziekuje | dziękuje | dziekuję | dzięki | dzieki | czesc | cześc| czesć | oki | okej | do zobaczenia | (to [byłoby] wszystko) | (to będzie wszystko))*;
|
||||
|
||||
<cartCommand> = (dodaj | usuń | edytuj | zaktualizuj | zobacz | anuluj | potwierdź | zapłacę | zapłacić | usunąć | edytować | zaktualizować | zobaczyć | anulować | dodać | potwierdzić | potwierdziłem);
|
||||
|
||||
<itemAction> = (artykuł | artykuły | składnik | składników | cena | ceny | cenę);
|
||||
|
||||
<item> = ([i | oraz] [<quantity>] [<itemAction>] [tych | do [zamówienia | koszyka] | jakiś | jakieś | te] [<quality>] [<quantityN>] <product>)*;
|
||||
|
||||
<quantity> = [(jeden | dwa | trzy | cztery | pięć | sześć | siedem | osiem | dziewięć | dziesięć)] [<quantityN>] [(2x | 3x | 4x | 5x | 6x)] [(kilka | kilo | kilogramów | kg | deko | dag | dekagramów | l | litrów | litry | litr | sztuk | pojemnik | pojemniki | opakowanie | opakowania | paczki | paczkę)];
|
||||
|
||||
<quality> = [(dobre | smaczne | pyszne | ładne | piękne | świeże | wyśmienite | niesamowite | epickie | wspaniałe)];
|
||||
|
||||
<product> = (<grocery> | <beverage> | <personalCare> | <cleaning> | <homeGoods> | <electronics> | <filterType>) [w promocji];
|
||||
|
||||
<grocery> = (ogórki [gruntowe] | ogórek [gruntowe] | ziemniaki [myte] | pomidor | warzywa | warzyw | masło [wyborowe] | owoce | owoców | (chleb [żytni] | chleba) | ((płatki | płatków) [śniadaniowe | śniadaniowych]) | makaron | ryż | fasola | (zupa | zupy) | konserwy | mąkę tortową | przekąski | ciastka | cukierki | czekolada | lajonki | przyprawy | (mleka | mleko [zagęszczone słodzone | zwykłe]) | [na] messer wat | jajka | (parówki | parówek) | ser | chipsy | zielona cebulka | chipsy lays zielona cebulka);
|
||||
|
||||
<beverage> = ((woda | wody) | (napoje gazowane) | sok | kawa | herbata | napoje energetyczne | napoje izotoniczne | piwo | wino | cola | polo cola | pepsi);
|
||||
|
||||
<personalCare> = (szczoteczka do zebow | pasta do zębów | nitki dentystyczne | płyny do płukania ust | mydło | szampon | odżywka | żel do kąpieli | balsam do ciała | dezodorant | maszynka do golenia | krem do golenia | podpaski | pieluchy | (perfumy | perfum) | cygaro | karme [dla kota] );
|
||||
|
||||
<cleaning> = (proszek do prania | płyny do mycia naczyn | uniwersalny środek czyszczący | płyny do czyszczenia szyb | środek dezynfekujący | wybielacz | chusteczki czyszczące | szczotka do czyszczenia | mop | miotła | szufelka);
|
||||
|
||||
<homeGoods> = (ręczniki | pościel | zasłony | dywany | pojemniki na przechowywanie | wieszaki | worki na śmieci | baterie | żarówki | świece | jedzenie dla zwierzat | zagęszczacz kociego piasku);
|
||||
|
||||
<electronics> = (telefon komórkowy | tablet | laptop | słuchawki | głośniki | ładowarki | baterie | karty pamięci);
|
||||
|
||||
<filterCommand> = filtruj według <filterType>;
|
||||
|
||||
<filterType> = (ceny rosnąco | ceny malejąco | (marka | marek) [<brandName>] | kolor <colorName> | rozmiar <sizeType> | ranking <ratingType> | dostępność | produkt | produktów);
|
||||
|
||||
<colorName> = (czerwony | niebieski | zielony | żółty | czarny | biały | różowy | fioletowy | szary);
|
||||
|
||||
<brandName> = (Samsung | Apple | Sony);
|
||||
|
||||
<sizeType> = (mały | średni | duży | bardzo duży | XXL);
|
||||
|
||||
<ratingType> = (jedna gwiazdka | dwie gwiazdki | trzy gwiazdki | cztery gwiazdki | pięć gwiazdek);
|
||||
|
||||
<searchCommand> = (szukaj | szukam | znajdź);
|
||||
|
||||
<questionCommand> = (jakiego | jakie | jaki | czy | są | (w czym)) [(macie [dostępne] | mamy | masz | to | możesz | mógłbyś)] [podać | w | mi] [(nazwa | nazwy | pomóc | pomoc)];
|
||||
|
||||
<rest> = (swojej ofercie | są dostępne | [to] [będzie] wszystko | bardzo chętnie | <quantityN> | potwierdzone | potwierdzam [intensywnie] | (<quantityN>-<quantityN>));
|
||||
|
||||
<helpCommand> = (pomóż mi z | pomóż mi) <helpType>;
|
||||
|
||||
<helpType> = (informacje o płatości | mój stan zamówienia | moje konto | informacje o dostawie | moje zwroty);
|
||||
|
||||
<accountCommand> = (ustawienia konta | zaloguj | zarejestruj się | załóż konto);
|
||||
|
||||
<paymentCommand> = [w takim razie | będzie] (metody płatności | edytuj kartę kredytową | przejść [do] [płatności] | przejdź [do] [płatności] | zapłacę [online] [kartą] | online [przelewem] | [gotówka] [przy odbiorze] | [to zapłacę] gotówką [przy odbiorze] | blik | blikiem | (odbiór | odbiorę) (osobisty | osobiście) | dostawa do paczkomatu);
|
||||
|
||||
<shippingCommand> = (edytuj informacje o dostawie | śledź moje zamówienie | aktualizuj mój adres);
|
||||
|
||||
<returnCommand> = (sprawdź stan zwrotu | zwróć artykuł);
|
||||
|
||||
<promoCommand> = [<affOrNegCommand>] [<polite>] [użyć | skorzystać] [ze|z] (zniżki | karty podarunkowej | kuponu | ([a] co jest) | (jakie produkty są) w promocji);
|
||||
|
||||
<storeCommand> = (znajdź sklep obok mnie | sprawdź godziny otwarcia sklepu);
|
||||
|
||||
<serviceCommand> = (obsługa klienta | zapytać pomoc | zgłosić problem | podzielić się opinią | żądać zwrotu | skontaktować się);
|
||||
|
||||
<quantityN> = [(1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)*];
|
||||
|
852
product_db.json
Normal file
852
product_db.json
Normal file
@ -0,0 +1,852 @@
|
||||
{
|
||||
"database":{
|
||||
"product":[
|
||||
{
|
||||
"name":"banan",
|
||||
"type":"owoc",
|
||||
"brand":"banpol",
|
||||
"price":"9.37",
|
||||
"price_range": "tani",
|
||||
"quantity":"1 kg",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"pomarańcza",
|
||||
"type":"owoc",
|
||||
"brand":"pomarańpol",
|
||||
"price":"24.37",
|
||||
"price_range": "drogi",
|
||||
"quantity":"1 kg",
|
||||
"quality":"premium"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"avokado",
|
||||
"type":"owoc",
|
||||
"brand":"avokadpol",
|
||||
"price":"21.37",
|
||||
"price_range": "drogi",
|
||||
"quantity":"1szt",
|
||||
"quality":"premium"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"pomidor",
|
||||
"type":"warzywo",
|
||||
"brand":"warzywpol",
|
||||
"price_range":"tani",
|
||||
"price":"15.37",
|
||||
"quantity":"1 kg",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"cukinia",
|
||||
"type":"warzywo",
|
||||
"brand":"warzywpol",
|
||||
"price_range":"tani",
|
||||
"price":"8.37",
|
||||
"quantity":"1 kg",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"ogórek",
|
||||
"type":"warzywo",
|
||||
"brand":"warzywpol",
|
||||
"price_range":"tani",
|
||||
"price":"11.37",
|
||||
"quantity":"1 kg",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"papryka",
|
||||
"type":"warzywo",
|
||||
"brand":"warzywpol",
|
||||
"price_range":"tani",
|
||||
"price":"15.37",
|
||||
"quantity":"1 kg",
|
||||
"quality":"premium"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"ziemniak",
|
||||
"type":"warzywo",
|
||||
"brand":"warzywpol",
|
||||
"price_range":"tani",
|
||||
"price":"15.37",
|
||||
"quantity":"1 kg",
|
||||
"quality":"premium"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"cebula",
|
||||
"type":"warzywo",
|
||||
"brand":"warzywpol",
|
||||
"price_range":"tani",
|
||||
"price":"2.37",
|
||||
"quantity":"1 kg",
|
||||
"quality":"premium"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"lód",
|
||||
"type":"produkty mrożone",
|
||||
"brand":"lodowa",
|
||||
"price_range":"tani",
|
||||
"price":"2.37",
|
||||
"quantity":"1 kg",
|
||||
"quality":"premium"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"iPhone",
|
||||
"type":"telefon",
|
||||
"brand":"Ejpl",
|
||||
"price":"420",
|
||||
"quantity":"1 szt",
|
||||
"quality":"premium"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Galaxy s23",
|
||||
"type":"telefon",
|
||||
"brand":"Samsung",
|
||||
"price":"600",
|
||||
"quantity":"1 szt",
|
||||
"quality":"premium"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"RedBull",
|
||||
"type":"energol",
|
||||
"brand":"RedBull",
|
||||
"price":"0.69",
|
||||
"quantity":"330ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Tiger",
|
||||
"type":"energol",
|
||||
"brand":"Tiger",
|
||||
"price":"0.79",
|
||||
"quantity":"330ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Sok pomarańczowy",
|
||||
"type":"napój",
|
||||
"brand":"Sokpol",
|
||||
"price_range":"drogi",
|
||||
"price":"4,56",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Sok jabłkowy",
|
||||
"type":"napój",
|
||||
"brand":"Sokpol",
|
||||
"price_range":"drogi",
|
||||
"price":"10,56",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Sok multiwitamina",
|
||||
"type":"napój",
|
||||
"brand":"Sokpol",
|
||||
"price_range":"tani",
|
||||
"price":"5,78",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"napój aloesowy",
|
||||
"type":"napój",
|
||||
"brand":"Sokpol",
|
||||
"price_range":"tani",
|
||||
"price":"8,78",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name":"cziperki zielona cebulka",
|
||||
"type":"przekąski",
|
||||
"brand":"lays",
|
||||
"price_range":"drogi",
|
||||
"price":"8,78",
|
||||
"quantity":"300g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"chipsy",
|
||||
"type":"przekąski",
|
||||
"brand":"lays",
|
||||
"price_range":"drogi",
|
||||
"price":"8,78",
|
||||
"quantity":"300g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"cziperki papryka",
|
||||
"type":"przekąski",
|
||||
"brand":"lays",
|
||||
"price_range":"drogi",
|
||||
"price":"8,78",
|
||||
"quantity":"300g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"6-down",
|
||||
"type":"napój gazowany",
|
||||
"brand":"nappol",
|
||||
"price_range":"tani",
|
||||
"price":"7,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Bourbon Gallactines",
|
||||
"type":"alkohol",
|
||||
"brand":"Planeta alkoholi",
|
||||
"price_range":"drogi",
|
||||
"price":"75,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"piwo",
|
||||
"type":"alkohol",
|
||||
"brand":"Planeta alkoholi",
|
||||
"price_range":"drogi",
|
||||
"price":"5,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Kvazarr 9% (wino z planety Gargantelian) ",
|
||||
"type":"wino białe",
|
||||
"brand":"Planeta alkoholi",
|
||||
"price_range":"drogi",
|
||||
"price":"12,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Yqromi 11% (wino z planety C'kalger)",
|
||||
"type":"wino białe",
|
||||
"brand":"Planeta alkoholi",
|
||||
"price_range":"drogi",
|
||||
"price":"14,59",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Orzeł_13 13% (wino od Gwiezdnej Floty)",
|
||||
"type":"wino białe",
|
||||
"brand":"Planeta alkoholi",
|
||||
"price_range":"drogi",
|
||||
"price":"25,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name":"Kosmiczny baron 15% (wino regionalne)",
|
||||
"type":"wino czerwone",
|
||||
"brand":"Planeta alkoholi",
|
||||
"price_range":"drogi",
|
||||
"price":"18,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Czarna dziura 18% (wino regionalne)",
|
||||
"type":"wino czerwone",
|
||||
"brand":"Planeta alkoholi",
|
||||
"price_range":"drogi",
|
||||
"price":"35,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Ciekły Bismor 19% (wino z planety Hoxxes IV)",
|
||||
"type":"wino czerwone",
|
||||
"brand":"Planeta alkoholi",
|
||||
"price_range":"drogi",
|
||||
"price":"69,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"cola",
|
||||
"type":"napój gazowany",
|
||||
"brand":"nappol",
|
||||
"price_range":"tani",
|
||||
"price":"4,99",
|
||||
"quantity":"330ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"cola light",
|
||||
"type":"napój gazowany",
|
||||
"brand":"nappol",
|
||||
"price_range":"tani",
|
||||
"price":"4,99",
|
||||
"quantity":"330ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"cola",
|
||||
"type":"napój gazowany",
|
||||
"brand":"nappol",
|
||||
"price_range":"tani",
|
||||
"price":"9,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"cola light",
|
||||
"type":"napój gazowany",
|
||||
"brand":"nappol",
|
||||
"price_range":"tani",
|
||||
"price":"9,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"słoneczny wiatrak",
|
||||
"type":"napój gazowany",
|
||||
"brand":"nappol",
|
||||
"price_range":"tani",
|
||||
"price":"5,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"masło",
|
||||
"type":"nabiał",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"drogi",
|
||||
"price":"8,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"ser żółty gołda",
|
||||
"type":"nabiał",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"drogi",
|
||||
"price":"8,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"ser feta",
|
||||
"type":"nabiał",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"drogi",
|
||||
"price":"8,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"ser pleśniowy",
|
||||
"type":"nabiał",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"drogi",
|
||||
"price":"10,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"mleko",
|
||||
"type":"nabiał",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"drogi",
|
||||
"price":"4,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"jogurt",
|
||||
"type":"nabiał",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"tani",
|
||||
"price":"3,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"mleko zagęszczone",
|
||||
"type":"nabiał",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"drogi",
|
||||
"price":"4,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"jaja",
|
||||
"type":"nabiał",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"drogi",
|
||||
"price":"8,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name":"mleko migdałowe",
|
||||
"type":"napoje roślinne",
|
||||
"brand":"nabiałpol",
|
||||
"price_range":"drogi",
|
||||
"price":"9,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Cyberwizor Pandemonic",
|
||||
"type":"RTV",
|
||||
"brand":"Cyberwizor RTV",
|
||||
"price_range":"drogi",
|
||||
"price":"2222,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Cyberwizor Pandemonic",
|
||||
"type":"RTV",
|
||||
"brand":"Cyberwizor RTV",
|
||||
"price_range":"drogi",
|
||||
"price":"2222,99",
|
||||
"quantity":"500ml",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"pizza Gallarita",
|
||||
"type":"pizza",
|
||||
"brand":"Galaktyczna Flota",
|
||||
"price_range":"tani",
|
||||
"price":"8,78",
|
||||
"quantity":"360g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"pizza Kosmita",
|
||||
"type":"pizza",
|
||||
"brand":"Galaktyczna Flota",
|
||||
"price_range":"tani",
|
||||
"price":"8,78",
|
||||
"quantity":"360g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"pizza Meteoryt",
|
||||
"type":"pizza",
|
||||
"brand":"Galaktyczna Flota",
|
||||
"price_range":"tani",
|
||||
"price":"8,78",
|
||||
"quantity":"360g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"pizza Hawajska Dla Wszystkich",
|
||||
"type":"pizza",
|
||||
"brand":"Galaktyczna Flota",
|
||||
"price_range":"tani",
|
||||
"price":"8,78",
|
||||
"quantity":"360g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"karma dla papug",
|
||||
"type":"karma",
|
||||
"brand":"Galaktyczna Flota",
|
||||
"price_range":"tani",
|
||||
"price":"8,78",
|
||||
"quantity":"360g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"karma dla kota",
|
||||
"type":"karma",
|
||||
"brand":"Galaktyczna Flota",
|
||||
"price_range":"tani",
|
||||
"price":"12,78",
|
||||
"quantity":"360g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"mięso mielone",
|
||||
"type":"mięso",
|
||||
"brand":"miespol",
|
||||
"price_range":"tani",
|
||||
"price":"10,78",
|
||||
"quantity":"400g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"mięso wołowe",
|
||||
"type":"mięso",
|
||||
"brand":"miespol",
|
||||
"price_range":"tani",
|
||||
"price":"12,78",
|
||||
"quantity":"400g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"parówki",
|
||||
"type":"mięso",
|
||||
"brand":"miespol",
|
||||
"price_range":"tani",
|
||||
"price":"6,78",
|
||||
"quantity":"400g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"kiełbasa",
|
||||
"type":"mięso",
|
||||
"brand":"miespol",
|
||||
"price_range":"tani",
|
||||
"price":"9,78",
|
||||
"quantity":"400g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"szynka",
|
||||
"type":"mięso",
|
||||
"brand":"miespol",
|
||||
"price_range":"tani",
|
||||
"price":"7,78",
|
||||
"quantity":"400g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"mięso z kurczaka",
|
||||
"type":"mięso",
|
||||
"brand":"miespol",
|
||||
"price_range":"tani",
|
||||
"price":"6,78",
|
||||
"quantity":"400g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"mięso z indyka",
|
||||
"type":"mięso",
|
||||
"brand":"miespol",
|
||||
"price_range":"tani",
|
||||
"price":"12,78",
|
||||
"quantity":"400g",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"bułka tarta",
|
||||
"type":"mąki",
|
||||
"brand":"chlebpol",
|
||||
"price_range":"tani",
|
||||
"price":"2,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"płatki owsiane",
|
||||
"type":"płatki",
|
||||
"brand":"chlebpol",
|
||||
"price_range":"tani",
|
||||
"price":"4,78",
|
||||
"quantity":"1kg",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"płatki śniadaniowe",
|
||||
"type":"płatki",
|
||||
"brand":"chlebpol",
|
||||
"price_range":"tani",
|
||||
"price":"6,78",
|
||||
"quantity":"1kg",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name":"mąka tortowa",
|
||||
"type":"mąki",
|
||||
"brand":"chlebpol",
|
||||
"price_range":"tani",
|
||||
"price":"2,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"bułka kajzerka",
|
||||
"type":"pieczywo",
|
||||
"brand":"chlebpol",
|
||||
"price_range":"tani",
|
||||
"price":"0,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"chleb",
|
||||
"type":"pieczywo",
|
||||
"brand":"chlebpol",
|
||||
"price_range":"tani",
|
||||
"price":"3,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name":"bagietka",
|
||||
"type":"pieczywo",
|
||||
"brand":"chlebpol",
|
||||
"price_range":"tani",
|
||||
"price":"2,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"makaron",
|
||||
"type":"produkty pszenne",
|
||||
"brand":"chlebpol",
|
||||
"price_range":"tani",
|
||||
"price":"5,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"garam masala",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"3,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"sos sojowy",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"11,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"sos rybny",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"11,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"sriracha",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"7,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"ocet ryżowy",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"7,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"berbere",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"35,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"gałka muszkatołowa",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"5,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"zioła zamiast soli",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"11,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name":"bazylia",
|
||||
"type":"przyprawy",
|
||||
"brand":"przyprawpol",
|
||||
"price_range":"tani",
|
||||
"price":"4,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"pasta z tamaryndowca",
|
||||
"type":"pasty",
|
||||
"brand":"pastpol",
|
||||
"price_range":"tani",
|
||||
"price":"9,78",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Vitolio",
|
||||
"type":"perfumy",
|
||||
"brand":"Vitolio",
|
||||
"price_range":"tani",
|
||||
"price":"23,99",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Jaushiu",
|
||||
"type":"perfumy",
|
||||
"brand":"Jaushiu",
|
||||
"price_range":"tani",
|
||||
"price":"53,99",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Polini",
|
||||
"type":"perfumy",
|
||||
"brand":"Polini",
|
||||
"price_range":"tani",
|
||||
"price":"73,99",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"Marcini",
|
||||
"type":"perfumy",
|
||||
"brand":"Marcini",
|
||||
"price_range":"tani",
|
||||
"price":"33,99",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"cygaro",
|
||||
"type":"tytoń",
|
||||
"brand":"papyrochy",
|
||||
"price_range":"tani",
|
||||
"price":"33,99",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"czekolada",
|
||||
"type":"słodycze",
|
||||
"brand":"słodyczpol",
|
||||
"price_range":"tani",
|
||||
"price":"5,99",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
},
|
||||
|
||||
{
|
||||
"name":"żelki",
|
||||
"type":"słodycze",
|
||||
"brand":"słodyczpol",
|
||||
"price_range":"tani",
|
||||
"price":"6,99",
|
||||
"quantity":"1szt",
|
||||
"quality":"exquisite"
|
||||
}
|
||||
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
187
requirements-analisys.md
Normal file
187
requirements-analisys.md
Normal file
@ -0,0 +1,187 @@
|
||||
## Wymagania do systemu:
|
||||
|
||||
* rozpoczęcie zakupów,
|
||||
* informowanie o promocjach/sugerowanie dostępnych promocji,
|
||||
* finalizacja zakupów,
|
||||
* anulowanie złożonego zamówienia,
|
||||
* dodawanie i usuwanie przedmiotów do koszyka,
|
||||
* proponowanie podobnych produktów (jeśli nie ma danego produktu w ofercie),
|
||||
* obsługa bonów/karty rabatowej,
|
||||
* zapisywanie listy zakupów na później,
|
||||
* wczytywanie listy zakupów,
|
||||
* zwrot produktu.
|
||||
|
||||
## Zadanie 1: Rozpoczęcie zakupów.
|
||||
|
||||
> **system:** Witamy w systemie zakupów sieci sklepów spożywczych *"Galaktyczny Skład"*, co chcesz dzisiaj zamówić? \
|
||||
**user:** Chciałbym zamówić parówki z serem *"Jupiterki"*, makaron świderki, oraz czteropak piwa *"Galaktatra"*. \
|
||||
**system:** Do koszyka zostały dodane: parówki z serem, makaron świderki oraz 4-pak piwa *"Tatra"*. Czy chcesz coś dodać jeszcze? ***W promocji mamy czipsy "Lejs" o smaku SURIMI***. \
|
||||
**user:** To będzie wszystko. \
|
||||
**system:** Dziękujemy, złożone zamówienie zostało przyjęte do realizacji.
|
||||
|
||||
## Zadanie 2: Informowanie o promocjach/sugerowanie dostępnych promocji.
|
||||
|
||||
> **user:** Dodaj do koszyka masło 82% *"Galaktyczna dolina"*. \
|
||||
**system:** Do koszyka dodano: masło 82% *"Galaktyczna dolina"*. ***Obecnie mamy promocje 3+1 dla masła 82% "Galaktylos", czy chciałbyś/chciałabyś skorzystać z promocji?*** \
|
||||
**user:** Ile bejmów na to wydam? \
|
||||
**system:** ***Przy zakupie masła "Galaktylos" w promocji 3+1 zapłacisz 20 cebulionów! TANIO JAK W 2021 ROKU!*** Czy chcesz wymienić produkt masło 82% *"Galaktyczna dolina"* na masło *"Galaktylos"* w promocji 3+1? \
|
||||
**user:** Nie. \
|
||||
**system:** Dobrze, czy chcesz kupić coś jeszcze? \
|
||||
**...**
|
||||
|
||||
## Zadanie 3: Finalizacja zakupów.
|
||||
|
||||
> **...** \
|
||||
**user:** To będzie wszystko. \
|
||||
**system:** Chcesz przejśc do płatności? \
|
||||
**user:** Tak. \
|
||||
**system:** Koszyk, zapisany, czy chcesz abym przeczytał wszystkie artykuły w koszyku? \
|
||||
**user:** Nie. \
|
||||
**system:** Suma płatności - 420 cebulionów już ze zniżką *"0 VAT"* od partii rządzącej! Chwała wielkiej partii! Czy posiadasz kartę klienta? \
|
||||
**user:** Tak. \
|
||||
**system:** Poprosze numer karty lub numer telefonu, jeśli był podany przy rejestracji. \
|
||||
**user:** 420-213-769. \
|
||||
**system:** Dodatkowe zniżki zostały naliczone. Suma zniżek: 0 cebulionów. Suma płatności ze zniżkami - 420 cebulionów. Czy chcesz zakończyć zakupy? \
|
||||
**user:** Tak. \
|
||||
**system:** Dobrze, zamówienie zostało przyjęte ro realizacji, z twojego konta zostanie pobrane 420 cebulionów. \
|
||||
**system(optional):** Łaczenie z bankiem. \
|
||||
**system(optional):** Autoryzacja płatności. \
|
||||
**system:** Zakupy zostały opłacone, dziękujemy za korzystanie z usług sklepu *"Galaktyczny Skład"*.
|
||||
|
||||
## Zadanie 4: Anulowanie złożonego zamówienia.
|
||||
|
||||
> **user:** Chciałbym anulować ostatnie zamówienie. \
|
||||
**system:** Podaj numer karty klienta lub numer telefonu. \
|
||||
**user:** 420-213-769. \
|
||||
**system:** Chcesz anulować zamówienie numer 1, 2 czy 3. \
|
||||
**user:** Zamówienie numer 2. \
|
||||
**system:** Czy potwierdzasz anulowanie zamówienia numer 2? \
|
||||
**user:** Tak, anuluj zamówienie. \
|
||||
**system:** Zamówienie anulowano. \
|
||||
\
|
||||
***lub*** \
|
||||
\
|
||||
**system:** Chcesz anulować zamówienie numer 1, 2 czy 3? \
|
||||
**user:** Zamówienie numer 1. \
|
||||
**system:** Zamówienie numer 1 jest już w realizacji. Za anulowanie tego zamówienia nie otrzymasz zwrotu gotówki. Czy potwierdzasz anulowanie zamówienia numer 1? \
|
||||
**user:** Nie. \
|
||||
**system:** Zamówienie nie zostało anulowane. Czy coś jeszcze mogę dla Ciebie zrobić?
|
||||
|
||||
## Zadanie 5: Dodawanie przedmiotów do koszyka oraz ich usuwanie.
|
||||
|
||||
> **user:** Prosze dodać parówki *"Jupiterki"*. \
|
||||
**system:** Parówki *"Jupiterki"*: Classic" zostały dodane do twojego koszyka. Kontynuować? \
|
||||
**user:** Dodaj do tego wódkę *"Marsówka"*. \
|
||||
**system:** Wódka *"Marsówka"* została dodana to twojego koszyka. \
|
||||
**user:** Co mam w koszyku? \
|
||||
**system:** Zawartość koszyka:
|
||||
* napój gazowany *"Cosmic Coke"*,
|
||||
* awokado,
|
||||
* zamrożona pizza *"Hawajska: Dla wszyskich"* marki *"Kosmiczna Flota"*,
|
||||
* ciasto w kostce *"Czarna dziura"*,
|
||||
* parówki *"Jupiterki: Classic"*,
|
||||
* wódka *"Marsówka"*.
|
||||
> **user:** Proszę usunąć awokado. \
|
||||
**system:** Awokado zostało usunięte. \
|
||||
**user:** A może nie, niech awokado zostanie. \
|
||||
**system:** Awokado zostało przywrócone do twojego koszyka. Chcesz kontynuować zakupy? \
|
||||
**user:** Nie. \
|
||||
**system:** Chcesz przejść do płatności? \
|
||||
**user:** Tak. \
|
||||
**system:** Suma zakupów łącznie wyniesie 2137 cebulionów. \
|
||||
**user:** Proszę jednak usunąć awokado. \
|
||||
**system:** Wracam do trybu edycji koszyka. Awokado zostało usunięte. Czy chcesz kontynuować zakupy? \
|
||||
**user:** Nie, chcę zapłacić. \
|
||||
**system:** Suma zakupów łącznie wyniesie 69 cebulionów. \
|
||||
**...**
|
||||
|
||||
## Zadanie 6: Proponowanie podobnych produktów w przypadku braku oczekiwanego.
|
||||
|
||||
> **user:** Proszę dodać do koszyka batonik *"Mars"*. \
|
||||
**system:** Aktualnie batonik *"Mars"* jest niedostępny, proponuję batoniki: *"Bounty"*, *"Twix"*, *"Lion"*. \
|
||||
**user:** Dobrze, poproszę *"Lion"*. \
|
||||
**system:** Batonik *"Lion"* został dodany do koszyka. \
|
||||
**...**
|
||||
|
||||
## Zadanie 7: Obsługa bonów/karty rabatowej.
|
||||
|
||||
> **system:** Czy posiadasz bon lub kartę rabatową? \
|
||||
**user:** Tak. \
|
||||
**system:** Proszę o podanie numeru bonu lub karty. \
|
||||
**user:** JB21C3C7. \
|
||||
**system:** Dziękuję. Twój rabat został naliczony. \
|
||||
**...** \
|
||||
\
|
||||
***lub*** \
|
||||
\
|
||||
**system:** Czy posiadasz bon lub kartę rabatową? \
|
||||
**user:** Nie. \
|
||||
**...**
|
||||
|
||||
## Zadanie 8: Zapisywanie listy zakupów na później/wczytywanie listy zakupów.
|
||||
|
||||
> **user:** Prosze dodać parówki *"Jupiterki"*. \
|
||||
**system:** Parówki *"Jupiterki: Classic"* zostały dodane do twojego koszyka. Kontynuować? \
|
||||
**user:** Dodaj do tego wódkę *"Marsówka"*. \
|
||||
**system:** Wódka *"Marsówka"* została dodana to twojego koszyka. \
|
||||
**user:** Co mam w koszyku? \
|
||||
**system:** Zawartość koszyka:
|
||||
* napój gazowany *"Cosmic Coke"*,
|
||||
* awokado,
|
||||
* zamrożona pizza *"Hawajska: Dla wszyskich"* marki *"Kosmiczna Flota"*,
|
||||
* ciasto w kostce *"Czarna dziura"*,
|
||||
* parówki *"Jupiterki: Classic"*,
|
||||
* wódka *"Marsówka"*.
|
||||
> **user:** Proszę usunąć awokado. \
|
||||
**system:** Awokado zostało usunięte. \
|
||||
**user:** A może nie, niech awokado zostanie. \
|
||||
**system:** Awokado zostało przywrócone do twojego koszyka. Chcesz kontynuować zakupy? \
|
||||
**user:** Nie. \
|
||||
**system:** Chcesz przejść do płatności? \
|
||||
**user:** Nie. zapisz mój koszyk. \
|
||||
**system:** Do konta o numerze 420-213-769 zapisuje zawartość koszyka z numerem 5:
|
||||
* napój gazowany *"Cosmic Coke"*,
|
||||
* awokado,
|
||||
* zamrożona pizza *"Hawajska: Dla wszyskich"* marki *"Kosmiczna Flota"*,
|
||||
* ciasto w kostce *"Czarna dziura"*,
|
||||
* parówki *"Jupiterki: Classic"*,
|
||||
* wódka *"Marsówka"*.
|
||||
> **user:** To pa. \
|
||||
**...** \
|
||||
**user:** Chce zreazlizować zapisany koszyk. \
|
||||
**system:** Podaj numer konta lub numer telefonu. \
|
||||
**user:** 420-213-769. \
|
||||
**system:** Dla tego konta mam zapisane trzy koszyki: 5, 7, 11. który koszyk chcesz zrealizować? \
|
||||
**user:** Ten z avokado. \
|
||||
**system:** Avokado znajduje się w 5 i 11 koszyku. Który koszyk chcesz zrealizować? \
|
||||
**user:** Co znajduje się w koszyku 5? \
|
||||
**system:**
|
||||
* napój gazowany *"Cosmic Coke"*,
|
||||
* awokado,
|
||||
* zamrożona pizza *"Hawajska: Dla wszyskich"* marki *"Kosmiczna Flota"*,
|
||||
* ciasto w kostce *"Czarna dziura"*,
|
||||
* parówki *"Jupiterki: Classic"*,
|
||||
* wódka *"Marsówka"*.
|
||||
> **user:** Chce zrealizować ten koszyk. \
|
||||
**system:** Przechodzę do płatności za koszyk numer 5. \
|
||||
**...**
|
||||
|
||||
## Zadanie 9: Zwrot produktu.
|
||||
|
||||
> **user:** Dzień dobry, ser *"Gouda"*, który niedawno zakupiłem u Państwa w sklepie okazał się spleśniały. \
|
||||
**system:** Dzień dobry, w takiej sytuacji możliwy jest zwrot pieniędzy lub wybór innego produktu w podobnej cenie. \
|
||||
**user:** Dobrze, poproszę o wymiane produktu na ser *"Cheddar"* lub ser *"Edamski"*. \
|
||||
**system:** Dostępne są oba sery, proszę o wybór jednego. \
|
||||
**user:** Niech będzie ser *"Cheddar"*. \
|
||||
**system:** Proszę o podanie numeru zamówienia (**optional:** oraz dowodu wadliwego produktu, który zostanie sprawdzony przez pracownika sklepu/innego bota). \
|
||||
**user:** XYZ (**optional:** gouda.jpg). \
|
||||
**...** \
|
||||
**system:** Reklamacja została przyjęta. \
|
||||
**...**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
88
system1.py
Normal file
88
system1.py
Normal file
@ -0,0 +1,88 @@
|
||||
|
||||
class NaturalLanguageUnderstanding:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def understand(self, text):
|
||||
user_act = {}
|
||||
user_act["type"] = []
|
||||
|
||||
if any(substring in text.lower() for substring in ("cześć", "witaj", "siema", "elo", "hej", "czesc", "czesć", "cześc")):
|
||||
user_act["type"].append("hello()")
|
||||
if any(substring in text.lower() for substring in ("jak sie nazywasz",
|
||||
"jak się nazywasz",
|
||||
"jak masz na imie",
|
||||
"jak masz na imię")):
|
||||
user_act["type"].append("request(name)")
|
||||
if text.lower() in ("rock and stone!", "rock and stone to the bone!", "by the beard!", "for karl!", "if you don't rock and stone, you ain't coming home!", "rock and stone yeeaaah!", "rock and stone - it never gets old!", "stone!"):
|
||||
user_act["type"].append("inform(rock_n_stone = True)")
|
||||
if not user_act["type"]:
|
||||
user_act["type"].append("null()")
|
||||
|
||||
return user_act
|
||||
|
||||
|
||||
class DialogueStateTracker:
|
||||
def __init__(self):
|
||||
self.state = "unknown"
|
||||
|
||||
def update(self, user_act):
|
||||
if any(item == "hello()" in user_act["type"] for item in user_act["type"]):
|
||||
self.state = "say_hello"
|
||||
if any(item == "request(name)" in user_act["type"] for item in user_act["type"]):
|
||||
self.state = "told_name"
|
||||
if any(item == "inform(rock_n_stone = True)" in user_act["type"] for item in user_act["type"]):
|
||||
self.state = "rock_n_stone"
|
||||
if any(item == "null()" in user_act["type"] for item in user_act["type"]):
|
||||
self.state = "unknown"
|
||||
|
||||
return self.state
|
||||
|
||||
|
||||
|
||||
class DialoguePolicy:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def respond(self, state):
|
||||
|
||||
sys_act = {}
|
||||
sys_act["type"] = []
|
||||
|
||||
|
||||
if state == "say_hello":
|
||||
sys_act["type"].append("welcomemsg()")
|
||||
if state == "told_name":
|
||||
sys_act["type"].append("inform(name = NAME)")
|
||||
if state == "rock_n_stone":
|
||||
sys_act["type"].append("inform(rock_n_stone = True)")
|
||||
if not sys_act["type"]:
|
||||
sys_act["type"].append("canthear()")
|
||||
|
||||
return sys_act
|
||||
|
||||
|
||||
class NaturalLanguageGeneration:
|
||||
def generate(self, sys_act):
|
||||
if any(item == "welcomemsg()" in sys_act["type"] for item in sys_act["type"]):
|
||||
return "Cześć."
|
||||
elif any(item == "inform(name = NAME)" in sys_act["type"] for item in sys_act["type"]):
|
||||
return "Cześć, mam na imię Ropuchomor."
|
||||
elif any(item == "inform(rock_n_stone = True)" in sys_act["type"] for item in sys_act["type"]):
|
||||
return "Rock and Stone!"
|
||||
else:
|
||||
return "Przepraszam ale nie rozumiem."
|
||||
|
||||
|
||||
nlu = NaturalLanguageUnderstanding()
|
||||
dst = DialogueStateTracker()
|
||||
dpol = DialoguePolicy()
|
||||
nlg = NaturalLanguageGeneration()
|
||||
|
||||
while True:
|
||||
user_utterance = input("User: ")
|
||||
user_act = nlu.understand(user_utterance)
|
||||
dialog_state = dst.update(user_act)
|
||||
sys_act = dpol.respond(dialog_state)
|
||||
sys_utterance = nlg.generate(sys_act)
|
||||
print("System: " + sys_utterance)
|
245
system2.py
Normal file
245
system2.py
Normal file
@ -0,0 +1,245 @@
|
||||
import json
|
||||
import random
|
||||
import jsgf
|
||||
from pathlib import Path
|
||||
import os
|
||||
from collections import defaultdict
|
||||
from convlab.policy.policy import Policy
|
||||
|
||||
__location__ = Path().resolve()
|
||||
|
||||
book_grammar = jsgf.parse_grammar_file(os.path.join(__location__, "grammar3.jsgf"))
|
||||
|
||||
class DST():
|
||||
def __init__(self):
|
||||
self.state = json.load(open('dictionary.json'))
|
||||
|
||||
def update(self, user_act=None):
|
||||
for intent, domain, slot, value in user_act:
|
||||
domain = domain.lower()
|
||||
intent = intent.lower()
|
||||
slot = slot.lower()
|
||||
|
||||
if domain not in self.state['belief_state']:
|
||||
continue
|
||||
|
||||
if intent == 'inform':
|
||||
if slot == 'none' or slot == '':
|
||||
continue
|
||||
|
||||
domain_dic = self.state['belief_state'][domain]
|
||||
|
||||
if slot in domain_dic:
|
||||
self.state['belief_state'][domain][slot] = value
|
||||
|
||||
elif intent == 'request':
|
||||
if domain not in self.state['request_state']:
|
||||
self.state['request_state'][domain] = {}
|
||||
if slot not in self.state['request_state'][domain]:
|
||||
self.state['request_state'][domain][slot] = 0
|
||||
|
||||
elif intent == 'hello':
|
||||
pass
|
||||
|
||||
self.state['user_act'] = user_act
|
||||
return self.state
|
||||
|
||||
def init_session(self):
|
||||
self.state = json.load(open('dictionary.json'))
|
||||
|
||||
|
||||
class SimpleRulePolicy(Policy):
|
||||
def __init__(self):
|
||||
Policy.__init__(self)
|
||||
self.db = json.load(open('product_db.json'))
|
||||
|
||||
def predict(self, state):
|
||||
self.results = []
|
||||
system_action = defaultdict(list)
|
||||
user_action = defaultdict(list)
|
||||
system_acts = []
|
||||
for intent, domain, slot, value in state['user_act']:
|
||||
user_action[(domain.lower(), intent.lower())].append((slot.lower(), value))
|
||||
for user_act in user_action:
|
||||
self.update_system_action(user_act, user_action, state, system_action)
|
||||
system_acts = [[intent, domain, slot, value] for (domain, intent), slots in system_action.items() for slot, value in slots]
|
||||
state['system_act'] = system_acts
|
||||
return system_acts
|
||||
|
||||
def update_system_action(self, user_act, user_action, state, system_action):
|
||||
domain, intent = user_act
|
||||
constraints = [(slot, value) for slot, value in state['belief_state'][domain.lower()].items() if value != '']
|
||||
self.results = self.db['database'][domain]
|
||||
|
||||
# Reguła 1
|
||||
if intent == 'request':
|
||||
if len(self.results) == 0:
|
||||
system_action[(domain, 'NoOffer')] = []
|
||||
else:
|
||||
for slot in user_action[user_act]:
|
||||
if self.results and slot[0] in self.results[0]:
|
||||
system_action[(domain, 'Inform')].append([slot[0], self.results[0].get(slot[0], 'unknown')])
|
||||
|
||||
# Reguła 2
|
||||
elif intent == 'inform':
|
||||
if len(self.results) == 0:
|
||||
system_action[(domain, 'NoOffer')] = []
|
||||
else:
|
||||
system_action[(domain, 'Inform')].append(['Choice', str(len(self.results))])
|
||||
for product in self.results:
|
||||
if all(product.get(slot, '').lower() == value.lower() for slot, value in constraints):
|
||||
system_action[(domain, 'Recommend')].append(['Name', product['name']])
|
||||
break
|
||||
|
||||
|
||||
def nlg(system_act):
|
||||
domain, intent, slot, value = system_act
|
||||
|
||||
if intent == 'Affirm':
|
||||
r = random.randint(1, 3)
|
||||
|
||||
if r == 1:
|
||||
return 'Tak'
|
||||
elif r == 2:
|
||||
return 'Zgadza się'
|
||||
else:
|
||||
return 'Potwierdzam'
|
||||
|
||||
if intent == 'Deny':
|
||||
r = random.randint(1, 3)
|
||||
|
||||
if r == 1:
|
||||
return 'Nie'
|
||||
elif r == 2:
|
||||
return 'Nie zgadza się'
|
||||
else:
|
||||
return 'Nie potwierdzam'
|
||||
|
||||
if intent == 'Canthelp':
|
||||
r = random.randint(1, 3)
|
||||
|
||||
if r == 1:
|
||||
return 'Przepraszam, ale obawiam się, że nie mogę tego zrobić'
|
||||
elif r == 2:
|
||||
return 'Wystąpił błąd, proszę się skontaktować z obsługą'
|
||||
else:
|
||||
return 'ERR://23¤Y%/'
|
||||
|
||||
if intent == 'Hellomsg':
|
||||
r = random.randint(1, 3)
|
||||
|
||||
if r == 1:
|
||||
return 'Witaj'
|
||||
elif r == 2:
|
||||
return 'Cześć'
|
||||
else:
|
||||
return 'Dzień dobry'
|
||||
|
||||
if intent == 'Bye':
|
||||
r = random.randint(1, 3)
|
||||
|
||||
if r == 1:
|
||||
return 'Do zobaczenia'
|
||||
elif r == 2:
|
||||
return 'Żegnaj'
|
||||
else:
|
||||
return 'Buk zapłać'
|
||||
|
||||
if domain == 'Product':
|
||||
if intent == 'Inform':
|
||||
if slot == 'Quantity':
|
||||
if value == 0:
|
||||
return f'Nie znalazłem produktów spełniających podane kryteria.'
|
||||
elif value == 1:
|
||||
return f'Znalazłem jeden produkt spełniający podane kryteria.'
|
||||
elif value <= 4:
|
||||
return f'Znalazłem {value} produkty spełniające podane kryteria.'
|
||||
elif value <= 9:
|
||||
return f'Znalazłem {value} produktów spełniających podane kryteria.'
|
||||
else:
|
||||
return f'Znalazłem wiele produktów spełniających podane kryteria.'
|
||||
elif slot == 'Quality':
|
||||
return f'Znalazłem produkt(y) jakości {value}'
|
||||
elif slot == 'Price_range':
|
||||
return f'Znalazłem produkt(y) w przedziale cenowym {value}'
|
||||
elif slot == 'Type':
|
||||
return f'Znalazłem produkt(y) typu {value}'
|
||||
elif slot == 'Brand':
|
||||
return f'Znalazłem produkt(y) marki {value}'
|
||||
elif slot == 'Price':
|
||||
return f'Znalazlem produkt(y) w cenie {value}'
|
||||
if intent == 'Request':
|
||||
if slot == 'CreditCardNo':
|
||||
return 'Podaj nuber karty płatniczej'
|
||||
if slot == 'Quantity':
|
||||
return 'Podaj liczbę artykułów'
|
||||
if slot == 'Type':
|
||||
return 'Podaj typ produktu'
|
||||
if intent == 'Recommend':
|
||||
if slot == "Name":
|
||||
r = random.randint(1, 3)
|
||||
|
||||
if r == 1:
|
||||
return f'Kochany użytkowniku, z całego serduszka polecam Ci {value}'
|
||||
elif r == 2:
|
||||
return f'Polecam {value}'
|
||||
else:
|
||||
return f'Mogę polecić {value}'
|
||||
|
||||
def get_dialog_act(rule):
|
||||
slots = []
|
||||
get_slots(rule.expansion, slots)
|
||||
return {'act': rule.grammar.name, 'slots': slots}
|
||||
|
||||
def get_slots(expansion, slots):
|
||||
if expansion.tag != '':
|
||||
slots.append((expansion.tag, expansion.current_match))
|
||||
return
|
||||
|
||||
for child in expansion.children:
|
||||
get_slots(child, slots)
|
||||
|
||||
if not expansion.children and isinstance(expansion, jsgf.NamedRuleRef):
|
||||
get_slots(expansion.referenced_rule.expansion, slots)
|
||||
|
||||
def nlu(utterance):
|
||||
matched = book_grammar.find_matching_rules(utterance)
|
||||
|
||||
if matched:
|
||||
return get_dialog_act(matched[0])
|
||||
else:
|
||||
return {'act': 'null', 'slots': []}
|
||||
|
||||
def predict(utterance):
|
||||
utterance = utterance.lower()
|
||||
punctuation = '''!;:/?,.*'''
|
||||
|
||||
for i in utterance:
|
||||
if i in punctuation:
|
||||
utterance = utterance.replace(i, "")
|
||||
|
||||
matched = book_grammar.find_matching_rules(utterance)
|
||||
nlu(utterance)
|
||||
|
||||
try:
|
||||
print(get_dialog_act(matched[0]))
|
||||
get_dialog_act(matched[0])
|
||||
except:
|
||||
pass
|
||||
|
||||
return get_dialog_act(matched[0])
|
||||
|
||||
|
||||
|
||||
dst = DST()
|
||||
policy = SimpleRulePolicy()
|
||||
|
||||
utterance = input("Podaj wypowiedź użytkownika: ")
|
||||
|
||||
dialog_act = predict(utterance)
|
||||
state = dst.update(dialog_act)
|
||||
system_act = policy.predict(state)
|
||||
|
||||
for act in system_act:
|
||||
response = nlg(act)
|
||||
print("Odpowiedź systemu:", response)
|
223
system3.py
Normal file
223
system3.py
Normal file
@ -0,0 +1,223 @@
|
||||
import spacy
|
||||
import random
|
||||
|
||||
nlp = spacy.load("pl_core_news_md")
|
||||
|
||||
class DialogManager:
|
||||
def __init__(self, nlu_module, dst_module):
|
||||
self.nlu_module = nlu_module
|
||||
self.dst_module = dst_module
|
||||
|
||||
def promotion(self):
|
||||
r = random.randint(1, 4)
|
||||
if r == 1:
|
||||
promotion = "Mamy dzisiaj w promocji ser!"
|
||||
elif r == 2:
|
||||
promotion = "Aktualnie w promocji mamy jabłka!"
|
||||
elif r == 3:
|
||||
promotion = "Mleko w super cenie! Tylko dzisiaj!"
|
||||
elif r == 4:
|
||||
promotion = "Chipsy na imprezę w promocji!"
|
||||
return promotion
|
||||
|
||||
def start_dialog(self):
|
||||
self.dst_module.update_state([]) # Zerowanie stanu dialogowego
|
||||
|
||||
i = 0
|
||||
|
||||
while True:
|
||||
user_input = input("Użytkownik: ")
|
||||
|
||||
# Wykorzystanie modułu NLU do ekstrakcji aktywności i slotów
|
||||
acts = self.nlu_module.extract_acts_and_slots(user_input)
|
||||
|
||||
# Aktualizacja stanu dialogowego za pomocą modułu DST
|
||||
self.dst_module.update_state(acts)
|
||||
dialog_state = self.dst_module.get_state()
|
||||
|
||||
# Logika dialogu
|
||||
if not acts:
|
||||
r = random.randint(1, 4)
|
||||
if r == 1:
|
||||
response = "Przepraszam, nie rozumiem. W czym mogę Ci pomóc?"
|
||||
elif r == 2:
|
||||
response = "Czy mógłbyś powtórzyć?"
|
||||
elif r == 3:
|
||||
response = "Nie rozumiem. Mógłbyś powtórzyć?"
|
||||
elif r == 4:
|
||||
response = "Nie umiem na to odpowiedzieć."
|
||||
elif "hello" in acts[0].act_type:
|
||||
r = random.randint(1, 4)
|
||||
if r == 1:
|
||||
response = "Witaj! W czym mogę Ci pomóc?"
|
||||
elif r == 2:
|
||||
response = "Dzień dobry! W czym mogę Ci pomóc?"
|
||||
elif r == 3:
|
||||
response = "Witaj! W czym mogę służyć?"
|
||||
elif r == 4:
|
||||
response = "Dzień dobry! Czego potrzebujesz?"
|
||||
elif "inform" in acts[0].act_type:
|
||||
response = self.generate_response(dialog_state)
|
||||
elif "bye" in acts[0].act_type:
|
||||
r = random.randint(1, 4)
|
||||
if r == 1:
|
||||
response = "Dziękuję za rozmowę. Miłego dnia!"
|
||||
elif r == 2:
|
||||
response = "Dziękuję. Miłego dnia!"
|
||||
elif r == 3:
|
||||
response = "Miłego dnia i do zobaczenia!"
|
||||
elif r == 4:
|
||||
response = "Dziękuję i do zobaczenia!"
|
||||
print("Agent:", response)
|
||||
break
|
||||
elif "thankyou" in acts[0].act_type:
|
||||
r = random.randint(1, 4)
|
||||
if r == 1:
|
||||
response = "Cieszę się, że mogę pomóc."
|
||||
elif r == 2:
|
||||
response = "Nie ma za problemu."
|
||||
elif r == 3:
|
||||
response = "Przyjemność po mojej stronie."
|
||||
elif r == 4:
|
||||
response = "Czy mógłbym pomóc w czymś jeszcze?"
|
||||
elif "affirm" in acts[0].act_type:
|
||||
response = "Czy mógłbym pomóc w czymś jeszcze?"
|
||||
elif "deny" in acts[0].act_type:
|
||||
response = "Czy mógłbym pomóc w czymś jeszcze?"
|
||||
elif "request" in acts[0].act_type:
|
||||
r = random.randint(1, 10)
|
||||
response = f"Cena produktu wynosi {r}.99zł."
|
||||
else:
|
||||
response = "Nie rozumiem. Czym mogę Ci pomóc?"
|
||||
|
||||
print("Agent:", response)
|
||||
i += 1
|
||||
if i % 5 == 0:
|
||||
print("Agent:", self.promotion())
|
||||
|
||||
def generate_response(self, dialog_state):
|
||||
# Logika generowania odpowiedzi na podstawie stanu dialogowego
|
||||
# Możesz dostosować tę logikę do swoich potrzeb
|
||||
# Przykład: generowanie odpowiedzi na podstawie aktualnego stanu dialogowego
|
||||
r = random.randint(1, 4)
|
||||
if r == 1:
|
||||
response = "Rozumiem, potrzebujesz"
|
||||
elif r == 2:
|
||||
response = "Znalazłem produkt"
|
||||
elif r == 3:
|
||||
response = "Posiadamy"
|
||||
elif r == 4:
|
||||
response = "Wybieram"
|
||||
|
||||
if "product type" in dialog_state and "product" in dialog_state:
|
||||
product_type = dialog_state["product type"]
|
||||
product = dialog_state["product"]
|
||||
response += f" {product} z kategorii {product_type}"
|
||||
elif "product type" in dialog_state:
|
||||
product_type = dialog_state["product type"]
|
||||
response += f" produkty z kategorii {product_type}"
|
||||
else:
|
||||
response += " informacji o twoich potrzebach"
|
||||
|
||||
r = random.randint(1, 4)
|
||||
if r == 1:
|
||||
response += ". Jak mogę Ci jeszcze pomóc?"
|
||||
elif r == 2:
|
||||
response += ". Co mogę jeszcze dla Ciebie zrobić?"
|
||||
elif r == 3:
|
||||
response += ". W czym mogę jeszcze pomóc?"
|
||||
elif r == 4:
|
||||
response += ". Czy potrzebujesz czegoś jeszcze?"
|
||||
|
||||
return response
|
||||
|
||||
class DialogStateTracker:
|
||||
def __init__(self):
|
||||
self.dialog_state = {}
|
||||
|
||||
def update_state(self, acts):
|
||||
for act in acts:
|
||||
if act.act_type == "hello":
|
||||
self.dialog_state = {}
|
||||
elif act.act_type == "bye":
|
||||
self.dialog_state = {}
|
||||
elif act.act_type == "inform":
|
||||
slots = act.slots
|
||||
for slot, value in slots.items():
|
||||
self.dialog_state[slot] = value
|
||||
|
||||
def get_state(self):
|
||||
return self.dialog_state
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
product_type_rules = {
|
||||
"pieczywo": ["chleb", "bułka", "bulka", "bulki", "rogalik", "rogalika", "bagietka", "bagietke"],
|
||||
"owoce": ["jabłko", "jablko", "banan", "gruszka", "gruszke", "pomarańcza","pomarancze"],
|
||||
"warzywa": ["marchewka", "ziemniak", "cebula", "cebule", "pomidor", "pomidora"],
|
||||
"mięso": ["kurczak", "wołowina", "wolowine", "wieprzowina", "wieprzowine", "indyk"],
|
||||
"produkty mrożone": ["lody", "frytki", "pierogi", "nuggetsy"],
|
||||
"słodycze": ["czekolada", "czekolade","czekolady", "ciastko", "lizak", "guma do żucia", "gume do zucia"],
|
||||
"przekąski": ["talarki", "paluszki","orzeszki", "chipsy"],
|
||||
"przyprawy": ["sól", "sol", "pieprz", "oregano", "cynamon"],
|
||||
"napoje": ["woda", "wode", "sok", "herbata", "herbate", "kawa", "kawe", "energetyk"],
|
||||
"napoje alkoholowe": ["piwo", "wino", "wódka","wodke", "whisky"],
|
||||
"higiena": ["pasta do zębów", "paste do zebow", "mydło", "mydlo", "szampon", "papier toaletowy"],
|
||||
"chemia gospodarcza": ["płyn do naczyń", "plyn do naczyn", "proszek do prania", "odświeżacz powietrza", "odswiezacz powietrza"],
|
||||
"inne": ["długopis", "dlugopis", "baterie", "srubokret", "śrubokręt", "nożyczki", "nozyczki"],
|
||||
"nabiał": ["mleko", "ser", "śmietana","smietane"]
|
||||
}
|
||||
|
||||
class DialogAct:
|
||||
def __init__(self, act_type, slots=None):
|
||||
self.act_type = act_type
|
||||
self.slots = slots if slots else {}
|
||||
|
||||
class NLU:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def extract_acts_and_slots(self, text):
|
||||
doc = nlp(text)
|
||||
acts = []
|
||||
|
||||
for token in doc:
|
||||
if token.lower_ == "cześć" or token.lower_ == "witaj" or token.lower_ == "hej" or token.lower_ == "siema" or token.lower_ == "witam" or token.lower_ == "dzień":
|
||||
acts.append(DialogAct("hello"))
|
||||
elif token.lower_ == "widzenia" or token.lower_ == "żegnaj" or token.lower_ == "zobaczenia" or token.lower_ == "wszystko":
|
||||
acts.append(DialogAct("bye"))
|
||||
elif token.lower_ == "dziękuję" or token.lower_ == "dzięki" or token.lower_ == "podziękowania" or token.lower_ == "bóg":
|
||||
acts.append(DialogAct("thankyou"))
|
||||
elif token.lower_ == "proszę" or token.lower_ == "ile" or token.lower_ == "cena":
|
||||
acts.append(DialogAct("request"))
|
||||
elif token.lower_ == "powtórz":
|
||||
acts.append(DialogAct("repeat"))
|
||||
elif token.lower_ == "reset":
|
||||
acts.append(DialogAct("restart"))
|
||||
elif token.lower_ in ["tak", "oczywiście"]:
|
||||
acts.append(DialogAct("affirm"))
|
||||
elif token.lower_ in ["nie", "nie chcę"]:
|
||||
acts.append(DialogAct("deny"))
|
||||
elif token.pos_ == "NOUN":
|
||||
product_type, product = self.find_product_type(token.lemma_)
|
||||
if product_type and product:
|
||||
act = DialogAct("inform", {"product type": product_type, "product": product})
|
||||
acts.append(act)
|
||||
|
||||
return acts
|
||||
|
||||
def find_product_type(self, product):
|
||||
for product_type, products in product_type_rules.items():
|
||||
if product in products:
|
||||
return product_type, product
|
||||
|
||||
return None, None
|
||||
|
||||
nlu = NLU()
|
||||
|
||||
dst = DialogStateTracker()
|
||||
|
||||
dm = DialogManager(nlu ,dst)
|
||||
dm.start_dialog()
|
256
template_nlg.ipynb
Normal file
256
template_nlg.ipynb
Normal file
@ -0,0 +1,256 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import random\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def nlg(system_act):\n",
|
||||
" domain, intent, slot, value = system_act\n",
|
||||
"\n",
|
||||
" if intent == 'Affirm':\n",
|
||||
" r = random.randint(1, 3)\n",
|
||||
"\n",
|
||||
" if r == 1:\n",
|
||||
" return 'Tak'\n",
|
||||
" elif r == 2:\n",
|
||||
" return 'Zgadza się'\n",
|
||||
" else:\n",
|
||||
" return 'Potwierdzam'\n",
|
||||
" \n",
|
||||
" if intent == 'Deny':\n",
|
||||
" r = random.randint(1, 3)\n",
|
||||
"\n",
|
||||
" if r == 1:\n",
|
||||
" return 'Nie'\n",
|
||||
" elif r == 2:\n",
|
||||
" return 'Nie zgadza się'\n",
|
||||
" else:\n",
|
||||
" return 'Nie potwierdzam'\n",
|
||||
" \n",
|
||||
" if intent == 'Canthelp':\n",
|
||||
" r = random.randint(1, 3)\n",
|
||||
"\n",
|
||||
" if r == 1:\n",
|
||||
" return 'Przepraszam, ale obawiam się, że nie mogę tego zrobić'\n",
|
||||
" elif r == 2:\n",
|
||||
" return 'Wystąpił błąd, proszę się skontaktować z obsługą'\n",
|
||||
" else:\n",
|
||||
" return 'ERR://23¤Y%/'\n",
|
||||
" \n",
|
||||
" if intent == 'Hellomsg':\n",
|
||||
" r = random.randint(1, 3)\n",
|
||||
"\n",
|
||||
" if r == 1:\n",
|
||||
" return 'Witaj'\n",
|
||||
" elif r == 2:\n",
|
||||
" return 'Cześć'\n",
|
||||
" else:\n",
|
||||
" return 'Dzień dobry'\n",
|
||||
" \n",
|
||||
" if intent == 'Bye':\n",
|
||||
" r = random.randint(1, 3)\n",
|
||||
"\n",
|
||||
" if r == 1:\n",
|
||||
" return 'Do zobaczenia'\n",
|
||||
" elif r == 2:\n",
|
||||
" return 'Żegnaj'\n",
|
||||
" else:\n",
|
||||
" return 'Buk zapłać'\n",
|
||||
" \n",
|
||||
" \n",
|
||||
"\n",
|
||||
" if domain == 'Product':\n",
|
||||
" if intent == 'Inform':\n",
|
||||
" if slot == 'Quantity':\n",
|
||||
" if value == 0:\n",
|
||||
" return f'Nie znalazłem produktów spełniających podane kryteria.'\n",
|
||||
" elif value == 1:\n",
|
||||
" return f'Znalazłem jeden produkt spełniającą podane kryteria.'\n",
|
||||
" elif value <= 4:\n",
|
||||
" return f'Znalazłem {value} produkty spełniające podane kryteria.'\n",
|
||||
" elif value <= 9:\n",
|
||||
" return f'Znalazłem {value} produktów spełniających podane kryteria.'\n",
|
||||
" else:\n",
|
||||
" return f'Znalazłem wiele produktów spełniających podane kryteria.'\n",
|
||||
" elif slot == 'Quality':\n",
|
||||
" return f'Znalazłem produkt(y) jakości {value}'\n",
|
||||
" elif slot == 'Price_range':\n",
|
||||
" return f'Znalazłem produkt(y) w przedziale cenowym {value}'\n",
|
||||
" elif slot == 'Type':\n",
|
||||
" return f'Znalazłem produkt(y) typu {value}'\n",
|
||||
" elif slot == 'Brand':\n",
|
||||
" return f'Znalazłem produkt(y) marki {value}'\n",
|
||||
" elif slot == 'Price':\n",
|
||||
" return f'Znalazlem produkt(y) w cenie {value}'\n",
|
||||
" if intent == 'Request':\n",
|
||||
" if slot == 'CreditCardNo':\n",
|
||||
" return 'Podaj nuber karty płatniczej'\n",
|
||||
" if slot == 'Quantity':\n",
|
||||
" return 'Podaj liczbę artykułów'\n",
|
||||
" #if slot == 'Quality':\n",
|
||||
" # return 'Podaj jakość produktów'\n",
|
||||
" if slot == 'Type':\n",
|
||||
" return 'Podaj typ produktu'\n",
|
||||
" if intent == 'Recommend':\n",
|
||||
" if slot == \"Name\":\n",
|
||||
" r = random.randint(1, 3)\n",
|
||||
"\n",
|
||||
" if r == 1:\n",
|
||||
" return f'Kochany użytkowniku, z całego serduszka polecam Ci {value}'\n",
|
||||
" elif r == 2:\n",
|
||||
" return f'Polecam {value}'\n",
|
||||
" else:\n",
|
||||
" return f'Mogę polecić {value}'\n",
|
||||
"\n",
|
||||
" "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 21,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'Witaj'"
|
||||
]
|
||||
},
|
||||
"execution_count": 21,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"nlg(['', 'Hellomsg', '', ''])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 22,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'Znalazłem produkt(y) marki RedBull'"
|
||||
]
|
||||
},
|
||||
"execution_count": 22,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"nlg(['Product', 'Inform', 'Brand', 'RedBull'])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'Polecam RedBull'"
|
||||
]
|
||||
},
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"nlg(['Product', 'Recommend', 'Name', 'RedBull'])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 25,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'Podaj liczbę artykułów'"
|
||||
]
|
||||
},
|
||||
"execution_count": 25,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"nlg(['Product', 'Request', 'Quantity', '?'])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 26,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'Przepraszam, ale obawiam się, że nie mogę tego zrobić'"
|
||||
]
|
||||
},
|
||||
"execution_count": 26,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"nlg(['', 'Canthelp', '', ''])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 28,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'Do zobaczenia'"
|
||||
]
|
||||
},
|
||||
"execution_count": 28,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"nlg(['', 'Bye', '', ''])"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "DialogSystems",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.1"
|
||||
},
|
||||
"orig_nbformat": 4
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
Loading…
Reference in New Issue
Block a user