--- title: Samuel Horáni published: true taxonomy: category: [vp2021,bp2022] tag: [chatbot,rasa,dialog,nlp] author: Daniel Hladek --- rok začiatku štúdia: 2019 Návrh na zadanie BP: 1. Vypracujte teroretický úvod do modelovania dialógu a povedzte ake metódy sa aktuálne používajú. 2. Navrhnite a vytvorte dialógový systém komunikujúci v slovenskom jazyku pre úlohu objednania jedla z donáškovej služby. 3. Vykonajte sadu experimentov a dialógovým systémom a identifikujte miesta pre zlepšenie. Nápady na balakársku prácu: - chatbot pre objednanie jedla. - chatbot s informáciami pre cestovateľov. - Urobenie web rozhrania. - dá sa dorobiť aj rečové rozhranie. - dá sa to prepojiť aj na QA systém. Výsledky: - [Repozitár s webovou aplikáciou](https://git.kemt.fei.tuke.sk/sh662er/rasa-flask-website) - [Repozitár s chatbotom](https://git.kemt.fei.tuke.sk/sh662er/Rasa) ## Bakalársky projekt 2021 Ciele: - Vypracovať draft B. práce. - Mať funkčné demo vo forme nasadenej webovej aplikácie. --- 6.1.2022 - Chatbot vie "rezervovať" stôl - rozpoznať entitu s názvom stola. - Urobený Dockerfile pre Rasa bot Úlohy: - Dorobiť Dockerfile pre Flask App - Skúsiť urobiť docker-compose.yaml (Swarm Mode Docker) - Pre deployment je dobré zmeniť databázu na Postgres. Postgres sa robí "jednoducho" cez compose. - Upraviť konfiguráciu do podoby vhodnej na nasadenie. Nasadenie aplikácia bude mať inú konfiguráciu (napr. databázu) ako aplikácia vo vývoji. - Naučte robota hovoriť o aktuálnom jedálnom lístku. - čo mi ponúknete na obed? - Aké máte menu na pondelok? - čo obsahuje "čiernohorský rezeň"? - Naučte robota hiečo o reštaurácii. - Ako sa tam dostanem? - Naučte robota aby vedel pomôcť človeku. - Čo vieš urobiť? - Pracujte na prezentácii. - Pracujte na písomnej časti. --- Stretnutie 17.12.2021 Stav: - Pridané testy na RASA test, urobené vyhodnotenie pomocou konfúznej matice. Úlohy: - [x] Pridajte schopnosť rozlišovať pomenované entity typu LOC. Spacy model by to mal vedieť. - [ ] Vylepšite chatbota do prvej funkčnej verzie. - [x] Pripravte deployment pomocou Docker. - [ ] Dajte vyskúšať chatbota tretej osobe a zapíšte si story. --- Stretnutie 10.12. - Naštudujte si https://rasa.com/docs/rasa/testing-your-assistant - Pokračujte v otvorených úlohách. --- Stretnutie 3.12.2021 Stav: - Teoretická čast BP je v celkom dobrom stave. Prebehlo viacero stretnutí k BP. Ulohy: 1. [x] Navrhnite a napíšte intenty a utterance pre chatbota 2. [x] Natrénujte model, výskúšajte ho, opravte ho. 3. [x] Vytvorte testovacie stories a vyhonotte model. 4. [x] Kódy dajte na GIT 5. [x] Pripravte deployment pomocou Docker. - - - Stretnutie 12.11.2021 Vyhodnotenie zatiaľ nefunguje. Úlohy: - [x] Pokračovať v písaní práce. - [x] Dokončiť web demo. - [x] Vytvorte dockerfile. Zásobník úloh: - Vyhdonotiť NLU (úlohy z 12.10.) Stretnutie 22.10.2021 - Urobené webové rozhranie pre analýzu konverzácií. Pokračovať v otvorených úlohách. Stretnutie 12.10. Stav: - Vytvorené prepojenie s databázou a RASA pre uchovanie logov z konverzácií. - Rozpracovaná knižnica pre prácu s databázou konverzácií. - Vyskúšaný nový Spacy jazykový model. - Vypracovaný report pre odovzdanie v 4. týždni - šablóna, osnova, krátky článok. Úlohy: - [x] Vyhodnotiť NLU model. - [x] Pripraviť sadu na vyhodnotenie NLU a spôsob ako ju v skripte vykonať. Vytvoriť niekoľko modelových situácií a sledovať, ako "dobre" bude chatbot reagovať. - [x] Zistiť z odbornej literatúry akým spôsobom sa zvyčajne vyhodnocuje NLU úloha. Prečítajte si článok o NLU a napíšte ako sa vyhodnocuje NLU model. Nájdite anglickú databázu na vyhdonotenie NLU a pozrite sa ako vyzerá. [blog rasa](https://rasa.com/blog/evaluating-rasa-nlu-models-in-jupyter/). Zásobník úloh: - [x] Analyzovať logy z konverzácií. Pripraviť export konverzácií v JSON pre spracovanie a HTML formáte pre zobrazenie. - - - Stretnutie 1.10. Stav: - Minulé úlohy dokončené: Osnova, - flask aplikácia je rozpracovaná a komunikuje s RASA. Úlohy: - [x] Vytvoriť Word s osnovou práce a do neho zapísať relevantné texty. - [x] Pokračujte na Flask aplikácii - [x] Zistite čo je to Dockerfile. - - - Stretnutie 24.9. Stav: - Rozpracovaná flask aplikácia pre napojenie sa na RASA chatbota - Veľmi základná ale funkčná verzia RASA bota - Odovzdaný nový jazykový model Spacy. Úlohy: - [x] Dorobiť komunikáciu Flask a RASA s novým jazykovým modelom. Zdrojáky na GIT. - [x] Vytvorte draft práce, napíšte osnovu a pridajte tam relevantné texty ktoré máte. - [x] Nájdite aspoň jeden vedecký článok na tému "dialogue management" a napíšte čo ste sa dozvedeli. - - - ## Vedecký projekt 2021 Dialógový systém pomocou RASA framework Cieľom projektu je naučiť sa niečo o dialógových systémoch a oboznámiť sa so základnými nástrojmi. - Nainštalujte a oboznámte sa s RASA frameworkom. Pri inštalácii využite systém Anaconda. - Vyberte a prejdite najmenej jeden tutoriál pre prácu s RASA frameworkom. - Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli. - Výstup je tu https://git.kemt.fei.tuke.sk/sh662er/Rasa - - - Stretnutie 16.6.2021 Stav: - Stránka s UI je vo Flask - Problém je so stavom spojenia s RASA servrom. - - - Stretnutie 6.5.2021 - prebehla aj Komunikácia cez teams a email. - Vyskúšaný TUKE spacy model, ide v poriadku pre všetky intenty. Úlohy: - [x] podmienky na zápočet sú splnené - ale poprosím dokumentáciu konvertovať do Markdown a nahrať na GIT. - - - Stretnutie 9.4.2021 Stav: - Vypracovaná dokumentácia. - Podarilo sa modifikovať systém tak že vie využiť slovenský fasttext word embedding model. - modifikácia využíva všeobecný spacy pipeline. Bolo potrebné anlyzovať zdrojové kódy spacy aby to išlo. Úlohy: - [x] Vyskúšať slovenský spacy model od vedúceho. - - - Stretnutie 26.3.2021 Stav: - Preklad jazykového modelu z angličity do slovenčiny - Napísané pravidlá "ako sa volám". Úlohy: - [x] Fast tex model implememntovať - [x] napísať dokumentáciu - - - Stretnutie 19.3.2021 Zásobník úloh: - [x] Doplniť podporu slovenčiny do fr. RASA Stav: - Je nainštalovaný fr. RASA pomcou Anaconda - Je vytvorený základný jazykový model - v anglickom jazyku. - Prezretý video kanál s [RASA tutoriálom](https://www.youtube.com/watch?v=rlAQWbhwqLA&list=PL75e0qA87dlHQny7z43NduZHPo6qd-cRc) Úlohy: - [x] Skúsiť vytvoriť agenta ktorý komunikuje po slovensky. Najprv by sa preložili trénovacie príklady. - [x] Zistiť ako doplniť podporu slovenčiny do RASA. Komponenty ktoré máme k dispozícii sú: spacy model, fastext a glove word embedding model, BERT model (fresh and secret).