Scala.js-skriptituen lisääminen chatbot-moottoriin
Koskinen, Lauri (2020)
Koskinen, Lauri
2020
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020120225663
https://urn.fi/URN:NBN:fi:amk-2020120225663
Tiivistelmä
Insinöörityöni aiheena oli luoda Scala.js-skriptituki StarChatiin, joka on avoimen lähdekoodin chatbot-projekti. StarChatiä kehittää GetJenny Oy, jolle käytännön osuus tehtiin.
StarChat tarjoaa pelkän chatbot-moottorin, jota käytetään REST-rajapintojen kautta. Star-Chatissä bottia opetetaan vastaamaan kysymyksiin luomalla sinne tiloja. Vastausta haettaessa botti palauttaa tilan, joka sisältää vastauksen. Tilaa luotaessa siihen kirjoitetaan analysaattori, joka määrittää, milloin tila kuuluu palauttaa. Analysaattori kirjoitetaan StarChatin omalla skriptikielellä (domain specific language, DSL).
Työn tarkoituksena oli implementoida StarChatiin uusi skriptikieli analysaattoreiden luomiseen ja mitata sekä verrata sen suorituskykyä DSL-analysaattoreihin.
Skriptikieleksi valittiin Scala.js, koska StarChat on kirjoitettu Scala-ohjelmointikielellä. Scala ja Scala.js ovat hyvin samanlaisia, mutta Scala käännetään tavukoodiksi, joka suoritetaan JVM:ssä. Scala.js taas käännetään JavaScriptiksi, jota muun muassa selaimet suorittavat. StarChatin DSL on kehitetty analysaattoreiden tekemiseen, mutta se rajoittuu StarChatssä määritettyihin toimintoihin. Scala.js tarjoaisi tavan kirjoittaa aivan uudenlaisia analysaattoreita ilman, että se vaatisi StarChatin uudelleenkääntämistä.
Insinöörityössä käydään läpi ajon aikaista Scala.js:n kääntämistä JavaScriptiksi ja sen suorittamista JVM:ssä Javan ScriptEngine-rajapintaa käyttäen.
Scala.js-analysaattoreita verrattaessa olivat ne paljon hitaampia suorittaa kuin DSL-analysaattorit.
StarChat tarjoaa pelkän chatbot-moottorin, jota käytetään REST-rajapintojen kautta. Star-Chatissä bottia opetetaan vastaamaan kysymyksiin luomalla sinne tiloja. Vastausta haettaessa botti palauttaa tilan, joka sisältää vastauksen. Tilaa luotaessa siihen kirjoitetaan analysaattori, joka määrittää, milloin tila kuuluu palauttaa. Analysaattori kirjoitetaan StarChatin omalla skriptikielellä (domain specific language, DSL).
Työn tarkoituksena oli implementoida StarChatiin uusi skriptikieli analysaattoreiden luomiseen ja mitata sekä verrata sen suorituskykyä DSL-analysaattoreihin.
Skriptikieleksi valittiin Scala.js, koska StarChat on kirjoitettu Scala-ohjelmointikielellä. Scala ja Scala.js ovat hyvin samanlaisia, mutta Scala käännetään tavukoodiksi, joka suoritetaan JVM:ssä. Scala.js taas käännetään JavaScriptiksi, jota muun muassa selaimet suorittavat. StarChatin DSL on kehitetty analysaattoreiden tekemiseen, mutta se rajoittuu StarChatssä määritettyihin toimintoihin. Scala.js tarjoaisi tavan kirjoittaa aivan uudenlaisia analysaattoreita ilman, että se vaatisi StarChatin uudelleenkääntämistä.
Insinöörityössä käydään läpi ajon aikaista Scala.js:n kääntämistä JavaScriptiksi ja sen suorittamista JVM:ssä Javan ScriptEngine-rajapintaa käyttäen.
Scala.js-analysaattoreita verrattaessa olivat ne paljon hitaampia suorittaa kuin DSL-analysaattorit.