Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament,...

14
Xerrades Taller de la Facultat de Matemàtiques de la UB Gener 2016 Bots conversacionals i mons virtuals 3D Inmaculada Rodríguez, Maria Salamó

Transcript of Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament,...

Page 1: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

Xerrades Taller de la Facultat deMatemàtiques de la UB

Gener 2016

Bots conversacionals i monsvirtuals 3D

Inmaculada Rodríguez, Maria Salamó

Page 2: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

IndexPart 1. Creació d'un bot conversacional...............................................................................................3

Part 2. Instal·lació i connexió al servidor de Mons Virtuals OpenSimulator (linux)..........................6

Part 3. Creació de contingut 3D i scripting al món virtual................................................................11

2/14

Page 3: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

Resum

L'objectiu d'aquest taller és practicar amb alguns dels conceptes que vam introduir a la presentacióteòrica, com ara bot conversacionals, servidors i clients de mons virtuals, i scripting. Aquest tallerconsta de 3 parts. A la primera part, creareu un bot conversacional. A la segona part, treballareucom enginyers de sistemes per instal·lar un servidor de mons virtuals i us connectareu a aquestmón. Finalment, a la tercera part, afegireu contingut 3D al món i fareu ús d'un petit programa perdonar comportament als objectes del món. Concretament, fareu que el vostre avatar pugui «parlar»amb el bot conversacional que vau crear a la primera part.

Material: a l'entrar a linux amb el login i password proporcionat pels monitors, trobareu al'escriptori del vostre ordinador els següents 3 fitxers: el servidor de mons virtuals opensim-0.7.4.tar.gz, el visor de mons virtuals Singularity, i un petit programa PandoraBot.txt.

Part 1. Creació d'un bot conversacional. Pandorabots és un servei de hosting d'agents conversacionals creats amb el llenguatge AIML (Artificial Intelligence Markup Language). A continuació crearem un bot conversacional.

