Sunteți pe pagina 1din 9

Chat Robot – simularea unei convorbiri dintre un robot si un potential client

Moraru Giorgian Claudiu

Facultatea de Automatica, Calculatoare si Electronica


E-mail: claudiu.moraru19@yahoo.com

Descrierea Temei:
Proiectarea si implementarea unui agent ce “simuleaza” convorbirea dintre un robot si un client
sau potential client. Acesta simulare are in vedere ca robotul sa raspunda la problemele tehnice
din cadrul unei companii precum si informarea clientului in legatura cu eventuale contracte sau
cereri.

Platforma Aleasa:
JavaScript este un limbaj de programare interpretat la nivel înalt pentru computere. Adesea este
rulat în aplicațiile de browser web pentru a crea lucruri care funcționează de la sine, precum un
mesaj pop-up sau un ceas live. Nu are legătură cu limbajul de programare Java.

Diferențele dintre Java și Javascript


În Java, pentru a defini o variabilă, trebuie să spuneți ce tip de variabilă este: un număr, un
cuvânt, o literă sau mai multe. În JavaScript, acest lucru nu este necesar.
În JavaScript, funcțiile sunt stocate ca variabile (spre deosebire de Java). Acest lucru face ca
următorul cod să fie mai bine “Scris” în JavaScript:

function sayHi() {
alert("hi!");
}

sayHi = function() {
alert("Bye!");
}

sayBye();
Deși Java și JavaScript au multe similitudini externe, cum ar fi numele și sintaxa, cele două limbi
respectă principii de proiectare diferite.
Sursa de inspiratie a pornit de la acest material care mi s-a parut foarte interesant:
https://www.eviebot.com/en/?fbclid=IwAR3AG3ujSntbzEKo2CujfACqID4-
d_GL51zPyMChltZYG35sgCutiz7E9bI

Background

Un chatbot este o aplicație software care realizează o conversație prin metode auditive sau
textuale. Astfel de programe sunt deseori concepute pentru a simula în mod convingător modul
în care un om s-ar comporta ca partener de conversație, deși începând cu 2019, acestea sunt
departe de a putea trece testul Turing. Chatbot-urile sunt utilizate de obicei în sistemele de
dialog pentru diverse scopuri practice, inclusiv servicii pentru clienți sau achiziții de informații.
Unii chatbots folosesc sisteme sofisticate de procesare a limbajului natural, dar multe mai simple
scanează cuvinte cheie în cadrul intrării, apoi trag o replică cu cele mai potrivite cuvinte cheie
sau cel mai similar model de formulare dintr-o bază de date.

Termenul "ChatterBot" a fost inițial creat de Michael Mauldin (creatorul primului Verbot, Julia)
în 1994 pentru a descrie aceste programe de conversație. Astăzi, majoritatea chatbots-urilor sunt
accesate prin intermediul asistenților virtuali precum Google Assistant și Amazon Alexa, prin
aplicații de mesagerie precum Facebook Messenger sau WeChat sau prin aplicații și site-uri web
ale organizațiilor individuale. Chat-urile pot fi clasificate în categorii de utilizare care includ
comerțul conversațional (comerț electronic prin chat), educație, divertisment, finanțe, sănătate,
știri și productivitate.

În 1950, a fost publicat celebrul articol al lui Alan Turing „Mașini de calcul și inteligență”, care
propunea ceea ce se numește testul Turing ca criteriu al inteligenței. Acest criteriu depinde de
capacitatea unui program de calculator de a înfăptui un om într-o conversație scrisă în timp real
cu un judecător uman, în măsura în care judecătorul nu este în măsură să distingă în mod fiabil -
doar pe baza conținutului conversațional - între program și un om adevărat. Notorietatea testului
propus de Turing a stimulat un mare interes pentru programul ELIZA al lui Joseph Weizenbaum,
publicat în 1966, care părea să poată păcăli utilizatorii să creadă că conversează cu un om real.
Cu toate acestea, Weizenbaum însuși nu a susținut că ELIZA era cu adevărat inteligentă, iar
introducerea în lucrarea sa a prezentat-o mai mult ca un exercițiu de depanare:

