diff --git a/NLG.ipynb b/NLG.ipynb index 9e5045e..9c161cc 100644 --- a/NLG.ipynb +++ b/NLG.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 4, "id": "21c8e0a4", "metadata": {}, "outputs": [], @@ -69,7 +69,145 @@ " if slot == \"book time\":\n", " return f\"Godzina Twojego zamówienia to: {value}.\"\n", " if slot == \"book day\":\n", - " return f\"Dzień Twojego zamówienia to: {value}.\" \n", + " return f\"Dzień Twojego zamówienia to: {value}.\" \n", + " \n", + " \n", + " elif domain == 'food' and intent == 'inform':\n", + " if slot == 'size':\n", + " if value == 'mała':\n", + " return f\"Posiadamy dania w kategorii {value}, szczególnie dotyczy to pizzy, która ma średnice 30cm.\"\n", + " elif value == 'średnia':\n", + " return f\"Kategoria {value}, dotyczy tylko pizzy, która ma średnice 42cm.\"\n", + " elif value == 'duża':\n", + " return f\"Posiadamy dania w kategorii {value}, szczególnie dotyczy to pizzy, która ma średnice 50cm.\"\n", + " else:\n", + " return f\"Informuje, że nie posiadamy {value} w naszej ofercie.\"\n", + " \n", + " if slot == 'type':\n", + " \n", + " #Pizza\n", + " if value == 'pizza':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi Margherite, Pepperoni czy Milano.\"\n", + " \n", + " #Makarony\n", + " elif value == 'makaron':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi spaghetti bolognese, spaghetti napoli czy lasagne.\"\n", + " \n", + " #Zupy\n", + " elif value == 'zupa':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi pomidorowa, ogórkowa czy grzybowa.\"\n", + " \n", + " #Sushi\n", + " elif value == 'sushi':\n", + " return f\"Inforumuję, że mamy jedzenie w kategorii {value}.\"\n", + " \n", + " #Pierogi\n", + " elif value == 'pierogi':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi ruskie, mięsne lub z serem.\"\n", + " \n", + " #owoce morza\n", + " elif value == 'owoce morza':\n", + " return f\"Inforumuję, że mamy jedzenie w kategorii {value}.\"\n", + " \n", + " #ryby\n", + " elif value == 'ryba':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi filet z dorsza lub łososia.\"\n", + " \n", + " #sałatka\n", + " elif value == 'sałatka':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi grecką, cezar lub z grillowanym serem kozim.\"\n", + " \n", + " #bao\n", + " elif value == 'bao':\n", + " return f\"Inforumuję, że mamy jedzenie w kategorii {value}.\"\n", + " \n", + " #mięso\n", + " elif value == 'mięso':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi kotlet schabowy, kebab lub stek z wołowiny.\"\n", + " \n", + " #fast food\n", + " elif value == 'fast food':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi kebaba lub też burgera.\"\n", + " \n", + " #śniadania\n", + " elif value == 'śniadania':\n", + " return f\"Informuje, że z kategorii {value} posiadamy w ofercie między innymi szakszuke.\"\n", + " \n", + " else:\n", + " return f\"Informuje, że nie posiadamy dania z podanej kategorii.\"\n", + " \n", + " \n", + " if slot == 'price range':\n", + " if value == 'niska':\n", + " return f\"Inforumuje, że {value} cena dotyczy dań do 15 zł.\"\n", + " elif value == 'średnia':\n", + " return f\"Inforumuje, że {value} cena dotyczy dań od 15zł do 25 zł.\"\n", + " elif value == 'wysoka':\n", + " return f\"Inforumuje, że {value} cena dotyczy dań od 25zł.\"\n", + " \n", + " if slot == 'name':\n", + " if value in [\"pizza margherita\",\"pizza poznańska\",\"pizza peperoni\",\"pizza nowojorska\",\"pizza milano\",\"xiaolongbao\", \\\n", + " \"Burger Butcher\",\"sałatka z grillowanym serem kozim\",\"pizza nolita\",\"szakszuka\",\"sałatka cezar\", \\\n", + " \"spaghetti bolognese\",\"spaghetti napoli\",\"kotlet schabowy\",\"zupa pomidorowa\",\"pierogi ruskie\",\"ryba Dorsz\", \\\n", + " \"krewetki na grillu\",\"kurczak curry\",\"tarta szpinakowa\",\"kebab\",\"zupa ogórkowa\",\"sushi maki\",\"pierogi z serem\",\\\n", + " \"calamari\",\"gomen\",\"karp smażony\",\"pizza vegetariana\",\"sałatka z grillowanym kurczakiem\",\"steak z wieprzowiny\", \\\n", + " \"ravioli ze szpinakiem i ricottą\",\"kotlet mielony\",\"zupa grzybowa\",\"sushi nigiri\",\"pierogi z mięsem\", \\\n", + " \"krewetki w panierce\",\"filet z dorsza\",\"pizza hawajska\",\"sałatka cezar\", \"stek z kurczaka\", \"lasagne\", \\\n", + " \"dushi california roll\",\"krewetki w sosie czosnkowym\",\"filet z łososia\",\"pizza capricciosa\",\"sałatka grecka\", \\\n", + " \"stek z wołowiny\"]:\n", + " return f\"Informuje, że posiadamy {value} w naszej ofercie.\"\n", + " else:\n", + " return f\"Informuje, że nie posiadamy {value} w naszej ofercie.\"\n", + " \n", + " \n", + " \n", + " \n", + " elif domain == 'drink' and intent == 'inform':\n", + " if slot == 'size':\n", + " if value == 'mała':\n", + " return f\"Informuje, że napój o rozmiarze {value} jest serwowany w małej szklance lub filiżance.\"\n", + " elif value == 'standardowa':\n", + " return f\"Informuje, że napój o rozmiarze {value} jest serwowany w dużej szklance.\"\n", + " elif value == 'duża':\n", + " return f\"Informuje, że napój o rozmiarze {value} jest serwowany w dzbanku lub w przypadku piwa w specjalnym kuflu.\"\n", + " else:\n", + " return f\"Informuje, że nie posiadamy {value} w naszej ofercie.\"\n", + " \n", + " if slot == 'price range':\n", + " if value == 'niska':\n", + " return f\"Inforumuje, że {value} cena dotyczy napojów do 5 zł.\"\n", + " elif value == 'średnia':\n", + " return f\"Inforumuje, że {value} cena dotyczy napojów od 5 zł do 15 zł.\"\n", + " elif value == 'wysoka':\n", + " return f\"Inforumuje, że {value} cena dotyczy napojów od 15 zł.\"\n", + " else:\n", + " return f\"Informuje, że nie posiadamy {value} w naszej ofercie.\"\n", + " \n", + " if slot == 'name':\n", + " if value in ['kawa', 'cola', 'herbata', 'pepsi', 'sok pomarańczowy', 'koktajl owocowy', 'sok ze świeżych pomarańczy', 'lemoniada', 'sprite', 'piwo', 'fanta']:\n", + " return f\"Informuje, że posiadamy {value} w naszej ofercie.\"\n", + " else:\n", + " return f\"Informuje, że nie posiadamy {value} w naszej ofercie.\"\n", + " \n", + " elif domain == 'sauce' and intent == 'inform':\n", + " if slot == 'size':\n", + " if value == 'mała':\n", + " return f\"Inforumuje, że sos o rozmiarze {value} jest serwowany w pojemniku plastikowym.\"\n", + " elif value == 'duża':\n", + " return f\"Inforumuje, że sos o rozmiarze {value} jest serwowany w szklanej misce.\"\n", + " \n", + " if slot == 'price range':\n", + " if value == 'niska':\n", + " return f\"Inforumuje, {value} cena dotyczy sosów podawanych w plastikowym pojemniku.\"\n", + " elif value == 'duża':\n", + " return f\"Inforumuje, {value} cena dotyczy sosów podawanych w szklanej miseczce.\"\n", + " \n", + " if slot == 'name':\n", + " if value in [\"sos pomidorowy\",\"sos czosnkowy\",\"sos bbq\",\"sos tatarski\",\"sos Meksykański\",\"sos aioli\",\"sos śmietanowo-koperkowy\",\"sos pikantny\",\"sos curry\",\"sos hollandaise\"]:\n", + " return f\"Informuje, że posiadamy {value} w naszej ofercie.\"\n", + " else: return f\"Informuje, że nie posiadamy {value} w naszej ofercie.\"\n", + " \n", + " \n", "\n", " elif intent == 'end_conversation':\n", " return random.choice(['Żegnam i dziękuję za skorzystanie z usługi.', 'Do widzenia.', \"Dziękuję za skorzystanie z usługi, do kolejnego razu.\"])\n", @@ -158,6 +296,69 @@ "nlg(['inform', 'booking', 'restaurant_name', 'biały kwiat'])" ] }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f3cd64f8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Informuje, że z kategorii pizza posiadamy w ofercie między innymi Margherite, Pepperoni czy Milano.'" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nlg(['inform', 'food', 'type', 'pizza'])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "992cb313", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Informuje, że posiadamy pepsi w naszej ofercie.'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nlg(['inform', 'drink', 'name', 'pepsi'])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "252fe4b5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Inforumuje, że sos o rozmiarze mała jest serwowany w pojemniku plastikowym.'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nlg(['inform', 'sauce', 'size', 'mała'])" + ] + }, { "cell_type": "code", "execution_count": 19, @@ -267,7 +468,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.2" + "version": "3.11.3" } }, "nbformat": 4,