1. Conecteu-vos al link (http://www.pandorabots.com/botmaster/en/home), cliqueu el botó “Account sign-up” i creeu un compte (Nom, Cognom, Correu electrònic, Password). Cliqueu a “Submit Account Request”.

2. La següent pantalla indicarà que no hi han pandorabots encara definits. Feu clic al link “create” per a crear un pandorabot.

3/14

Page 4: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

3. Doneu-li un nom, per exemple BotCharlatan. Aquest pandorabot tindrà un coneixement bàsic per defecte (un conjunt de fitxers AIML). Cliqueu a “Create Pandorabot”. La pantalla de la dreta mostra que el bot s'ha creat correctament:

4. Cliqueu al link “publish”.

Seguidament, apareixerà una nova pàgina web amb un link similar a aquest. La part final del link indica l'id del bot:

http://www.pandorabots.com/pandora/talk?botid= e629eab1be378736

5. NO tanqueu l'explorador web on teniu l'id del vostre bot (el necessitareu més endavant!).

Cliqueu el link anterior i ja podeu parlar una mica amb el vostre bot. No us entretingueu molt que sinó no terminarem el taller!

4/14

Page 5: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

6. Aneu de nou a la pestanya “Pandora Botmaster” del vostre explorador web. A continuació podeu revisar una mica el coneixement de BotCharlatan. Cliqueu a l'opció AIML del menú superior, seleccioneu un “Filename”, per exemple “star.aiml” i cliqueu “Browse”. Podeu veure doncs el coneixement actual del bot (imatge de la part dreta). Encara que es pot afegirnou coneixement al bot, ara mateix no ho farem.

7. Més endavant podrem conversar amb BotCharlatan també des d'un món virtual 3D.

5/14

Page 6: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

Part 2. Instal·lació i connexió al servidor de Mons Virtuals OpenSimulator (linux)

En aquesta segona part del laboratori instal·larem OpenSimulator com a servidor de mons virtuals.És un servidor lliure basat en el protocol de comunicació de Second Life (món virtual propietari deLinden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com elvisor/client s'executaran a la mateixa màquina). Després, crearem contingut 3D al món i farem unamica de scripting (programació) per a fer més dinàmica la interacció amb els objectes al mónvirtual.

Pas 1: Instal·lació del servidor OpenSimulator

1. Obriu una consola a linux. Trobareu el menú a la part inferior esquerra de la pantalla (KDE– Terminal)

2. Una vegada oberta la consola, estareu situats al directori home (~). Canvieu-vos (cd) aldirectori Escriptori, després feu la comanda ls, veureu doncs el contingut del directori. Ennegreta indiquem el directori on esteu situats i en cursiva les comandes que heu de teclejar.Després de cada comanda, si-us-plau, pulseu INTRO.

~$~$ cd Escriptori ~/Escriptori$ ls

3. Com haureu vist, a l'Escriptori està el fitxer del servidor OpenSimulator (opensim-0.7.4.tar.gz). Des de casa també ho podeu trobar a: http://dist.opensimulator.org/opensim-0.7.4.tar.gz. Ara heu de descomprimir aquest fitxer amb la comanda tar. NOTA: A Linux espoden completar comandes automàticament usant el tabulador, per exemple quan hagisteclejat part del nom del arxiu «open» si després pressiones el tabulador, es completa elnom del fitxer «opensim-0.7.0.4.tar.gz».

~/Escriptori$ tar zxvf opensim-0.7.0.4.tar.gz

6/14

Page 7: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

4. Entreu al directori bin dintre de l'OpenSimulator:

~/Escriptori/$ cd opensim-0.7.4/bin

5. Executeu la comanda que engega el servidor OpenSimulator:

~/Escriptori/opensim-0.7.4/bin$ mono ./OpenSim.exe

6. A la primera execució d'OpenSimulator, el servidor pregunta diversa informació:

• New region name []: – Escriviu el nom: Projecte• Region UUID – Teclegeu intro per acceptar per defecte.• Region Location – Teclegeu intro per acceptar per defecte.• Internal IP address – 0.0.0.0. Teclegeu intro per acceptar per defecte.• Internal port – 9000. Teclegeu intro per acceptar per defecte.• Allow alternate ports – Teclegeu intro per acceptar per defecte.• External host name – Teclegeu intro per acceptar per defecte.• New estate name [My Estate:] - Teclegeu intro per acceptar per defecte.• Estate owner first name [Test] – escriviu Master• Estate owner last name [User] – escriviu Comander• Password – escriviu: 1234• Email [] - Teclegeu intro per acceptar per defecte.• User ID [] - Teclegeu intro per acceptar per defecte.

Ja està instal·lat el servidor, es pot veure a la consola el següent: Region (Projecte) #:

7/14

Page 8: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

Es important NO tancar la consola ON ESTÀ EXECUTANT EL SERVIDOR! A continuació us connectareu a aquest servidor a través d'un programa client anomenat Singularity.

Pas 2: Execució d'un client de mons virtuals i connexió al servidor.

1. Cliqueu a l'icona Singularity que trobareu a l'Escriptori.

2. Ara apareix una pantalla que demana un login i un password (recordeu: Master Comanderi Password: 1234). Selecciona com Grid: localhost. La resta d'opcions, per defecte.

Heu d'acceptar les condicions del servei, i al missatge «Your requested location is notcurrently available. You have been moved into a nearby region» doneu-li «close» per acontinuar. A la següent pantalla podeu veure el vostre avatar a la regió Project mantinguda pel servidord'OpenSim que teniu executant a la vostra màquina (localhost). Podeu visitar la regióutilitzant les tecles del cursor.

8/14

Page 9: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

Depenent de l'hora de conexió veureu l'alba o la posta del sol. Podeu canviar la visualitzacióde l'entorn amb el menú “World”, opció “Environment Settings”:

Per defecte, la camera està en primera persona, això significa que està situada en una posició una mica darrera de l'avatar. Podeu veure els controls de la camera seleccionant en el menu View l'opció de Camera Controls, també es pot controlar la camera amb el teclat Spin (CTRL+ALT+mouse), Zoom (botó del mig del mouse), Pan (CTRL+ALT+SHIFT+mouse). Per regresar a la vista inicial, pressioneu ESC.

Per provar els controls de moviment de l'avatar, seleccioneu en el menú “View” i l'opciódesplegable “Movement Controls” (l'últim botó serveix per a fer saltar l'avatar):

Podeu canviar l'aspecte del vostre avatar fent clic amb el botó dret sobre l'avatar, seleccioneu “Appearance”.

9/14

Page 10: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

N'hi han altres opcions d'edició de contingut com afegir textures, terreny, so, animació iconfigurar la física per considerar per exemple la gravetat.

3. Com haureu vist, la regió (o escenari) que ha aparegut per defecte és una illa. Aracarregarem una altre regió (Basic-House.oar) que tenim emmagatzemada al servidor. Aneua la consola (clic a la finestra minimitzada “Konsole” que n'hi ha a la part inferior de lapantalla) on tenim executant el servidor i teclegeu la següent comanda:

Region (Projecte) # load oar Basic-House.oar

Veureu al visor que el servidor carrega la nova regió. Podeu passejar una mica pel nou escenari. A la següent imatge es pot veure l'avatar dintre de la casa. Podeu seleccionar “Fly”per volar, o doble clic a la tecla de direcció per córrer enlloc de caminar.

De la mateixa manera que hem carregat l'oar de la casa, podriem haver carregat l'oar del Recomenador 3D mostrat a la presentació:

10/14

Page 11: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

Part 3. Creació de contingut 3D i scripting al món virtual Pas 1: Creació de contingut 3D al mon virtual.

En aquest pas podeu crear contingut 3D al món virtual. On esteu (dins o fora de la casa),seleccioneu el menú superior “View”, submenú “Build”. Ara seleccioneu una de les figuresgeomètriques que es veuen a la part superior i feu clic a terra per a construir un objecte.

També podeu crear objectes utilitzant el menú contextual (clic a terra amb el botó dret, opció“Create”). Podeu editar paràmetres d'aquests objectes com l'altura, l'amplada o la profunditat.També podeu fer transformacions geomètriques com translació, rotació o escalat (als 3 eixos). Cadatipus de transformació activa diferent eixos interactius (eixos lineals per les translacions, esfèricsper les rotacions, eixos com cubs per escalar l'objecte.

11/14

Page 12: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

Pas 2: Scripting (programació)

En aquest pas afegireu comportament als objectes del món virtual. En particular, fareu que unobjecte cub (que representa el que sería un bot conversacional) pugui mantenir una conversa ambels usuaris.

Per a això:

1. Al món virtual, creeu un objecte cub (Menu View-Build, seleccioneu el cub i feu clic aterra). Amb el ratolí a sobre del cub, feu clic amb el botó dret i seleccioneu “Edit”, aneu a lapestanya “Content” (1), i cliqueu el botó “New Script” (2) per a crear un nou script. Feudoble clic sobre “New Script” (3) i apareixerà l'script per defecte, que més tard substituiremper un nou script.

2. Obriu amb doble clic l'script PandoraBot.txt que trobareu a l'escriptori (seleccioneu TOT ifeu CTRL+C). Aquest script permet “escoltar” (llListen) el chat del propietari de l'objecte, detectarautomáticament que el propietari ha entrat un text (listen). Doncs, aquest text s'envia(mitjantçant el protocol http, llHTTPRequest) al pandorabot creat en el pas 1 d'aquest taller. Laresposta del pandorabot es enviada (http_response) al món virtual, on es mostra en el chat(llSay). És molt important substituir el botid pel id del vostre bot conversacional.

//Aquest és un comentari, línia que no es processa, només per documentar el codi.string url;

string botid="a4b3788a8e3419e1"; //ESCRIVIU AQUÍ L'ID DEL VOSTRE PANDORABOTlist params;integer brainon;

default{ state_entry(){ llListen(0, "", llGetOwner(), "");

12/14

Page 13: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

}

touch_start(integer total_number){ if (brainon==TRUE){ llSay(0,"AI Chatbot Disabled!"); brainon=FALSE; } else{ llSay(0,"AI Chatbot Enabled!"); brainon=TRUE; } }

listen(integer channel, string name, key id, string message){ if (brainon==TRUE){ // Info API Pandorabots http://www.pandorabots.com/botmaster/en/faq // llDetectedKey Returns a key that is the UUID of the detected object // or avatar number. string url="http://www.pandorabots.com/pandora/talk-xml?botid="+botid+"&custid=" + (string)llDetectedKey(0)+"&input="+llEscapeURL(message); llHTTPRequest(url,params,""); //Envio a pandora bot el message que l'usuari ha escrit al chat. } }

http_response(key request_id, integer status, list metadata, string body){ list response=llParseString2List(body,["<that>"],["</that>"]); llSay(0,llList2String(response,1)); //La resposta rebuda de pandorabot s'escriu al chat. }

} //fi script

3. Torneu a Singularity, elimineu el contingut del script per defecte, i feu paste (CTRL+V) del'script PandoraBot.txt al script «New Script».

4. Cliqueu “Save” a l'editor de scripts. Ja podeu tancar la finestra del “New script”.

5. Tenint seleccionat l'objecte, i dintre del mateix diàleg (Menu View-Build), aneu ara a lapestanya “General” i en “Name”, escriviu “Bot conversacional”. Tanqueu la finestra.

6. Ara pots tocar l'objecte per activar el bot i parlar amb ell des del chat.

7. Ara podeu canviar el color inicial del cub a vermell, i quan l'usuari vulgui parlar amb ell,just després del missatge “AI Chatbot Enabled!” s'ha de canviar el color a verd (indicantque ja es pot parlar).

Per aixó, podeu utilitzar la funció llSetColor de LSL (Linden Scripting Language). El colors'indica amb un vector de tres components, Red, Green, Blue: <R, G, B>. Per exemple, perindicar el color vermell, s'ha d'escriure:

llSetColor(<1.0, 0.0, 0.0>, ALL_SIDES);

13/14

Page 14: Xerrades Taller de la Facultat de Matemàtiques de la UB ......Linden Labs). Primerament, treballarem des de l'ordinador en local (tant el servidor com el visor/client s'executaran

Per indicar el color verd:

llSetColor(<0.0, 1.0, 0.0>, ALL_SIDES);

Doncs, per a que el cub tingui inicialment color vermell, s'ha d'incloure una nova línia amb llSetColor a state_entry(). Penseu ara, on aniria el canvi de color (verd<->vermell) dins de touch_start(). Prova-ho!

Referències

• http://www.alicebot.org/aiml.html

• http://opensimulator.org/wiki/Main_Page

• http://wiki.secondlife.com/wiki/LSL_Portal/es

NOTA FINAL: Ara us convidem a provar (ho podeu fer des de casa) el sistema de recomanació conversacional amb una interfície 2D que ha presentat la professora Maria Salamó: http://164.77.134.91:8080/WebRec/signin.htm

14/14