[În] inteligența artificială ... mașinile sunt făcute să se comporte în moduri minunate, dar odată ce
un anumit program este demascat, odată explicată funcționarea interioară ... magia ei se sfărâmă;
acesta este dezvăluit ca o simplă colecție de proceduri ... Observatorul își spune „Aș fi putut scrie
asta”. Cu acest gând, el mută programul în cauză de pe raftul marcat „inteligent”, spre cel
rezervat curiozității ... Obiectul acestei lucrări este de a provoca doar o astfel de reevaluare a
programului care urmează să fie „explicată”. Puține programe au avut nevoie de ea mai mult.

Metoda principală de operare a ELIZA (copiată de proiectanții de chatbot de atunci) implică


recunoașterea cuvintelor sau a frazelor indicii în intrare și ieșirea răspunsurilor corespunzătoare
pre-pregătite sau pre-programate care pot muta conversația înainte într-un mod aparent
semnificativ. Astfel, se generează o iluzie de înțelegere, chiar dacă procesarea implicată a fost
doar superficială. ELIZA a arătat că o astfel de iluzie este surprinzător de ușor de generat,
deoarece judecătorii umani sunt atât de pregătiți să ofere beneficiul îndoielii atunci când
răspunsurile conversaționale sunt capabile să fie interpretate ca „inteligente”.

Designerii interfeței au apreciat că disponibilitatea oamenilor de a interpreta ieșirea computerului


ca fiind într-adevăr conversațională - chiar și atunci când se bazează efectiv pe o potrivire a
modelului destul de simplă - poate fi exploatată în scopuri utile. Majoritatea oamenilor preferă să
se angajeze cu programe similare oamenilor, iar acest lucru oferă tehnicilor în stilul chatbot un
rol potențial util în sistemele interactive care trebuie să obțină informații de la utilizatori, atât
timp cât informația este relativ simplă și se încadrează în categorii previzibile. Astfel, de
exemplu, sistemele de ajutor online pot utiliza în mod util tehnici de chatbot pentru a identifica
zona de ajutor de care utilizatorii necesită, oferind potențial o interfață „mai prietenoasă” decât o
căutare mai formală sau un sistem de meniu. Acest tip de utilizare păstrează perspectiva mutării
tehnologiei chatbot din „raftul ... rezervat curiozității lui Weizenbaum la acelea marcate„ metode
de calcul autentic utile ”.

Realizarea Proiectului
Chat Robot I

Fig 1.1

Prima linie din cod este un support pentru formatul html ce “forteaza” SO(Sistemul de Operare) sa
deschida fisierul cu o aplicatie(browser) compatibila.

Pe linia 2: este setata limba continutului.

In linia de cod 3 – 5 se face legatura cu un fisier extern de tip cascading stylesheet ce va determina orice
stil/aspect pentru pagina noastra
Linia 6 reprezinta titlul paginii.

Fig 1.2

In linia 9(heading) este reprezentat numele bot-ului.

Liniile 10-12 reprezinta un container, gol, in care se vor introducere paragrafe cu mesajele noastre,
respectiv raspunsurile bot-ului.

Container-ul 13-16 contine un input de tip text cu autofocus(adica la pornirea paginii web input-ul este
focusat) unde se poate introduce text si un buton care atunci cand se actioneaza(se foloseste RClick)
activeaza o functie (sendMessage().

Fig 2.1
Main.css

De la linia 1 pana la linia 4 se stabilesc reguli de stil pentru body(adica intreg corpul cu informatii al site-
ului) si anume o culoare de fundal formata din 3 culori RGB(rosu, verde, albastru) si a(rgba) pentru
opacitate.

Pentru heading am centrat text-ul si am ales un font ‘Times New Roman’

De la linia 10 este definite o clasa (.computer) si are o culoare de fundal si o culoare pentru text

Linia 15 -||-

De la linia 20 este definit un id(#container) ce contine reguli de stil pentru container-ul in care vor fi
introduse mesajele noastre si ale bot-ului

Fig 2.2

La linia 27 se stabileste o regula pentru toate paragrafele continute in div-ul cu id-ul container, si anume
dimensiunea font-ului

La linia 31 sunt reguli de aspect pentru container-ul ce contine input-ul si butonul

De la linia 37 se stabileste format-ul pentru input: lungimea, inaltimea, dimensiunea font-ului si font-ul.
Liniile 44-54 sunt reguli de stil pentru buton:

- color: white (culoarea text-ului)

- background-color: royalblue (culoarea de fundal)

- margin: 0 ( fara margini)

-text-decoration: none (sa nu mai existe alte aspecte aduse text-ului, inafara de cele stabilite de noi)

-outline: none (fara contur)

-border: 0 (fara linii de bordure)

-width/height (lungimea, inaltimea in pixeli)

-border-radius: 4px (o rotunjire de 4px pe fiecare colt al buton-ului)

Fig 3.1
De la linia 1 pana la linia 3 sunt definite 3 variabile ce contin 3 elemente din html selectate dupa ID-uri.

Pentru variablia text(linia 6) adaugam o functionalitate la un eveniment si anume “keyup”(apasarea unei


key/taste), codul 13 reprezinta tasta ENTER.

Pe linia 10 definim o variabila para care va crea un element de tip <p>(paragraf)

Pe linia 11 ii adaugam elementului creat mai devreme un text(stocat in variabila node)

Apoi ii adaugam tag-ului <p> text-ul stocat in “node”

Pe linia 13 ii adaugam o clasa (.user)

Dupa care il introducem in container (div-ul cu id-ul container).

Concluzia realizarii primului Chat Robot:

Desi Chat Robotul are o stare de functionare foarte buna, din punctul meu de vedere nu este o optiune
utila. Dat fiind faptul ca un potentianl client ar trebui sa gaseasca raspunsuri rapid la problemele
intampinate.

In continuare o sa realizam o Chat Robot care s ail “forteze” e client sa aleaga din optiunile existente.

CHAT ROBOT II

Fig 4.1
Fig 4.2

Fig 4.3

Fig 4.4
Lista eventualelor surse de inspiratie:
Sursa de inspiratie a pornit de la acest material care mi s-a parut foarte interesant:
https://www.eviebot.com/en/?fbclid=IwAR3AG3ujSntbzEKo2CujfACqID4-
d_GL51zPyMChltZYG35sgCutiz7E9bI

w3sc hoo l s.com


https://www.w3schools.com/js/

Pusher- una dintre cele mai cunoscute platforme pentru construirea IN-APP CHAT
https://pusher.com/chatkit?campaignid=2046002322&utm_source=adwords&utm_medium=cpc
&utm_campaign=Chatkit_Search_Beta&utm_term=%2Bjava%20%2Bchat&gclid=CjwKCAiAh
5_uBRA5EiwASW3IauUh7AOhqLp63AS4e5y7FaLFdetS_ZFho4ojevI4WyByBjb5fBdhmRoCf
ioQAvD_BwE

HowToDoinJava
https://howtodoinjava.com/ai/java-aiml-chatbot-example/

CHATBOT-A JAVA BASED INTELLIGENT CONVERSATIONAL AGENT


https://pdfs.semanticscholar.org/339f/eb4c5be4e694458339a3ac5385f7c623dea2.pdf

How to Create a Facebook Messenger Bot With Java

http://clivern.com/how-to-create-a-facebook-messenger-bot-with-java/

Create your own Java-based chat robot


https://opensourceforu.com/2017/01/create-your-own-java-based-chat-robot/

My first Messenger Bot, using Java


https://aboullaite.me/my-first-java-bot/