Cha bo pa a la Sede Elec ´onica de la Di ecci´on
Gene al de Polic´ıa
Cha bo o Elec onic Headqua e s o he
Spanish Na ional Police
TRABAJO FIN DE GRADO
GRADO EN INGENIER´
IA INFORM ´
ATICA
CURSO 2021–2022
Rebeca He anz G´omez
Di ec o es
Luis Ja ie Ga c´ıa Villalba
Ana Lucila Sando al O ozco
Depa amen o de Ingenie ´ıa del So wa e e In eligencia A i icial
Facul ad de In o m´a ica
Uni e sidad Complu ense de Mad id
Mad id, Junio de 2022
Ag adecimien os
A mis di ec o es del TFG, que han con iado en m´ı desde el p incipio pa a ealiza es e
p oyec o. Tambi´en a Luis, Sand a y Daniel po o ece me un apoyo con inuo du an e odas
las semanas, ayud´andome con las dudas que en´ıa sob e el c´odigo y documen aci´on.
A odo el g upo de polic´ıas que me han explicado los ´ami es den o de la polic´ıa,
siemp e me han es ado o eciendo su ayuda y d´andome su eedback.
A mi amilia y a Ma ´ıa que siemp e han es ado ahi, apoy´andome y haciendo un poco
m´as ´acil mi ida es udian il.
A´
Al a o Cas illo, qui´en ha dado un sopo e inc e´ıble sob e la he amien a de Rasa
S ack.
A la Facul ad de In o m´a ica de la Uni e sidad Complu ense de Mad id po habe nos
o ecido he amien as online en momen os de COVID-19 con los que he podido a anza
en el abajo sin ene que acudi p esencialmen e.
iii
´
Indice Gene al
´
Indice de Figu as IX
´
Indice de Tablas XI
Lis ings XI
Lis a de Ac ´
onimos XV
Abs ac XVII
Resumen XIX
1. In oducci´
on 1
1.1. Mo i aci´on .................................... 1
1.2. Obje o de la In es igaci´on ............................ 2
1.3. Plan de T abajo ................................. 2
1.4. Es uc u a del T abajo .............................. 3
2. Con ex o de la In es igaci´
on 5
2.1. His o ia de los Asis en es Con e sacionales .................. 5
2.2. Momen o Ac ual ................................. 6
2.3. In eligencia A i icial y P ocesamien o del Lenguaje Na u al ......... 7
2.3.1. In eligencia A i icial ........................... 7
2.3.2. P ocesamien o del Lenguaje Na u al .................. 8
2.4. Funcionamien o de un Cha bo ......................... 11
2.5. F amewo ks y Lib e ´ıas U ilizadas ....................... 13
i ´
INDICE GENERAL
2.5.1. He amien as U ilizadas ......................... 13
2.6. Sede Elec ´onica ................................. 14
2.6.1. Apa ado Ex anje ´ıa .......................... 15
2.6.2. Reno aci´on y Solici ud de Pasapo e o DNI .............. 16
3. Es ado del A e 19
3.1. Con ex o Digi al ................................. 19
3.1.1. Cha bo s en el Sec o de la Medicina .................. 19
3.1.2. Cha bo s en el Sec o de la Educaci´on ................. 20
3.1.3. Cha bo s en el Sec o Banca io y Segu os ............... 21
3.2. F amewo ks de Desa ollo de Cha bo s ..................... 21
3.3. Asis en es Con e sacionales Realizados con Rasa S ack ............ 23
4. Me odolog´
ıa y an´
alisis del p oyec o 25
4.1. A qui ec u a Gene al del T abajo ........................ 25
4.2. Elecci´on de He amien a ............................. 28
4.3. Funcionamien o de Rasa S ack ......................... 29
4.3.1. Componen es de Rasa .......................... 30
4.4. Despliegue de He amien a ........................... 43
4.5. Conexi´on con Teleg am y Se icio Web ..................... 44
4.5.1. Teleg am ................................. 45
4.5.2. Se ido Web ............................... 47
5. Expe imen os y Resul ados 49
5.1. P uebas con la He amien a REST ul S ess .................. 49
5.2. Tes Uni a ios sob e Ac ions y Po cen ajes de Con ianza ........... 50
5.3. Compa aci´on de Resul ado Ob enidos ..................... 53
6. Conclusiones y T abajo Fu u o 55
6.1. Conclusiones ................................... 55
6.2. T abajo Fu u o .................................. 55
´
INDICE GENERAL ii
7. In oduc ion 57
7.1. Mo i a ion .................................... 57
7.2. Pu pose o he In es iga ion ........................... 58
7.3. Wo k Plan ..................................... 58
7.4. Disse a ion S uc u e .............................. 59
8. Conclusions and Fu u e Wo k 61
8.1. Conclusions .................................... 61
8.2. Fu u e Wo k ................................... 61
A. In o maci´
on sob e Rasa S ack 63
A.1. Componen es de Rasa S ack ........................... 63
A.1.1. En idades, In en s y Slo s ........................ 63
A.1.2. Sin´onimos y Tablas de B´usqueda .................... 64
A.1.3. His o ias pa a el En enamien o del NLU ............... 64
A.2. Es uc u a de Rasa S ack ............................ 65
Bibliog a ´
ıa 67
´
Indice de Figu as
2.1. In eligencia A i ical, Machine Lea ning y Deep Lea ning ........... 8
2.2. Relaci´on en e IA y NLP ............................. 8
2.3. Es uc u a de NLP ................................ 9
2.4. Es uc u a del Cha bo [RAMI17] ....................... 12
2.5. Esquema de paque es ............................... 14
2.6. P´agina inicial ................................... 15
2.7. P ocedimien os de Ex anje ´ıa ......................... 15
2.8. Ejemplo de T ´ami e ............................... 16
2.9. Acceso a los ´ami es ............................... 16
2.10. Pe ici´on de ci a .................................. 17
3.1. Resul ado isual del asis en e .......................... 24
4.1. Da a Flow [LBP+18] ............................... 25
4.2. Comp obaci´on de en ada ............................ 26
4.3. Diag ama de es ados-P egun a Usua io ..................... 27
4.4. Tipo de p egun as y espues as ......................... 27
4.5. Casos de uso ................................... 28
4.6. Clasi icaci´on de un mensaje ........................... 29
4.7. Esquema de pasos - Rasa S ack ......................... 30
4.8. Ejemplo de uso con Coun Vec o ize ...................... 41
4.9. Ejemplo de uso con LexicalSyn ac icFea u ize ................ 41
4.10. Ejemplo de uso con DIETClassi ie ....................... 41
4.11. Ejemplo de ResponseSelec o .......................... 42
ix
x i Lis a de Ac ´
onimos
VLE Vi ual Lea ning En i onmen
Abs ac
Nowadays, he e is a g ea numbe o con e sa ional assis an s in many di e en
ins i u ions, such as Si i o Alexa. Tha is he eason why i was deemed necessa y o
de elop a cha bo which helped use s wi h hei doub s abou he p ocedu es ha can
be ca ied ou in he en i onmen o he Na ional Police (Polic´ıa Nacional) Elec onic
Headqua e s. Wi hin his con ex , i is decided o ocus his End o Deg ee Disse a ion
on de eloping a con e sa ional assis an capable o answe ing simple ques ions ega ding
immig a ion ma e s, and enewal o applica ion o an ID ca d o Passpo . Be o e
p og amming he assis an , a p e ious analysis and s udy o he ools a ailable o he
de elopmen o cha bo s in o de o ind he mos adequa e applica ion. The amewo k
chosen is Rasa S ack, gene a ed by Machine Lea ning algo i hms capable o answe ing
simple ques ions o mula ed h ough na u al language. Addi ionally, he cha bo has
been published in wo ex channels: Teleg am, and he web se e p o ided by he ool
Bo F on . The esul o his p ojec is a con e sa ional assis an de eloped wi h Rasa
F amewo k, which is capable o answe ing documen a ion- ela ed ques ions, as well as
helping use s ca y ou he p ocedu es ha a e a ailable on he Na ional Police Elec onic
Headqua e s. Mo eo e , his End o Deg ee Disse a ion se es as a manual o all he
unc ionali ies ha Rasa S ack has ega ding he p og amming o a cha bo .
Keywo ds: Cha bo , Con e sa ional Assis an , Elec onic O ice, En i ies, ID,
Immig a ion Ma e s, Machine Lea ning, Na u al Language P ocessing, Passpo , Polic´ıa
Nacional, Rasa.
x ii
Resumen
Ac ualmen e hay una g an di e sidad de asis en es con e sacionales en di e en es
ins i uciones, como po ejemplo Si i o Alexa. Po ello se io necesa io desa olla un
cha bo que ayuda ´a a los usua ios a esol e sus dudas sob e los ´ami es que se encuen an
den o de la Sede Elec ´onica de la Polic´ıa Nacional. Con es e con ex o, se decide en oca
el T abajo Final de G ado en desa olla un asis en e con e sacional que pueda esponde
p egun as sencillas elacionadas con los p ocesos de ex anje ´ıa, eno aci´on y solici ud del
dni o pasapo e. A la ho a de p og ama el asis en e, se ha ealizado un es udio p e io de
he amien as dedicadas al dise˜no de cha bo s con el in de encon a la aplicaci´on id´onea.
Finalmen e, el amewo k que se u iliza es Rasa S ack, gene ado po algo i mos de Machine
Lea ning capaces de esponde a mensajes o mulados a a ´es del lenguaje na u al. Po
o o lado, se ha publicado el asis en e en dos canales de ex o: Teleg am y el se ido
web o ecido po la he amien a Bo F on . En esul ado de es e p oyec o es un asis en e
con e sacional desa ollado con Rasa F amewo k, capaz de esponde a cues iones sob e
documen aci´on o guia al usua io en los ´ami es que b inda la Polic´ıa Nacional. Adem´as,
es e T abajo Fin de G ado explica como un manual odas las uncionalidades que iene
Rasa S ack con el in de p og ama un cha bo .
Keywo ds: Ap endizaje Au om´a ico, Asis en e con e sacional, Cha bo , DNI, En idades,
Ex anje ´ıa, Pasapo e, Polic´ıa Nacional, P ocesado del Lenguaje Na u al, Rasa, Sede
Elec ´onica.
xix
Cap´ı ulo 1
In oducci´on
1.1. Mo i aci´on
Los p ocesos sob e la Sede Elec ´onica del Cue po Nacional de Polic´ıa han ido
e olucionando y su ido cambios debido a la pandemia po el Co ona i us (COVID-19).
Po ello, los ciudadanos se encuen an con m´as p egun as a la ho a de necesi a algunos
de los pun os que b inda es a p´agina web.
La polic´ıa p esenci´o es a ele aci´on de p egun as, y po ello se decidi´o que se ´ıa de
u ilidad c ea un cha bo que ayuda a al ciudadano con las dudas que u ie a sob e es os
´ami es. Po an o la mo i aci´on de es e p oyec o eside en esponde dichas dudas que
p esen e el usua io median e un asis en e con e sacional in eligen e.
Un cha bo , o bo con e sacional, es un p og ama in o m´a ico que in e ac ´ua con
pe sonas a a ´es de un cha ex ual o median e oz, o eciendo espues as y soluciones
´apidas a a eas epe i i as y p egun as comunes suscep ibles de se au oma izadas. Lle an
exis iendo desde los p incipios de la p og amaci´on pe o g acias a los a ances ealizados
den o del mundo de la in eligencia a i icial du an e es os ´ul imos a˜nos, han hecho esu gi
el in e ´es en ellos debido a las nue as ´ecnicas de econocimien o y an´alisis del lenguaje
na u al.
Con es e con ex o se puede da uso a dos campos de la in eligencia a i icial:
Na u al Language Unde s anding (NLU) yNa u al Language P occessing (NLP). Es os dos
componen es apo an esul ados conc e os sob e las cues iones que ealizan los clien es,
comp endiendo el habla humana a medida que se ep oduce y adem´as capaci a a un
sis ema de comp ende el signi icado e in enci´on que encie a una ase. Ac ualmen e
exis en a ias aplicaciones que hacen uso de es os campos con el in de dise˜na un asis en e
con e sacional. El ejemplo que se e en es e abajo es Rasa, amewo k sencillo y comple o
con odas las uncionalidades necesa ias.
Pe o p ime o, an es de empeza a p og ama , se necesi a ex ae odas las dudas
posibles encon adas po o os y adem´as de la in o maci´on deposi ada en la misma Sede
Elec ´onica, pa a su pos e io an´alisis y ecopilaci´on en un da ase , con el in de en ena
al cha bo .
1
2Cap´
ı ulo 1. In oducci´
on
1.2. Obje o de la In es igaci´on
El obje i o de es e p oyec o es el dise˜no e implemen aci´on de un cha bo basado en las
p egun as ealizadas con an e io idad an o en o os o dudas comunes suminis adas po
la Polic´ıa. Con es e elemen o se p e ende mejo a y agiliza los p ocesos que pe enecen a
la Sede Elec ´onica, y a su ez, ayuda al ciudadano, espondiendo las cues iones que le
puedan su gi mien as isi a la web. Po an o, la cla e es halla c´omo se a acele a las
in e acciones en e pe sonas y se icios, mejo ando as´ı la expe iencia del clien e. Al mismo
iempo, se quie e o ece a la Polic´ıa una opci´on pa a mejo a el p oceso de comp omiso
con los clien es y adem´as bene icia la e iciencia ope a i a al educi el cos o ´ıpico del
se icio al clien e.
De mane a pa alela, se iene la in enci´on de clasi ica las p egun as y espues as que
se ex aigan con el in de ob ene un n´ume o de exp esiones y palab as que c een un
ocabula io pa a luego en ena el cha bo . A a ´es de es e p oyec o, adem´as, se p e ende
en ende como uncionan los asis en es con e sacionales, analiza como es su es uc u a y
encon a las p incipales di icul ades que los ingenie os de in o m´a icos se encuen an a la
ho a de desa olla dicho so wa e.
1.3. Plan de T abajo
El desa ollo de es e abajo se ha ealizado en es ases:
1. In es igaci´
on:
Du an e los p ime os es meses se lle ´o a cabo un pe iodo de adap aci´on al con ex o
del abajo y de adquisici´on de conocimien os necesa ios pa a comenza con el
pos e io desa ollo. Al comienzo, se ealiz´o una euni´on gene al en la que se explic´o
el pun o de pa ida del abajo, cuales iban a se los obje i os que log a y cuales iban
a se los conocimien os necesa ios. T as es o, se aco da on nume osas euniones con
el in de ealiza un seguimien o del p og eso en la in es igaci´on y pa a esol e las
posibles dudas que su gie an. O o mo i o po el cual se conce a on dichas euniones
ue pa a pode explica los undamen os b´asicos de las aplicaciones con la que se
pueden p og ama asis en es. En las euniones ambi´en se explica on nume osas
he amien as que acili a ´ıan la labo de in es igaci´on. Una de es as he amien as
ue Google Schola , la que el equipo usa ´ıa pa a busca a ´ıculos cien ´ı icos sob e
in es igaciones an e io es ealizadas sob e el mismo campo de es udio. Finalmen e,
una ez ob enidas a ias conclusiones ace ca los eque imien os del p oyec o, se
comenz´o a da p io idad al desa ollo.
2. Desa ollo:
Una ez se adqui ie on los conocimien os necesa ios pa a pode empeza a c ea
una e si´on s´olida del p oyec o, se decidi´o comenza con la codi icaci´on de la
p opues a. La ase de in es igaci´on no ces´o, ya que e a imp escindible sabe sob e
concep os a anzados del lenguaje de p og amaci´on de Py hon y manejo con la
he amien as Rasa S ack. Du an e es a ase se cons uye on ambi´en los da a se s
de en enamien o, basados en in o maci´on ex a´ıda de abajos le´ıdos du an e la ase
an e io .
3. Expe imen aci´
on:
1.4. Es uc u a del T abajo 3
Finalmen e se ealiza on los p o o ipos de la idea inicial, comenz´o el p oceso de
expe imen aci´on, en el qu´e se ealiza on p uebas en se ido es web pa a isualiza
el aspec o del cha bo . Tambi´en se ealiza on a ias p uebas que consis ie on en
i comp obando si el asis en e espond´ıa co ec amen e a odos los ´ami es que
aba caba el p oyec o. Po o a pa e se hicie on p uebas de es ´es con la he amien a
de REST ul. Finalmen e, se ealiz´o una compa aci´on de los esul ados ob enidos
de i ados de la ase de expe imen aci´on y con los adqui idos en o os abajos de
in es igaci´on.
1.4. Es uc u a del T abajo
El es o del abajo es ´a o ganizado en 6 cap´ı ulos y 1 anexo con la es uc u a que se
comen a a con inuaci´on:
El Cap´ı ulo 2se explica la his o ia de los asis en es con e sacionales, adem´as de
desc ibi la elaci´on ac ual que se man iene con la in eligencia a i icial. Po o o lado se
acla an concep os que son elemen ales pa a comp ende el uncionamien o de los cha bo s.
Finalmen e se desc ibe los p ocesos que aba ca es e p oyec o, mos ando el en o no de la
Sede Elec ´onica.
El Cap´ı ulo 3se p esen a el es ado del a e, donde se ealiza una e isi´on de
di e en es soluciones en ocadas en a ios sec o es emp esa iales, con el in de ap ecia
la compene aci´on de los asis en es en el pano ama econ´omico-social. Po o o lado, se
analizan odas las aplicaciones capaces de desa olla po un asis en e, explicando los
pun os a a o y en con a de cada uno, pa a luego oma la decisi´on m´as ace ada a es e
abajo. En es e apa ado se incluye una abla compa a i a que esume las p incipales
ca ac e ´ıs icas de cada p opues a analizada.
El Cap´ı ulo 4p esen a la me odolog´ıa y an´alisis del p oyec o. P ime o se explican
di e en es diag amas que han sido esenciales pa a es uc u a el asis en e. Luego, se
incide en el uncionamien o in e no de Rasa, desa ollando el con enido de cada iche o.
Finalmen e se a a ´a el ema del despliegue de Rasa y c´omo se ealiza la conexi´on en e
es a he amien a, Teleg am y un se ido web.
El Cap´ı ulo 5desc ibe los expe imen os ealizados pa a e alua la e ec i idad de
la p og amaci´on del asis en e p opues a en el cap´ı ulo 4y se p esen an los esul ados
ob enidos.
El Cap´ı ulo 6mues a las p incipales conclusiones de es e abajo y las l´ıneas u u as
de in es igaci´on.
Los Cap´ı ulos 7y8son las aducciones al ingl´es de la In oducci´on y de las
Conclusiones.
Cap´ı ulo 2
Con ex o de la In es igaci´on
En es a secci´on se explica el con ex o en el que se desen uel e el T abajo Fin de G ado. En
el pun o 2.1, se esume la his o ia de los cha bo s y c´omo comenza on a hace se un hueco en
es a sociedad. En la secci´on 2.2 se si ´ua en qu´e con ex o social se encuen a la humanidad
y c´omo es a in eg ada la digi alizaci´on en el d´ıa a d´ıa de las pe sonas. En el pun o 2.3,
se explica en qu´e consis e la in eligencia a i icial y se pun ualiza el ´e mino NLP. En el
siguien e apa ado 2.4 se de alla c´omo unciona un cha bo y los elemen os esenciales que
lo o man. En el siguien e pun o 2.5 se explica ´a la combinaci´on de lib e ´ıas que se u ilizan
pa a lle a a cabo el uncionamien o del asis en e. Finalmen e, en el apa ado 2.6 se explica
el pun o de pa ida del cha bo , la p´agina web de la Sede Elec ´onica y el apa ado donde
se encuen a el asis en e.
2.1. His o ia de los Asis en es Con e sacionales
Sob e el a˜no 1950, Alan Tu ing public´o el pape “Compu e Machine y and In elligence”,
en el que se explic´o el Tes de Tu ing [TH50], donde e i icaba si una m´aquina puede
llega a ene un compo amien o in eligen e simila al del se humano. El es consis ´ıa
en man ene una con e saci´on en e una pe sona y o a en idad (pe sona o m´aquina) a
a ´es del cha . En onces la pe sona en´ıa que de e mina si hablaba con una m´aquina o
un humano.
Pos e io men e, en 1960, el p ime p og ama que simulaba una con e saci´on ue ELIZA
[Wei66], c eado po el p o eso Joseph Weizenbaum. ELIZA econoce palab as cla e
o ases pa a ep oduci una espues a. El obje i o de es e cha bo e a simula a un
psico e apeu a escuchando los p oblemas de su in e locu o y esc ibi´endole las espues as
a sus p egun as; de es a mane a consegu´ıa ayuda a la pe sona y as´ı con inua ´a hablando
sob e sus p eocupaciones. Si al inal no en´ıa espues as disponibles, op aba po o as
´ecnicas, como la gene aci´on de p egun as u ilizando como base la ase que le dec´ıa su
pacien e.
Once a˜nos despu´es, en 1971, Kenne h Colby c e´o PARRY [PCFR16]; un asis en e
que u ilizaba una es uc u a pa ecida a ELIZA con el in de simula a un pacien e con
pa anoia. Pe o hab´ıa una di e encia en e es os dos cha bo s, PARRY si e a conscien e
de la con e saci´on y ambi´en de su es ado de ´animo. Po an o, las espues as no en´ıan
in luenciadas solo po la en adas sino ambi´en po las c eencias,deseos e in enciones de
PARRY. Po ejemplo, en´ıa la capacidad de igno a , cambia de ema de con e saci´on e
5
12 Cap´
ı ulo 2. Con ex o de la In es igaci´
on
3. Se buscan espues as candida as en la base de da os seg´un las cualidades ecogidas
en los in en os, las en idades y el con ex o.
4. Se c ea una lis a con las espues as escogidas.
5. Se selecciona la espues a a base del con ex o del mensaje y la lis a de esul ados.
6. Finalmen e se ob iene una espues a.
Es a in o maci´on se puede e esquema izada en la Figu a 2.4.
Figu a 2.4: Es uc u a del Cha bo [RAMI17]
2.5. F amewo ks y Lib e ´
ıas U ilizadas 13
2.5. F amewo ks y Lib e ´ıas U ilizadas
En es e apa ado se a a explica los amewo ks y lib e ´ıas que se han u ilizado pa a
p og ama el cha bo , adem´as del amewo k de Rasa S ack.
2.5.1. He amien as U ilizadas
Teleg am - The Bo Fa he [L´o20] o ece un sopo e de open-sou ce, asegu ando
solidez y sencillez a la ho a de c ea y usa bo s. Si se quie e c ea un bo en
Teleg am, el p ime paso es inicia un cha con Bo Fa he , un bo espec´ı ico pa a
c ea asis en es. Si u´andose en la con e saci´on, p egun a ´a al usua io sob e las
cualidades que se aplican al bo que se es ´a c eando (imagen del pe il, nomb e,
desc ipci´on,...), adem´as se p opo ciona ´a al usua io in o maci´on imp escindible como
el Token o el enlace di ec o al bo . Es a cla e se a a de una cadena de ca ac e es
que pe mi e su con ol median e pe iciones HTTP a la API.
Gi hub [Gi 22] b inda la posibilidad de c ea una p´agina web, ya que dispone de la
he amien a de pages, con la que deja subi un eposi o io a una u l. Funcionalidad
sencilla que con un simple index.h ml ya se puede es ea el cha bo en in e ne .
Bo F on [Joa21] es open sou ce que se ha u ilizado pa a da o ma o a la is a web
del Cha bo , g acias al c´odigo dejan en su p´agina web de Gi hub. Simplemen e con
copia el sc ip en el index.h ml y pe sonaliza algunos da os, ya se puede conec a
el p oyec o con una p´agina web.
Spacy [CC20] es una lib e ´ıa que se encuen a in eg ada in e namen e en Rasa, ya
que se u iliza pa a analiza el lenguaje na u al del usua io. A di e encia con o as
lib e ´ıas, p opo ciona esul ados m´as e icaces y ´apidos, con un 90 %. Con ella, se
ealiza una okenizaci´on de los mensajes, o ece de ec o es p e-en enados y sopo e
mul idioma.
Tenso Flow [AC21] es open sou ce que u iliza Rasa de mane a in e na ambi´en pa a
ealiza p ocesos de ap endizaje au om´a ico. A su ez ope a sob e a ays de da os
que disponen de m´as de una dimensi´on, g acias a las edes neu onales llamadas
enso es. Al en ena el cha bo se hace uso de es a lib e ´ıa.A su ez ambi´en ealiza
una okenizaci´on sob e el lenguaje na u al del usua io.
Rasa sdk [CC20] o ma pa e del conjun o de lib e ´ıas que hace posible la
p og amaci´on de ac ions.py con las clases Ac ion. Es as clases implemen an unciones
que il an los mensajes del usua io y de uel en una espues a conc e a median e las
unciones de name() y un(). Pa a ob ene un esul ado hace uso de elemen os como
el T acke , el Dispa che y domain.yml
Fuzzywuzzy [GLPC21] es o a biblio eca que se u iliza pa a compa a dos cadenas
de ca ac e es, como po ejemplo palab as u o aciones. El esul ado de uel o es un
n´ume o que equi ale a una p opo ci´on en e el 0 al 100 de la semejanza en e es os
dos elemen os. Si el alo que o na es ´a m´as p ´oximo al 0, en onces su equi alencia
es m´ınima, pe o en cambio si es m´as ce cano al 100, su igualdad es mayo .
JSON [Ali16] es una lib e ´ıa que se u iliza en es e p oyec o con el in de ob ene
da os de iche os con o ma o .json pa a su pos e io an´alisis. Lo bene icioso de es a
lib e ´ıa es c´omo es uc u a los da os y lo ´acil que esul a accede a los elemen os.
14 Cap´
ı ulo 2. Con ex o de la In es igaci´
on
A con inuaci´on en la Figu a 2.5 se mues a la elaci´on en e cada de una de las
he amien as explicadas:
Figu a 2.5: Esquema de paque es
2.6. Sede Elec ´onica
La Sede Elec ´onica es la p´agina web donde se a encon a aplicado el cha bo [Nac22],
espec´ı icamen e en los apa ados de ex anje ´ıa, pasapo e y DNI. La Sede Elec ´onica
pe enece al conjun o de se icios nacionales de Espa˜na, y pone a la disposici´on de los
ciudadanos a ios p ocesos pa a ges iona ´ami es legales.
En es e caso los apa ados son los siguien es:
P ocesos selec i os
DNI
Pasapo e
An ecenden es policiales
Ex anje ´ıa
Segu idad p i ada
Regis os elec ´onicos
Documen aci´on pa a iaja
Quejas y suge encias
Luego cada secci´on iene subapa ados y enlaces que edi igen a los o mula ios o las
webs donde se pueden ealiza es os ´ami es. Los ´ami es ac ualmen e se ges ionan de
mane a p esencial, pe o como obje i o u u o ienen planeado da el su icien e sopo e
web pa a ealiza la mayo ´ıa de mane a online. Un ejemplo de la apa iencia que iene la
p´agina inicial de la Sede Elec ´onica se e en la Figu a 2.6.
2.6. Sede Elec ´
onica 15
Figu a 2.6: P´agina inicial
2.6.1. Apa ado Ex anje ´ıa
Es e p oyec o es ´a cen ado jus o en es a secci´on, pa a pode esponde p egun as sencillas
y e´o icas que puedan su gi al usua io a la ho a de que e solici a alg´un ´ami e.
Los p ocedimien os disponibles en el apa ado de Ex anje ´ıa se pueden e en la Figu a
2.7. Al selecciona un apa ado de los que se han mos ado an e io men e, e edi ige a
una explicaci´on sob e el ´ami e. Tambi´en mues a enlaces de in e ´es pa a el usua io como
donde consul a las asas o la o icina de ex anje ´ıa o comisa ´ıa de polic´ıa m´as ce cana.
De odas es ´as p´aginas se ha ex a´ıdo la in o maci´on pa a c ea las espues as a las
p egun as que puede ecibi el cha bo , po ejemplo “¿Qu´e papeles necesi o pa a solici a
la c´edula?” o “¿Cu´an o cues a solici a la a je a de esidencia?”. En la Figu a 2.8 se e
un ejemplo de odos los da os que se pueden encon a po cada ´ami e.
Figu a 2.7: P ocedimien os de Ex anje ´ıa
16 Cap´
ı ulo 2. Con ex o de la In es igaci´
on
Figu a 2.8: Ejemplo de T ´ami e
2.6.2. Reno aci´on y Solici ud de Pasapo e o DNI
Pa a accede a es os ´ami es se debe de accede p ime o a los p ocesos de DNI o Pasapo e
elec ´onico. Se puede localiza en la p´agina una secci´on con la siguien e in o maci´on
mos ada en la Figu a 2.9. Cuando se hace click en “Ci a P e ia pa a DNI o Pasapo e”,
se edi ige a una p´agina donde el usua io debe ellena los campos obliga o ios con sus
da os pe sonales, elegi la echa y el cen o donde desea pedi ci a.
De es os ´ami es ambi´en se esponde a que documen aci´on es necesa ia o el p ecio
pa a ealiza la eno aci´on o solici ud del DNI o pasapo e. En la Figu a 2.10 se mues a
la p´agina de inicio pa a solici a o eno a el DNI y el pasapo e, de donde se ha ex a´ıdo
la in o maci´on pa a edac a el p ocedimien o de es os ´ami es.
Figu a 2.9: Acceso a los ´ami es
2.6. Sede Elec ´
onica 17
Figu a 2.10: Pe ici´on de ci a
Cap´ı ulo 3
Es ado del A e
Hoy en d´ıa el uso de asis en es i uales es ´a en auge y cada ez hay m´as emp esas
in e esadas en inco po a es os mecanismos pa a a ende a sus clien es. Po ello, hay que
conoce es e so wa e y sabe que ipo de cha bo es el m´as ap opiado pa a el negocio. En
la secci´on 3.1 se mues an di e en es cha bo s di ididos en es sec o es que ya es ´an siendo
u ilizados de mane a co idiana. En el pun o 3.2 se mues an las di e en es aplicaciones que
pe mi en el desa ollo de un cha bo . El el ´ul imo pun o 3.3, despu´es de habe explicado
las he amien as de dise˜no de cha bo s, se desc iben o os p oyec os desa ollados con
Rasa S ack, aplicaci´on que pos e io men e se explica ´a su uncionamien o.
3.1. Con ex o Digi al
Como se ha ci ado an e io men e, debido a la c isis y pos e io con inamien o po el
COVID-19, la digi alizaci´on es impo an e pa a el d´ıa a d´ıa de las emp esas, ya que apo an
al usua io la capacidad de esol e sus dudas de o ma emo a. Po ello p oponen en ajas
ecnol´ogicas, como los cha bo s, pa a agiliza sus come cios y ´ami es.
3.1.1. Cha bo s en el Sec o de la Medicina
El p ime asis en e a a a es OneRemission [kee21a], cha bo di igido a ayuda a
los pacien es que luchan con a el c´ance . Las ecnolog´ıas que u iliza son Node.js,
MongoDB, Wi .ai, Bo P ess y WebSocke . El esul ado es un sopo e que o ece planes
de alimen aci´on, eje cicios y p ´ac icas seleccionadas po p o esionales de la medicina
in eg a i a. De es a mane a, pueden p egun a dudas simples y p escindi po an o de la
supe isi´on de un m´edico. Sin emba go, si se llega ´a a necesi a la ayuda de un especialis a,
OneRemission o ece sesiones con onc´ologos en l´ınea las 24 ho as del d´ıa du an e oda la
semana.
El siguien e es Youpe [kee21b], asis en e di igido a mejo a la salud psicol´ogica
de los pacien es. Es ´a desa ollado con 13 ecnolog´ıas y se icios, incluidas HTML5,
Google Analy ics, jQue y, SPF, Google Apps o Business y IP 6 [c u22]. El esul ado
es una aplicaci´on que o ece e apia online po cha , sesiones i uales con psic´ologos
especializados y planes de medicaci´on en caso de necesi a .
O o cha bo a des aca es Babylon Heal h [Bab21], idea que su gi´o con el in de
de ec a la en e medad que pod´ıan padece los usua ios seg´un sus s´ın omas. El desa ollo
19
20 Cap´
ı ulo 3. Es ado del A e
consis i´o en c ea un conjun o de he amien as, dise˜nado en o no al ce eb o de un m´edico,
u ilizando IA. El u o de es e p oyec o es un asis en e con e sacional, en el que los
pacien es in o man, po oz o mensaje, del es ado en el que se encuen an. En pa alelo,
los m´edicos es udian los casos pa a ece a medicamen os o de i a a los pacien es a un
especialis a.
El pos e io asis en e i ual, Flo ence [oT17], iene la unci´on de simula el
compo amien o de una en e me a pe sonal. El desa ollo se basa en so wa e desa ollado
con algo i mos de ap endizaje au om´a ico, incluido el NLP; adem´as dispone de se ido es
en las pla a o mas de Facebook Messenge y Skype. El asis en e inal es capaz de eco da
a los pacien es que omen sus medicamen os y ealiza un esquema de los d´ıas y ho as a
las que deben de oma los.
O o asis en e que hay que ci a es Heal hily [Hea22], aplicaci´on que iene el labo de
in o ma sob e emas de medicina basados en uen es de al a iabilidad. El esul ado inal
es una aplicaci´on disponible en iOS, And oid, Facebook Messenge , Slack, KIK, Teleg am
y e si´on web que pe mi e al pacien e decidi de mane a m´as e icien e sob e emas de su
salud. Tambi´en unciona como in e media a pa a da in o maci´on sob e se icios m´edicos
en l´ınea.
3.1.2. Cha bo s en el Sec o de la Educaci´on
El p ime cha bo que se a desc ibi es Cou seQ [GBFAMC18], el cual dispone de
uncionalidades como eco da echas de en ega o mos a los ho a ios de los es udian es
y p o eso es. Su desa ollo se ealiz´o g acias a los a ances de en el campo in eligencia
a i icial, conc e amen e en las amas del ML, Big Da a ( ecopilaci´on y an´alisis de
da os) y NLP. El aspec o inal es el de una aplicaci´on capaz de desempe˜na las
uncionalidades an e io men e mencionadas y con la capacidad de se in eg ada en los
Lea ning Managemen Sys em (LMS) oVi ual Lea ning En i onmen (VLE), po ejemplo
Moodle.
El siguien e en desc ibi es el asis en e Ani [GBFAMC18], que iene el obje i o de
ealiza u o ´ıas pa icula es pa a acili a el comp omiso y la esponsabilidad de los
alumnos. El desa ollo es simila a los an e io es ya que es ´a p og amado a pa i de
algo i mos de ap endizaje au om´a ico con el in de ob ene esul ados pe sonalizados pa a
casa usua io, llegando incluso a pode sus i ui acciones de p o eso es. Finalmen e, se
consigue un asis en e que apo a elemen os que mo i an y e al´uan a los es udian es,
adem´as de inclui un cu so pa a ap ende ingl´es.
O o cha bo a des aca es Bo e [GBFAMC18], que a di e encia de los dem´as bo s,
es un obo ´ısico que ayuda a los alumnos en la Uni e sidad Obe a, si uada en Ca alu˜na.
El uncionamien o de Bo e se basa en ecnolog´ıa cogni i a pa a pode ap ende a pa i
del compo amien o demos ado po el alumnos. El u o inal es un asis en e ´ısico con
in e acciones a base de se˜nales de luz y mensajes sono os (como ases de mo i aci´on) o
mo imien os, con el obje i o de se i de ayuda a los es udian es a o ganiza sus a eas.
El pos e io asis en e i ual es el bo desa ollado en la Uni e sidad CEU Ca denal
He e a [CIO17].El obje i o es consegui acompa˜na al alumno en su cu so acad´emico y
esponde sus p egun as de mane a ins an ´anea y sin in e upciones. Su implemen aci´on se
basa en la he amien a de Mic oso Azu e, y ac ualmen e soluciona dudas adminis a i as,
pe o se espe a que en el u u o pueda de e mina la conduc a del alumno con el in de
aconseja le du an e su pe iodo acad´emico.
3.2. F amewo ks de Desa ollo de Cha bo s 21
Po ´ul imo, los obo s Peppe y Nao [Rob22] es ´an cen ados en la educaci´on
uni e si a ia. Se pueden p og ama po comple o con una in e az g ´a ica o di ec amen e
con el So wa e De elopmen Ki (SDK) y he amien as de codi icaci´on como Py hon y
C++. En e sus unciones se encuen an da y dinamiza las clases y e alua ac i idades.
3.1.3. Cha bo s en el Sec o Banca io y Segu os
Comenzando po el asis en e Eno [One22] undado po la emp esa Capi al One, es un
cha bo banca io y pu amen e “con e sacional”, lo que signi ica que depende casi po
comple o de IA pa a gene a sus espues as. Es o signi ica que Eno analiza cada mensaje
que ecibe pa a encon a la mejo espues a. El aspec o inal es un asis en e que esponde
p egun as sob e el saldo, mo imien os ecien es, echas de encimien o y l´ımi es de la
a je a.
El segundo asis en e se a a de ABIE [NEW18], que iene el obje i o de guia a
los agen es a a ´es del ´ami e de en a, pe mi i´endoles accede a in o maci´on y a
documen os. En elaci´on con su implemen aci´on, cuen a con algo i mos de In eligencia
A i icial y el sopo e de la emp esa Alls a e. Respec o a su aspec o inal, es un asis en e
con e sacional que o ece da os y p oduc os de mane a pe sonalizada seg´un el clien e.
Adem´as maneja m´as de 25.000 consul as po mes de 12.000 agen es [di 18], inc emen ando
a un i mo del 10 %. Es o es debido a que los agen es se es ´an concienciando de que g acias
a es e asis en e ob ienen un mejo esul ado de mane a m´as eloz.
El siguien e cha bo es Bo O e a [di 18], que acili a da os sob e un p og ama de
descuen os en ocio y comp as en Espa˜na. Pa a ello, los usua ios pueden ealiza p egun as
po mensaje di ec o o po oz y ob end ´an espues as sob e los descuen os en de e minados
´ambi os o luga es. El lenguaje que u iliza Bo o e a es ce cano y ameno, con el in del que
el clien e se sien a c´omodo en la con e saci´on. Po o o lado, es e se icio ya es ´a disponible
desde el a˜no pasado en aplicaciones como Facebook Messenge , y se puede accede a ´el
median e la p opia web o po la App de imaginBank.
El cua o asis en e a a segu os de iaje y es ´a c eado po la emp esa ARAG [ARA22].
Consis e en un asis en e de segu os de iaje que mues a in o maci´on sob e los p oduc os
de la compa˜n´ıa con el in de ayuda a los clien es con sus iajes. Es a he amien a pe mi e
que las emp esas puedan habla , a a ´es de la mensaje ´ıa ins an ´anea de Facebook, con los
consumido es sin necesidad de que haya una pe sona de ´as de la cuen a. El ocabula io
que emplea di e ido, sencillo y ameno, pa a que el usua io se sien a m´as con iado al
plani ica su desplazamien o.
El ´ul imo asis en e es Blue [BBV22], el nue o asis en e i ual del banco BBVA.
El obje i o es ayuda a los clien es y consul a in o maci´on sob e su cuen a. La
implemen aci´on se basa en algo i mos de NLP ydeML, o ap endizaje au om´a ico. De
es a mane a,el usua io in e ac ´ua con es e cha bo no solo ´ıa ex o esc i o, sino ambi´en
median e el uso de la oz. El esul an e asis en e se encuen a en la pa e supe io de echa
de la en ana de na egaci´on de la aplicaci´on de BBVA.
3.2. F amewo ks de Desa ollo de Cha bo s
Los amewo ks son un ipo de he amien as con una se ies de a chi os y pau as que
se u ilizan pa a implemen a p oyec os con una es uc u a y me odolog´ıa con el in de
28 Cap´
ı ulo 4. Me odolog´
ıa y an´
alisis del p oyec o
Figu a 4.5: Casos de uso
4.2. Elecci´on de He amien a
F en e a odas la he amien as desc i as an e io men e, se ha elegido la opci´on de
desa olla el cha bo con Rasa [VLRL19]. Es el amewo k que p esen a mejo es
ca ac e ´ıs icas, ya que iene un g an sopo e, documen aci´on y adem´as se puede dise˜na
cha bo s m´as complejos. Las cualidades que se an a ene en cuen a son:
Facilidad de ap endizaje: Es e concep o se e ie e al g ado de ´exi o ob enido du an e
el ap endizaje en el anscu so del iempo.
Sopo e de la comunidad: Se alo a si el amewo k iene una comunidad de ´as
dispues a a ayuda .
Documen aci´on exis en e: Se alo a la can idad y calidad de in o maci´on que exis e
an o o icial como c eada po la comunidad.
Madu ez ecnol´ogica: Cuan i ica en una escala del 1 al 9 el g ado de e oluci´on de
una ecnolog´ıa. El ni el 1 es la obse aci´on y epo e de p incipios y el ni el 9 se
conside a una ecnolog´ıa p obada con ´exi o en misiones.
Capacidad de pe sonaliza : Ca ac e ´ıs ica que pe mi e a la ecnolog´ıa adap a se al
p oyec o de cada clien e.
Ac ualizaci´on de so wa e: Analiza si los desa ollado es in oducen cambios y
a˜naden unciones nue as a la ecnolog´ıa.
A con inuaci´on, se puede e en la Tabla 4.1 la pun aci´on (1-10) de di e en es cualidades
esenciales que debe de ene odo amewo k.
4.3. Funcionamien o de Rasa S ack 29
AIML Dialog low IBM Wa son Rasa Flow XO Wi .ai
Ap endizaje(20 %) 6 7 7 6 7 6
Comunidad(20 %) 4 4 3 9 6.5 5
Documen aci´on(20 %) 5 6.5 6 9 7 6.5
Madu ez(15 %) 5 8 9 5 5 6
Pe sonaliza (15 %) 7 6.5 7 5 7 5
Ac ualizaci´on(10 %) 7 7 8 8 6 5
TOTAL 5.5 6.38 7 7.4 6.5 5.65
Tabla 4.1: Tabla compa a i a en e he amien as
Despu´es de analiza es a abla, el amewo k m´as comple o es Rasa S ack. Po ello se ´a
la he amien a que se a a u iliza en es e p oyec o.
4.3. Funcionamien o de Rasa S ack
Como se ha especi icado an es Rasa es ´a di idida en dos p incipales secciones: la pa e
de NLU y del Co e. Po an o, a la ho a de p og ama y o ma el da ase es impo an e
ene en men e el lujo que sigue dicha he amien a.
Las Figu a 4.6 y4.7 mues an el uncionamien o que oma Rasa S ack [PG21].
Figu a 4.6: Clasi icaci´on de un mensaje
30 Cap´
ı ulo 4. Me odolog´
ıa y an´
alisis del p oyec o
1. El igge que da comienzo al low se a a del en ´ıo de un mensaje a Rasa S ack, que
hace de B oke u O ques ado y iene la uncionalidad de o ganiza las conexiones
en e las di e en es capas.
2. Pos e io men e, la secci´on que en a en acci´on es la del NLU, desci ando el in en del
usua io y okenizando el mensaje, consiguiendo as´ı las en i ies y los slo s asociados.
Cuando se ealiza es e paso, ambi´en se calcula un g ado de con ianza, que es un
po cen aje basado en lo que en iende Rasa del mensaje. Si dicho c´alculo es meno al
40 %, se mues a un mensaje de que no se ha en endido al usua io.
3. En pa alelo, el componen e Co e se enca ga de decidi que acci´on oma seg´un
el pun o de la con e saci´on en que se encuen a el asis en e con el usua io. Es a
de e minaci´on de espues a la oma g acias a las his o ias que se han es ablecido en
su en enamien o y al po cen aje calculado con la coincidencia con dichas his o ias
de inidas en s o ies.yml.
4. Finalmen e se de uel e una espues a al usua ia po el mismo canal que el de en ada.
Figu a 4.7: Esquema de pasos - Rasa S ack
4.3.1. Componen es de Rasa
Las en idades o en i ies son palab as cla es imp escindibles pa a il a la in enci´on o el
in en de la p egun a que haga el usua io y sabe que espues a o u e ance da el asis en e.
Adem´as se pueden gua da los alo es de las en idades en slo s con el in de accede a
ellos en las di e sas unciones o ac ions. Todos es os componen es o ma ´an pa e de las
es uc u as s o ies, donde se c ea un lujo de in en s yu e ance.
4.3. Funcionamien o de Rasa S ack 31
Si se quie e sabe m´as sob e es os elemen os se ecomienda lee la in o maci´on
ecopilada en el Anexo Apa a en ende mejo el con enido de cada iche o del p oyec o.
A con inuaci´on se de allan su p og amaci´on.
Nlu.yml
Aqu´ı esiden odas los in en s con los que se ha en enado el asis en e. Cada in en
iene es ´a o mado po los mensajes m´as ecuen es de inidos den o de la Sede
Elec ´onica. Los in en s o man pa e de Rasa NLU y es la mane a que pe mi e
o ganiza y clasi ica los mensajes en iados po el usua io.
Los mensajes es ´an di ididos po la acci´on po la que p egun a el usua io:
•P oceso
•P ecio
•Documen aci´on necesa ia
Y ambi´en po el ipo de ´ami e, ya que se ha aba cado odos los p ocesos del
apa ado de ex anje ´ıa y eno aci´on/solici ud del pasapo e y DNI.
Como se puede ap ecia en el Algo i mo 4.1 hay palab as seleccionadas en e
co che es, es o quie e deci que el alo que esc iba el usua io se ´a gua dado
y pos e io men e analizado en la secci´on de ac ions.py. Cuando se es udie
es e componen e se explica ´a mejo el a amien o po el que pasa es e da o
(nomb e ami e).
Domain.yml
Secci´on dedicada a las espues as posibles que da el asis en e, llamadas u e ances.
Como los in en s, ambi´en pe enece a Rasa NLU y se u iliza pa a el en enamien o
del cha bo .
Su clasi icaci´on es ´a basada po la p egun a a la que esponde, y adem´as en es e
iche o se iene en cuen a los in en s de inidos en nlu.yml, las acciones que es ´an en
ac ions.py y el ipo de en idades que se gua dan. Es a especi icaci´on se debe a que
ambi´en son elemen os impo an es a la ho a de esponde al usua io, ya que las
acciones ambi´en son las enca gadas de esponde al clien e.
El comienzo del iche o empieza con la lis a de odos los in en s como se puede e
en el Algo i mo 4.2.
Pos e io men e hay que especi ica las en idades como en el Algo i mo 4.3. En es e
p oyec o solo se ha u ilizado una en idad ipo ex o que gua da el ´ami e po el que
p egun a el usua io.
A con inuaci´on, se esc iben odas las espues as que da el asis en e, excep o las que
p o engan de las acciones. Todas las u e ances deben de se nomb adas con un
nomb e ´unico y seguidas po el mensaje que da el cha bo . El Algo i mo 4.4 es un
ejemplo de la es uc u a que hay segui pa a decla a las u e ances.
Y inalmen e se nomb an las acciones que se encuen an en el iche o de ac ions.py
como se mues a en el Algo i mo 4.5.
32 Cap´
ı ulo 4. Me odolog´
ıa y an´
alisis del p oyec o
Algo i mo 4.1: Con enido de nlu.yml
1−in en : a j e a s s o l a s
2 examples :|
3−Ta je a de [es udian e ](nomb e ami e)
4−Ta je a e s i d e n c i a [ a m i l i a de ciudadano UE](nomb e ami e)
5−Ta je a e s i d e n c i a [la ga du ac i ´on ](nomb e ami e)
6−Ta je a de e s i d e n c i a y [ abajo ](nomb e ami e)
7−Ta je a [ amilia ](nomb e ami e)
8
9−in en : ami es−solos
10 examples :|
11 −Asigna [NIE ](nomb e ami e)
12 −Au o iz ac i ´on y e no aci ´on l a e s i d e n c i a [ empo al ](nomb e ami e)
13 −Au o izacion de [ eg eso ](nomb e ami e)
14 −Reg i s a [ciudadano de UE](nomb e ami e)
Algo i mo 4.2: Lis a de in en s
2 i n e n s :
3−s a
4−de sp e di
5−con i ma
6−nega
7−p egun as−in oSede
8−p egun as−ges iones
9−p egun as−ce i icados
10 −p egun as− i maElec
11 −p egun as−ex anje ia
12 −p egun as− eag upacion
13 −dudas−NIE−TIE
14 −...
Algo i mo 4.3: Especi icaci´on de la en idad
1 en i ies :
2−nomb e ami e
3
4 slo s :
5 nomb e ami e :
6 ype : ex
7 ini ial alue :NULL
8 au o ill : ue
9 in luence con e sa ion : ue
Algo i mo 4.4: Ejemplos de u e ances
1 u e ex anje ia :
2− ex :”Pa a pode s o l i c i a l a a j e a a m i l i a de l a UE es
3n e c e s a i o que e l a m i l i a comuni a io ,
4pueda p oba que i e n e medios
5s u i c i e n e s pa a pode s o s e n e l e economicamen e . ”
6
7 u e eag upacion :
8− ex :”Pa a hace una eag upacion
9no es n e c e s a i o en e p a i da de naci mien o espanol a ”
4.3. Funcionamien o de Rasa S ack 33
Algo i mo 4.5: Lis a de acciones
1 a c i o n s :
2−ac ion p ecio
3−ac ion p oceso
4−ac ion documen acion
5−ac ion il o
T ami esJSON.json
Documen o con o ma o JSON, que unciona como da ase de in o maci´on que
se que ´ıa sepa a de domain.yml, ya que es ´a o mado po un a ay, llamado
a ayT ami es que con iene odos los p ocesos que se pueden ealiza an o en
ex anje ´ıa, e in o maci´on impo an e a la ho a de eno a /solici a el pasapo e
o DNI. Es a in o maci´on se puede e en el Algo i mo 4.6.
De es e da ase ex aen la in o maci´on las acciones de la an e io igu a, dependiendo
de la p egun a del usua io. Cada ´ami e iene los siguien es elemen os:
•T ami e: apa ado que simplemen e nomb a el elemen o y si e de gu´ıa pa a el
p og amado .
•Alias: elemen o que con iene ca ac e ´ıs icas que ep esen an al ´ami e y po el
que se le pueden di e encia de los dem´as.
•P ecio: se especi ica el dine o que cues a ami a dicho p oceso o e gu´ıa al
enlace donde pode encon a el p ecio.
•Documen aci´on: se conc e a la documen aci´on necesa ia pa a ealiza el ´ami e
o ambi´en puede conduci al usua io a un link donde ambi´en se mues e es a
misma in o maci´on.
•P oceso: gu´ıa pa a solici a cualquie expedien e di igida al clien e. En algunos
elemen os es e apa ado es ´a complemen ado con un enlace, que especi ica mejo
los pasos que debe de segui el usua io seg´un sus condiciones.
p ocesosJSON.json
Documen o con o ma o JSON, que unciona como da ase con el ipo de solici udes
de in o maci´on que se puede hace sob e los ´ami es. El con enido de es e iche o se
mues a en el Algo i mo 4.7.
Es e da ase se u iliza pa a compa a el ´ul imo mensaje del usua io con los da os
p ocesosJSON.json, de es a mane a se comp ueba qu´e ipo de in o maci´on desea el
ecep o .
Ac ions.py
Fiche o dedicado a la p og amaci´on de unciones enca gadas de ex ae la
in o maci´on gua dada en las en idades y busca una espues a g acias a es e da o.
Po an o es e documen o es ´a o mado po clases de ac ions p oceden es de la
lib e ´ıa asa sdk y ienen el o ma o que se mues a en el Algo i mo 4.8.
En la unci´on name se de uel e el nomb e de la acci´on po el que se ´a econocida
la clase en los dem´as iche os como en s o ies.yml o domain.yml. Po o a pa e,la
unci´on un iene la l´ogica de la clase, donde se en ´ıa el mensaje desde el dispa che
g acias a la unci´on de u e message(” ex o”). Dos ejemplos de ac ions se en en los
Algo i mos 4.9 y4.10.
34 Cap´
ı ulo 4. Me odolog´
ıa y an´
alisis del p oyec o
Algo i mo 4.6: Fiche o ami esJSON.json
1”a ayT ami es”:[
2{
3” ami e ” :” P o oga de e s a n c i a de c o a du ac ion ” ,
4
5”alias”:” l a p o og a de e s a n c i a de c o a du aci on ” ,
6
7”p ecio”:” El p e c i o puede a i a dependiendo s i se dis po ne de
8 isado o no . Con isado −>31 ,22 eu os , Sin isado −>17 ,49 eu os
9( se inc emen a a en 1 ,06 eu os mas po cada dia que se p o ogue
10 l a e s a n c i a ) ” ,
11
12 ” documen acion ” :”−Imp eso de s o l i c i u d n n
13 −Pasapo e comple o o i u l o de i a je n n
14 −Do cu me n a ci n a c e d i a i a de dis po ne de medios economicos
15 s u i c i e n e s n n
16 −Documen acion a c e d i a i a de d is po ne de segu o m d i c o
17 de i a j e . n n
18 −Documen acion que g a a n i c e e l e o n o a l p a i s de p o ce de nc ia . n n
19 −Documen acion a c e d i a i a de l a s a zo ne s e x c e p c i o n a l e s po l a s que
20 se s o l i c i a la p o oga ” ,
21
22 ”p oceso”:” Se e a l i z a d en o de l a s e c c i o n de E x a n j e i a y l ue go
23 s e l e c c i o n a s e l apa ado de P o g a de e s an ci a co a de du acion .
24 En e s e apa ado pod as d es c a g a e e l Fo mula io EX00 ,
25 que end as que en ega e l l e n o en la O i cin a de E x an je ia ,
26 Je a u a S up e io o C o m i s a a de P o l i c i a . Po an o , dicho a mi e
27 se p oces a de mane a p e s e n c i a l . ”
28 },
Algo i mo 4.7: Fiche o p ocesosJSON.json
1{
2”a ayP oceso”:[” Como l o s o l i c i o ?” ,” Como p e d i l o ? ” ,
3” Que pasos debo de s e g u i ? ” ,” Donde l o hago ?” ,”Pasos”,
4” I n u c c i o n e s ” ,”Apa ado” ,”Seccion”,”Guia de como h a c e lo ” ,
5” P ocedimien o ” ,” P oceso ” ,”Guia” ,”Guide” ,”P occess”,”S eps”],
6”a ayDocumen acion”:[” Documen os n e c e s a i o s ” ,
7” Documen acion n e c e s a i a ” ,”Documen acion” ,” Papeles n e c e s i o ” ,
8”Pappe s” ,” Pappe s h a i need ” ,” Necessa y documen a ion ” ],
9”a ayP ecio”:[”P ecio”,”P ice”,”Money” ,” Dine o ” ,” Valo ” ,
10 ” Cos e ” ,”Eu os” ,” P ecio d el ami e ” ]
11 }
Algo i mo 4.8: Ejemplo ac ions
1 c l a s s Ac ionHello ( Ac ion ) :
2
3 de name( s e l ) −>Tex :
4 e u n ” ac ion name ”
5
6 async de un (
7 s e l ,dispa che :Collec ingDispa che , acke :T acke ,
8 domain :Dic [Tex ,Any ])−>L i s [Dic [Tex ,Any ] ] :
9 disp a c h e . u e message ( e x :” Hello Wo ld ! ” )
10
11 e u n [ ]
4.3. Funcionamien o de Rasa S ack 35
Algo i mo 4.9: Clase Ac ion P oceso
1 c l a s s Ac ionP oceso ( Ac ion ) :
2
3 #Donde s e ad ju di ca e l nomb e de l a u n c i ´on
4 de name( s e l ) −>Tex :
5 e u n ”ac ion p oceso”
6
7 de un ( s e l ,dispa che :Collec ingDispa che , acke :T acke ,
8 domain :Dic [Tex ,Any ])−>L i s [Dic [Tex ,Any ] ] :
9 #Se ob i ene e l alo de l a en idad ”nomb e ami e ”
10 nomb e ami e = ac k e . g e s l o ( ”nomb e ami e”)
11
12 #Se ob i ene e l ul imo mensaje d el u su a io
13 mensaje = a c k e . l a e s m e s s a g e [’ ex ’ ]
14
15 #Se ab e e l da ase y se ob ienen l o s da os d el a ay
16 wi h open ( ’ p ocesosJSON . json ’ ,’ ’ ,enc odin g =’ u 8’) as i l e :
17 da aP oceso = json . load ( i l e )
18
19 maxiP oceso = −1
20
21 #Buscamos e l apa ado que enga un mayo p o c en aj e de s i m i l i u d e n e
22 l o s elemen os de l a ay y nomb e ami e
23 o i in ange ( 15 ):
24 p ob abi li dad = uz z . o k e n s e a i o ( mensaje ,
25 da aP oceso [’a ayP oceso ’ ] [ i])
26 i p obabilidad >maxiP oceso :
27 maxiP oceso = p oba bi l id ad
28
29
30 i ( nomb e ami e !=NULL and maxiP oceso >50 ):
31 #Se ab e e l d a ase y se ob ienen l o s da os d el a ay
32 wi h open ( ’ ami esJSON . json ’ ,’ ’ ,en codi ng =’ u 8’) as i l e :
33 da a = jso n . load ( i l e )
34
35 maxi = −1
36 pos = 0
37
38 #Buscamos e l apa ado que enga un mayo p o cen a je de s i m i l i u d
39 en e e l a l i a s y nomb e ami e
40 o i in ange ( 15 ):
41 Token Se Ra io = uz z . o k e n s e a i o ( nomb e ami e ,
42 da a [’a ayT ami es ’ ] [ i] [ ’ a l i a s ’ ])
43 i Token Se Ra io >maxi :
44 maxi = Token Se Ra io
45 pos = i
46
47
48 #Se de uel e e l alo s i e l p o c en aj e es mayo que 50
49 i maxi >50 :
50 e s pu e s a = da a [’a ayT ami es ’ ] [ pos ] [ ’ p oceso ’ ]
51 dis p a c he . u e me ssage ( es p ues a )
52
53 e l s e :
54 dis pa che . u e mess age ( ”Lo si en o , me pod ias e p e i e l
55 a mi e d el que q u i e e s i n o m a e ? Recue da que ie ne n que s e
56 a m i es de l a Sede E l e c o n i c a ” )
57
58 e u n [Sl o S e ( ”nomb e ami e”,NULL) ]
59
60 e l s e :
61 d isp a c he . u e me ssa ge ( ”Lo sie n o , me po d ia s e p e i e l
62 a mi e d el que q u i e e s i n o m a e ? Recue da que ie ne n que s e
63 a m i es de l a Sede E l e c o n i c a ” )
64 e u n [ ]
36 Cap´
ı ulo 4. Me odolog´
ıa y an´
alisis del p oyec o
Algo i mo 4.10: Clase Ac ion Fil o
1 c l a s s A c ionFil o ( Ac ion ) :
2
3 #Donde s e ad ju di ca e l nomb e de l a u n c i ´on
4 de name( s e l ) −>Tex :
5 e u n ”ac ion p oceso”
6
7 de un ( s e l ,dispa che :Collec ingDispa che , acke :T acke ,
8 domain :Dic [Tex ,Any ])−>L i s [Dic [Tex ,Any ] ] :
9 #Se ob i ene e l alo de l a en idad ”nomb e ami e ”
10 nomb e ami e = ac k e . g e s l o ( ”nomb e ami e”)
11
12 #Se ob i ene e l ul imo mensaje d el u su a io
13 mensaje = a c k e . l a e s m e s s a g e [’ ex ’ ]
14
15 #Se c a l c u l a e l p o c en a je de semejanza en e e l ul imo mensaje y e l s l o
16 p oba bi lid ad = uz z . o k e n s e a i o ( mensaje ,nomb e ami e)
17
18 i ( nomb e ami e !=NULL and p ob a bi lid ad >50 ):
19 #Se ab e e l d a ase y se ob ienen l o s da os d el a ay
20 wi h open ( ’ ami esJSON . json ’ ,’ ’ ,encoding =’ u 8’ ) as i l e :
21 da a = jso n . load ( i l e )
22
23 maxi = −1
24
25 #Buscamos e l apa ado que enga un mayo p o cen a je de s i m i l i u d
26 en e e l a l i a s y nomb e ami e
27 o i in ange ( 15 ):
28 Token Se Ra io = uz z . o k e n s e a i o ( nomb e ami e ,
29 da a [’a ayT ami es ’ ] [ i] [ ’ a l i a s ’ ])
30 i Token Se Ra io >maxi :
31 maxi = Token Se Ra io
32
33
34 #Se de uel e e l alo s i e l p o c en aj e es mayo que 50
35 i maxi >50 :
36 dis p a c he . u e mes sage
37 ( ”Y que me q u i e e s c o n s ul a sob e e s e a mi e : n” +
38 ”−D o cu me n a c i n n e c e s a i a n” +
39 ”−P ecio de l m i e n” +
40 ”−Como p e d i l o ? n” )
41
42 e l s e :
43 dis pa che . u e mess age ( ”Lo si en o , me pod ias e p e i e l
44 a mi e d el que q u i e e s i n o m a e ? Recue da que ie ne n que s e
45 a m i es de l a Sede E l e c o n i c a ” )
46 e l s e :
47 d isp a c he . u e me ssa ge ( ”Lo sie n o , me po d ia s e p e i e l
48 a mi e d el que q u i e e s i n o m a e ? Recue da que ie ne n que s e
49 a m i es de l a Sede E l e c o n i c a ” )
50
51 e u n [ ]
La unci´on un de las ac ions que il an el p oceso, documen aci´on y p ecio del
´ami e se componen de los siguien es pasos:
1. Ex ae el da o de la en idad “nomb e ami e” y lo gua da en una a iable
llamada nomb e ami e.
2. Ex ae el ex o del ´ul imo mensaje y lo gua da en el pa ´ame o mensaje
3. Se ab e el a chi o p ocesosJSON con pe misos de lec u a y se gua da el
con enido en la a iable da aP oceso, pa a luego pode accede a los da os.
4. Despu´es se c ea una a iable pa a gua da el m´aximo po cen aje de simili ud.
4.3. Funcionamien o de Rasa S ack 37
5. Se eco e el a ay y se gua da el po cen aje de semejanza en e la a iable
mensaje y el elemen o del a ay que se es ´a analizando. Luego ese alo se
compa a con la a iable de maxiP oceso y si es mayo , se ac ualiza.
6. Se comp ueba si el alo de semejanza es mayo de 50 y si nomb e ami e no
es nulo. Si no cumple es as condiciones, se de uel e un mensaje in o mando de
que no se ha encon ado espues a a la p egun a del usua io.
7. Si cumple las condiciones an e io men e explicadas, se ab e el a chi o
ami esJSON con pe misos de lec u a y se gua da el con enido en la a iable
da a, pa a luego pode accede a los da os.
8. Pos e io men e se decla an dos a iables que an a gua da la posici´on
del ´ami e il ado y el po cen aje m´aximo de semejanza en e la a iable
nomb e ami e y la secci´on de alias.
9. Se eco e el a ay, que en es e caso iene 15 elemen os, y se gua da el
po cen aje de semejanza en e la a iable nomb e a iable y la secci´on de alias
en Token Se Ra io. Luego es e alo se compa a con la a iable maxi y si es
mayo , se ac ualiza y adem´as se gua da la posici´on.
10. Se comp ueba si el po cen aje encon ado es mayo de 50, ya que sino supe a ese
umb al, no es iable la espues a que pueda da . Si es mayo , p ime o ob iene
el da o de p oceso y luego lo de uel e con dispa che .u e message( espues a).
En caso de que ue a meno o igual a 50, se de uel e un mensaje in o mando
de que no se ha encon ado espues a a la p egun a del usua io.
11. Finalmen e en el e u n se modi ica el alo del slo a nulo, pa a pos e io es
b´usquedas.
Luego en la unci´on un de la ac ion que il a el ´ami e po el que se p egun a,
iene unas lige as modi icaciones compa adas con el es o.
1. Ex ae el da o de la en idad “nomb e ami e” y lo gua da en una a iable
llamada nomb e ami e.
2. Ex ae el ex o del ´ul imo mensaje y lo gua da en el pa ´ame o mensaje
3. Calcula la semejanza que hay en e la a iable nomb e ami e y el ´ul imo
mensaje.
4. Luego se comp ueba si el nomb e ami e no es nulo y adem´as de si el po cen aje
de semejanza es mayo que 50. Si no cumple es as condiciones, se de uel e un
mensaje in o mando de que no se ha encon ado espues a a la p egun a del
usua io. Es a comp obaci´on se hace ya que el sis ema algunas eces allaba al
cap a el ´ami e po el que se p egun aba.
5. Si cumple las condiciones an e io men e explicadas, se ab e el a chi o
ami esJSON con pe misos de lec u a y se gua da el con enido en la a iable
da a, pa a luego pode accede a los da os.
6. Pos e io men e se decla an la a iable que gua da el po cen aje m´aximo de
semejanza en e la a iable nomb e ami e y la secci´on de alias.
7. Se eco e el a ay, que en es e caso iene 15 elemen os, y se gua da el
po cen aje de semejanza en e la a iable nomb e a iable y la secci´on de alias
en Token Se Ra io. Luego es e alo se compa a con la a iable maxi y si es
mayo , se ac ualiza.
44 Cap´
ı ulo 4. Me odolog´
ıa y an´
alisis del p oyec o
Figu a 4.13: Ca pe a de abajo
Figu a 4.14: Ejemplos de modelos c eados
Figu a 4.15: Ejecu a el asis en e po e minal
4.5. Conexi´on con Teleg am y Se icio Web
An es de explica el p ocedimien o que se ha seguido pa a ealiza las conexiones, hay que
ene en cuen a que el se ido de Rasa ejecu a el p oyec o de mane a local, mien as que
Teleg am y la p´agina web se ejecu an en la nube. Po an o se ienen que enlaza las dos
ejecuciones median e el so wa e de ng ok. Es una he amien a que hay que ins ala la como
zip y pos e io men e descomp imi la pa a su uso. De es a mane a, se ´a posible accede a la
e minal ng ok.exe, desde donde se lanza ´a el comando ng ok h p 5005, pue o donde se
ejecu a localmen e el p oyec o. Es impo an e man ene abie o es e ´unel mien as se es e
u ilizando el asis en e ´ıa Teleg am o web, ya que si se cie a ng ok deja ´a de unciona
la conexi´on.
4.5. Conexi´
on con Teleg am y Se icio Web 45
En el Algo i mo 4.19 se mues a como p opo ciona una u l ope a i a du an e 8 ho as
que simula un ´unel al mismo pue o de nues o localhos . El enlace que se debe de escoge
es el h ps, ya que se debe de ealiza una conexi´on segu a, y po ejemplo Teleg am no
acep a enlaces h p.
Algo i mo 4.19: Ejecuci´on de ng ok
1 ng ok by @inconsh e eable
2
3 S e s s io n S a us o n l i n e
4 Accoun Rebeca ( Plan :F ee )
5 Ve sion 2.3.40
6 Region Uni ed S a e s ( us )
7 Web I n e a c e
8 Fo wa ding
9 Fo wa ding
10 Connec ions l opn 1 5p50 p90
11 000.00 0 .00 0 .00 0 .00
4.5.1. Teleg am
Como se ha explicado an e io men e, Teleg am pone a la disposici´on del usua io la
he amien a de The Bo Fa he . Como se e en la Figu a 4.16, es a uncionalidad pe mi e
c ea un bo de mane a sencilla en la que Bo Fa he i ´a haciendo p egun as al usua io de
c´omo quie e pe sonaliza su asis en e.
Figu a 4.16: Pe sonaliza bo
Los pasos pa a ealiza la conexi´on con Teleg am son los siguien es:
1. C ea y pe sonaliza el asis en e en Teleg am con Bo Fa he .
2. Una ez c eado se debe de gua da el API TOKEN y el nomb e del asis en e en el
p oyec o de Rasa.
46 Cap´
ı ulo 4. Me odolog´
ıa y an´
alisis del p oyec o
3. En el Algo i mo 4.20 se especi ica la con igu aci´on del a chi o c eeden ials.yml. Se
iene que descomen a el apa ado de Teleg am y se esc iben los da os gua dados
en e comillas.
Acces oken →API TOKEN
Ve i y →Nomb e del Chab o
webhook u l →Mnlace p opo cionado po ng ok, a˜nadiendo luego el su ijo de
/webhooks/ eleg am/webhook.
Algo i mo 4.20: Conexi´on Teleg am
1 eleg am :
2 access oken :
3 e i y :” SedeCha bo ”
4 webhook u l :
4. Ab i dos e minales localizadas en la ca pe a del p oyec o y ejecu a asa un en
una y asa un ac ions en la es an e.
Realizados ya es os pasos se puede pasa a habla con el asis en e ´ıa Teleg am. En la
Figu a 4.17 se e el o ma o de una con e saci´on po Teleg am.
(a) Saludo inicial (b) In o maci´on del Pasapo e
Figu a 4.17: Resul ados en Teleg am
4.5. Conexi´
on con Teleg am y Se icio Web 47
4.5.2. Se ido Web
Pa a es a opci´on se necesi a de ng ok, Gi hub y Bo F on , he amien as que se u ilizan a
mane a de p ueba, ya que ambi´en se puede u iliza una p´agina de web. Adem´as de que
hab ´a que ealiza peque˜nas modi icaciones en el c´odigo pa a su co ec o uncionamien o.
Los pasos a segui son los siguien es:
1. C eamos un eposi o io en Gi hub, con el nomb e de usua io y el su ijo .gi hub.io.
2. A˜nadimos a ese eposi o io nues o p oyec o y adem´as un documen o index.h ml. El
esul ado del eposi o io se ´ıa el que se mues a en la Figu a 4.18.
Figu a 4.18: Reposi o io de Gi hub
3. Aho a es el momen o de comple a el a chi o index.h ml con el dise˜no que se desee
pa a la p´agina web. En es e caso se ha u ilizado Bo F on , un open sou ce en Gi hub
sencillo de u iliza y que unciona con el Algo i mo 4.21.
Algo i mo 4.21: Bo F on Sc ip
1<s c i p >!( u n c io n ( ) {
2 l e e = documen . c ea eElemen ( ” s c i p ” ),
3 = documen . head | | documen . ge Elemen sByTagName(”head” )[0];
4 ( e . s c =
5” h ps :/ / cdn . j s d e l i . ne /npm/ asa−webcha @1 . x . x/ l i b / index . j s ” ),
6// Replace 1 . x . x wi h he e s ion ha you wan
7 ( e . async = ! 0),
8 ( e . onload = ( ) =>{
9 window . WebCha . d e a u l (
10 {
11 cus omDa a :{language :”en” },
12 socke U l :” h ps :/ / b −b o o n . de elopmen . agen s . bo o n . cloud ” ,
13 // add o he p ops he e
14 },
15 n u l l
16 ) ;
17 }),
18 . inse Be o e(e, . i s Child);
19 }) () ;
20 </s c i p >
El ´unico cambio que hab ´ıa que ealiza se ´ıa modi ica el da o de socke U l y
a˜nadi el enlace de ng ok.
48 Cap´
ı ulo 4. Me odolog´
ıa y an´
alisis del p oyec o
4. Pasando al p oyec o, hay que descomen a la opci´on de socke io en el a chi o de
c eeden ials.yml y esc ibi las ca ac e ´ıs icas del Algo i mo 4.22.
Algo i mo 4.22: Conexi´on con Socke io
1 socke io :
2 use message e :use u e ed
3 bo message e :bo u e ed
4 session pe sis ence : ue
5. A la ho a de ejecu a el asis en e, ambi´en hab ´a que ab i dos e minales si uadas
en la ca pe a del p oyec o, y en una lanza el comando de asa un ac ions y en
o a asa un -m models –enable-api –co s “*”.
6. La Figu a 4.19 mues a el esul ado de la p´agina→h ps://nomb e-usua io.gi hub.io.
(a) Saludo inicial (b) P ecio del DNI
Figu a 4.19: Resul ado en web
Cap´ı ulo 5
Expe imen os y Resul ados
Pa a ealiza p uebas sob e es e p oyec o se han elabo ado p uebas de es ´es y es sob e
el asis en e, adem´as de las co espondien es e isiones du an e su desa ollo. El p ime
apa ado 5.1 se desc ibe el p oceso de ealiza p uebas de es ´es con las ex ensi´on de
REST ul S ess. La segunda pa e de es e capi ulo 5.2, se desc iben es es que se han
p og amado en py hon pa a comp oba el uncionamien o de las acciones y adem´as se
p esen an las ci as de con ianza de los in en s. En la ´ul ima secci´on 5.3, se mos a ´an
esul ados de o os p oyec os elacionados con Rasa S ack y se ha ´a una b e e compa aci´on
con es e p oyec o.
5.1. P uebas con la He amien a REST ul S ess
La he amien a REST ul S ess es una ex ensi´on de Google Ch ome que pe mi e analiza el
asis en e pa a sabe da os de iempo de espues a seg´un el n´ume o de usua ios conec ados
a la ez. El uncionamien o de la ex ensi´on se basa en llamadas HTTP(GET,POST,PUT
y DELETE) al endpoin de la API.
Los pasos pa a ealiza las p uebas de es ´es son las siguien es:
1. P ime o se debe desca ga la ex ensi´on. Simplemen e con busca la en el buscado
Google e ins ala la, ya se pod ´a ejecu a .
2. Se esc ibe la di ecci´on del a ge , d´onde se ealiza ´a una pe ici´on POST. La u l que
hab ´a que indica se ´a la siguien e: h p://localhos :5005/webhooks/ es /webhook.
3. Se ellena el ecuad o de eques body con el mensaje de p ueba. El o ma o m´as
indicado pa a en ia el mensaje es en JSON y especi icando los campos de sende
ymessage.
4. Tambi´en se pueden modi ica los campos de op ions. En es e caso, el alo de
i e a ions es 1500, el delay es de 100 ms y el imeou de 30000.
5. Pa a ealiza la p ueba, se debe de lanza el siguien e comando po e minal en
la ca pe a del p oyec o: un -m models –enable-api –co s “*” –debug y en
pa alelo se pincha en el bo ´on de play de la aplicacion REST ul.
49
50 Cap´
ı ulo 5. Expe imen os y Resul ados
Figu a 5.1: REST ul S ess - Se ings
En la Figu a 5.1 se mues a que el campo del message es ¿Cu´an o ale eno a el dni?,
pa a sabe el iempo que a da en il a el da ase y encon a la espues a co ec a.
Se han ealizado al inal 235 i e aciones, con los esul ados siguien es:
Du aci´on media: 2778ms
Co ec os 235
Du aci´on m´axima: 4603 ms
E o es: 0
Du aci´on m´ınima: 2176 ms
Wa mups: 5
Du aci´on o al: 652939
Usua ios: 3 de mane a concu en e
Es os da os se pueden e isa en las dos pes a˜nas de Pe o mance yCha , mos adas
en las Figu as 5.2 y5.3.
5.2. Tes Uni a ios sob e Ac ions y Po cen ajes de
Con ianza
Pa a p oba el uncionamien o de las es acciones desc i as en el a chi o de ac ions.py,
se han ealizado es s uni a ios con la lib e ´ıa de uni es de Py hon.
5.2. Tes Uni a ios sob e Ac ions y Po cen ajes de Con ianza 51
Figu a 5.2: REST ul S ess - Pe o mance
Figu a 5.3: REST ul S ess - Cha
Los es s ienen un o ma o como el que mues a el Algo i mo 5.1 y los ipos que hay
son:
es il o p ecio comp ueba si se ha escogido el p ecio co ec o con un un ´ami e
ejemplo, que en es e caso es la solici ud de la c´edula de insc ipci´on
es il o documen a ion e isa si la documen aci´on il ada es la co ec a pa a
el ´ami e de asigna el NIE.
es il o p oceso e i ica si se ha ob enido el p oceso co ec o pa a el ´ami e de
solici a la a je a de es udian e.
Pa a ejecu a es os es s [CC20], se debe de ab i una e minal localizada en el p oyec o
y llama al m´e odo de main de la lib e ´ıa uni es con el siguien e comando py hon
es uni a ios.py - , como se mues a en la Figu a 5.4.
52 Cap´
ı ulo 5. Expe imen os y Resul ados
Algo i mo 5.1: Ejemplo del es il o p ecio
1 c l a s s Tes Ac ions ( u n i e s . Tes Case ) :
2
3 de e s i l o p e c i o ( s e l ) :
4 p ecio = ” El p e c i o e s 3 ,27 e u os ”
5 ami e = ” c edula de i n c i p c i o n ”
6
7
8 maxi = −1
9 pos = 0
10
11 #Buscamos e l apa ado que enga un mayo p o c en aj e de s i m i l i u d
12 en e e l a l i a s y nomb e ami e
13 o i in ange ( 15 ):
14 Token Se Ra io = u zz . o k e n s e a i o ( ami e ,da a
15 [’a ayT ami es ’ ] [ i] [ ’ a l i a s ’ ])
16 i Token Se Ra io >maxi :
17 maxi = Token Se Ra io
18 pos = i
19
20 #Se de uel e e l al o s i e l po ce n aje es mayo que 50
21 i maxi >50 :
22 e s pue s a = da a [’a ayT ami es ’ ] [ pos ] [ ’ p ecio ’ ]
23
24 e l s e :
25 e s pue s a = ”ninguna”
26
27 s e l . a sse Eq ua l ( esp u es a ,p ecio ,’ E o al encon a e l p ec io ’ )
Figu a 5.4: Ejecuci´on de los es s uni a ios
Po o a pa e, pa a sabe sob e los po cen ajes de con ianza de cada in en [PG+20],
se ha u ilizado los iche os de alidaci´on que se encuen an en la ca pe a de esul s.
En un p incipio cuando se c ea el p oyec o, es a ca pe a no exis e. Po an o, pa a
e alua el modelo pa a la clasi icaci´on de la in enci´on y ex acci´on de en idades se debe
de esc ibi asa es po la e minal si uada en la ca pe a del p oyec o.
Es e comando c ea ´a la ca pe a de esul s, con a ios a chi os de da os analizando el
asis en e. Los a chi os que se quie en des aca pa a analiza los esul ados son:
in en e o s.json
in en successes.json
Como indica su nomb e, en el p ime o se encuen an los e o es posibles que pueden
apa ece en el asis en e, mien as que en el segundo a chi o se ob ienen los in en s
co ec os. En la Figu a 5.5 se mues a el con enido del iche o de e o es con sus
co espondien es p edicciones.
5.3. Compa aci´
on de Resul ado Ob enidos 53
Figu a 5.5: A chi o in en e o s.json
Y en in en successes.json se han analizado los po cen ajes de con ianza de los diez
p ime os in en s, con sus espec i as ases de ejemplos. En la Tabla 5.1 se han ecopilado
los esul ado ob enidos.
In enci´on Con ianza media
s a 0.96
despedi 0.90
con i ma 0.92
nega 0.84
p egun as-in oSede 0.90
p egun as-ges iones 0.78
p egun as-ce i icados 0.88
p egun as- i maElec 0.76
p egun as-ex anje ia 0.76
p egun a- eag upacion 0.94
Tabla 5.1: Resul ados del a chi o in en successes.json
Se puede ap ecia que los alo es son al os debido al g an n´ume o de ejemplos que se
han a˜nadido a cada in enci´on.
5.3. Compa aci´on de Resul ado Ob enidos
En el abajo de Rasa amwo k: ´
An´alisis e implemen aci´on de un cha bo [CC20] se
han ealizado p uebas de es ´es con la misma he amien a que se ha is o an e io men e,
Cap´ı ulo 8
Conclusions and Fu u e Wo k
8.1. Conclusions
The aim o his wo k was o p og am an assis an ha would help use s sol e he doub s
hey had wi hin he Na ional Police Elec onic Headqua e s. Ini ially, he sec ions o
be co e ed we e no de ined. Ne e heless, he bo esponds o e e y ask conce ning
immig a ion ma e s, and enewal o applica ion o a passpo o ID ca d.
Se e al ools capable o de eloping con e sa ional assis an s ha e been esea ched,
concluding ha he echnology o be used would be Rasa S ack, as a simple ye comple e
ool. In addi ion o his, i is a ool ha allows you o p og am all he unc ionali ies ha
an assis an has, while o he applica ions we e mo e limi ed and had li le suppo .
Pe sonally, de eloping a con e sa ional assis an wi h an applica ion ha was unknown
o me has been qui e a challenge. Bu on he o he hand, i has been an in e es ing p ocess
o ge o know his kind o applica ion and, abo e all, o lea n h oughou hese six mon hs
how o use i . Addi ionally, I ha e been able o imme se mysel in some o he p ocedu es
ha a e ca ied ou wi hin he en i onmen o he Na ional Police Elec onic Headqua e s.
I eel his has made me g ow as a compu e enginee , ca ying ou a p ojec eques ed by
he Na ional Police hemsel es. I also liked o begin my wo k wi hin he ield o A i icial
In elligence (AI); one ha I had no ye been able o s udy du ing my deg ee.
This is, undoub edly, a ool ha will ha e mo e impo ance and p ominence in he
u u e, since AI will be pa amoun in u u e echnology, and wha be e way han o help
humani y. I am glad o ha e been pa o his p ojec and, abo e all, o help sol e some
o he doub s ha migh a ise o use s wi hin he Elec onic Headqua e s.
8.2. Fu u e Wo k
Thanks o he equi emen s ha cha ac e ise Rasa, i has been possible o success ully
de elop an assis an , sui able o u u e wo ks ha shall be ca ied ou on i . Howe e , i
can be imp o ed in he ollowing ways:
Adding mo e in en s o en i ies, in o de o answe mo e ques ions abou o he
p ocedu es a ailable a he Elec onic Headqua e s.
De elop he g aphic pa o he assis an
61
62 Cap´
ı ulo 8. Conclusions and Fu u e Wo k
Link he bo o o he applica ions, i.e., Wha sApp.
Au oma e ool deploymen .
Ap´endice A
In o maci´on sob e Rasa S ack
A.1. Componen es de Rasa S ack
A.1.1. En idades, In en s y Slo s
Las en idades o en i ies son c ´ı icas en el caso de que se quie a da una espues a
pe sonalizada al usua io. Po ejemplo, si enemos un in en asociado a consul a
las euniones que iene cie a pe sona en un d´ıa, uno de los ejemplos pod ´ıa se
“¿Qu´e euniones iene Ma cos {nomb e pe sona}el d´ıa 23 de mayo{ echa}?”, donde
nomb e pe sona y echa es una en i y que se i ´a pa a busca las euniones que iene
esa pe sona en ese d´ıa conc e o.
Po o o lado, los in en s son las in enciones que iene el usua io cuando in e ac ´ua
con el cha bo . El usua io puede u iliza di e en es exp esiones y palab as pa a decla a el
mismo in en . Po ejemplo, una pe sona puede saluda de a ias mane as, diciendo hola,
hey, c´omo es ´as, e c.
Algo i mo A.1: In en s
1 nlu :
2−in en :s a
3 examples :|
4−Hola
5−Buenos d´ı as
6−Buenas
7−Muy buenas
8−s a
9−/ s a
10
11 −in en :de spe di
12 examples :|
13 −Has a luego
14 −Nos emos
15 −Adi´o s
16 −Chao
17 −Ten buen d´ı a
Si se quisie a almacena da os de una con e saci´on, se ienen que u iliza los slo s. Son
elemen os pa ecidos a las en idades pe o ienen la capacidad de gua da palab as cla es
de los mensajes del usua io. Po ejemplo, si se c ea un cha bo con el que se puede pedi
63
64 Cap´
ı ulo A. In o maci´
on sob e Rasa S ack
ci a m´edica; la echa, la ho a y el nomb e del clien e se ´ıan slo s, po que son da os que
in e esan gua da .
Algo i mo A.2: Slo s
1 slo s :
2 nomb e ami e :
3 ype : ex
A.1.2. Sin´onimos y Tablas de B´usqueda
Tambi´en exis en la opci´on de u iliza sin´onimos y ablas de b´usqueda a la ho a de analiza
un in en del usua io.
Los sin´onimos se aplican pa a de ini dos en idades que ienen el mismo signi icado
Es os elemen os suelen se usados pa a a a ab e ia u as o cuando se usa ´a pa a la
en ada de una Ac ion.
Las ablas de b´usqueda son muy ´u iles pa a educi el n´ume o de ejemplos que
apo amos al asis en e pa a en ena . Pe mi en de ini palab as que pe enezcan al mismo
g upo aunque engan signi icados di e en es. Se conside an g upo cuando se ob iene la
misma espues a po pa e del cha bo .
A.1.3. His o ias pa a el En enamien o del NLU
Las his o ias de Rasa [GS+19] si en pa a en ena los modelos de ges i´on de di´alogo
del p oyec o. Rep esen an con e saciones en e un usua io y un asis en e; adem´as ienen
una es uc u a donde las en adas del usua io se exp esan como in en s mien as que los
mensajes del asis en e se exp esan como nomb es de acci´on o espues as co espondien es
(u e ances).
Los in en os del usua io no ienen ninguna ma ca delan e, simplemen e se iden i ican
con la palab a in en y las espues as del bo se nomb an con la palab a ac ion.
Algo i mo A.3: S o ies
1 s o i e s :
2
3−s o y :despues−ok
4 s e p s :
5−in en :con i ma
6−ac ion :u e ol e
7−in en :nega
8−ac ion :u e despedi
9
10 −s o y :despues−ok2
11 s e p s :
12 −in en :con i ma
13 −ac ion :u e ol e
14 −in en :con i ma
15 −ac ion :u e cuen ame
A.2. Es uc u a de Rasa S ack 65
A.2. Es uc u a de Rasa S ack
Cuando se c ea un p oyec o de Rasa desde la e minal, iene un dise˜no inicial o mado po
los siguien es iche os:
nlu.yml →apa ado donde se clasi ican los in en os con las ases que iene pa a
en ena el cha bo
ules.yml →secci´on donde se especi ica el pa ´on que debe de segui el cha bo pa a
da una espues a en un espec´ı ico g upo de in en os.
s o ies.yml →pa e donde se esc iben odos los lujos de las his o ias, pa a que el
cha bo pueda segui es os pa ones.
es s o ies.yml →su unci´on es se i de gu´ıa pa a ealiza p uebas sob e el cha bo .
Mues a como el pa ´on que debes de segui y lo que debe de i espondiendo el
cha bo .
domain.yml →secci´on donde se encuen an la espues as del cha bo que da a an e
las in e acciones del usua io.
c eeden ials.yml →pa e d´onde se especi ica el oken y los da os necesa ios pa a
ealiza una conexi´on con un enlace web ex e no.
ac ions.py →el obje i o de es a secci´on es la c eaci´on de unciones que pe mi an
au oma iza las espues as po pa e del asis en e y adem´as sean espues as m´as
pe sonalizadas an e el mensaje del usua io.
Bibliog a ´ıa
[AA15] Bayan AbuShawa and E ic A well. Alice cha bo : T ials and ou pu s.
Compu aci´on y Sis emas, 19(4):625–632, 2015.
[AC21] Luis Es ua do Azu dia C´a camo. De ini una gu´ıa e´o ica y p ´ac ica pa a pode
implemen a asis en es PhD hesis, Uni e sidad de San Ca los de Gua emala,
2021.
[Ali16] Abde -Rahman Ali. How o wo k wi h json da a using py hon. h ps: // aco a .
link/ FU2lCW , 2016.
[a a20] a a indpai. Wha is okeniza ion in nlp? he e’s all you need o know. . ly/ hRJG ,
2020.
[ARA22] ARAG. A ag, pione a en el lanzamien o de un cha bo de segu os de iaje en
espa˜na. h ps: // www. a ag. es/ conocenos/ sala-de-p ensa/ 00165/ , 2022.
[Bab21] Babylon. Babylon app. h ps: // www. babylonheal h. com/ en-us/
wha -we-o e / cha bo , 2021.
[BBV22] BBVA. ¿c´omo es blue, el nue o asis en e i ual de bb a?
h ps: // www. bb a. es/ inanzas- is azo/ e / banca-digi al/
como-es-blue-el-nue o-asis en e- i ual-de-bb a. h ml , 2022.
[CC20] ´
Al a o Cas illo Cabe o. Rasa amewo k-an´alisis e implemen aci´on de un cha bo .
B.S. hesis, Uni e si a Poli `ecnica de Ca alunya, 2020.
[CI22] Gi hub CI. Componen s asa docs. h ps: // asa. com/ docs/ asa/
componen s/ #language-models , 2022.
[CIO17] CIO. La uni e sidad ceu implan a un bo que mejo a la elaci´on
con sus alumnos. h ps: // www. ciospain. es/ educacion/
la-uni e sidad-ceu-implan a-un-bo -que-mejo a-la- elacion-con-sus-alumnos ,
2017.
[Com19] Cha Compose. Cha bo s pa a la educaci´on: Aplicaciones y bene icios. h ps:
// www. cha compose. com/ cha bo s-educacion. h ml , 2019.
[c u22] c unchbase. Youpe . h ps: // www. c unchbase. com/ o ganiza ion/ youpe /
echnology , 2022.
[DCLT18] Jacob De lin, Ming-Wei Chang, Ken on Lee, and K is ina Tou ano a. Be :
P e- aining o deep bidi ec ional ans o me s o language unde s anding. a Xi
p ep in a Xi :1810.04805, 2018.
[De 10] OV De yugina. Cha e bo s. Scien i ic and Technical In o ma ion P ocessing,
37(2):143–147, 2010.
[Die21] E in Die sche. No hwell heal h eams up wi h con e sa o ai
pa ien engagemen cha bo . h ps: // medci ynews. com/ 2018/ 10/
no hwell-heal h-con e sa/ ? = 1, 2021.
67
68 BIBLIOGRAF´
IA
[di 18] di endia. Cha bo s: es ad´ıs icas y ejemplos de uso en banca y segu os. h ps:
// mk e a. di endia. es/ blog/ cha bo s-banca-y-segu os , 2018.
[dV21] Gil del Valle. Top 5 de los mejo es cha bo s de asis encia m´edica. h ps: //
aco a . link/ MZFAM3, 2020-2021.
[GBFAMC18] Guillem Ga cia B us enga, Ma c Fue es Alpis e, and N´u ia Molas Cas ells.
B ie ing pape : los cha bo s en educaci´on. 2018.
[Gi 22] Gi hub. Websi es o you and you p ojec s. h ps: // pages. gi hub. com/ ,
2022.
[GLPC21] Maikol Ja ie Gilces Le´on and Ch is ian Fe nando Pin Ce allos. Duplicidad
de c´odigo en s ack o e low en espa˜nol. B.S. hesis, Uni e sidad de Guayaquil.
Facul ad de Ciencias Ma em´a icas y F´ısicas . .. , 2021.
[G o21] IT Digi al Media G oup. La banca aho a ´a has a 7.300 millones de d´ola es
a a ´es de los cha bo s. h ps: // www. i ends. es/ negocios/ 2019/ 02/
la-banca-aho a a-has a-7300-millones-de-dola es-a- a es-de-los-cha bo s ,
2021.
[GS+19] Jos´e Ma ´ıa Gu i´e ez Siliceo e al. Desa ollo de cha bo s con en o nos de c´odigo
abie o. 2019.
[HD16] Pol He n´andez Delgado. P og amaci´on de un [ o] bo pa a una consul a in e ac i a
de la in o maci´on de un p oyec o. 2016.
[Hea22] Heal hily. Heal hily. h ps: // www. li eheal hily. com/ , 2017-2022.
[He 21] Noelia He n´andez. Los cha bo s: un nue o ecu so pa a el aula. h ps: //
aco a . link/ pzb 9q , 2020-2021.
[i h21] ipglobal ech hub. ¿c´omo en iende un bo ? nlu en asa. h ps: // www. ipglobal.
es/ como-en iende-un-bo -nlu-en- asa/ , 2021.
[Jan17] S ini Jana hanam. Hands-on cha bo s and con e sa ional UI de elopmen :
build cha bo s and oice use in e aces wi h Cha uel, Dialog low, Mic oso Bo
F amewo k, Twilio, and Alexa Skills. Pack Publishing L d, 2017.
[Joa21] Ma hieu Joannon. Bo on . h ps: // gi hub. com/ bo on / asa-webcha ,
2021.
[kee21a] keen.e hics. One emission - making he li es o cance su i o s easie . h ps:
// keene hics. com/ p ojec -one- emission , 2021.
[kee21b] keen.e hics. Youpe . h ps: // www. youpe . ai/ , 2021.
[KKKS17] Diksha Khu ana, Adi ya Koli, Ki an Kha e , and Sukhde Singh. Na u al
language p ocessing: S a e o he a , cu en ends and challenges. a Xi p ep in
a Xi :1708.05148, 2017.
[LBP+18] Ta un Lalwani, Shashank Bhalo ia, Ashish Pal, Vasundha a Ra hod, and Sh eya
Bisen. Implemen a ion o a cha bo sys em using ai and nlp. In e na ional Jou nal
o Inno a i e Resea ch in Compu e Science & Technology (IJIRCST) Volume-6,
Issue-3, 2018.
[L´o20] Jos´e Ma ´ıa L´opez. C ea u p opio bo de eleg am sin sabe p og ama . h ps:
// blog hinkbig. com/ c ea -bo -de- eleg am-bo a he / , 2020.
[Nac22] Policia Nacional. Sede elec ´onica del cue po nacional de polic´ıa. h ps: //
sede. policia. gob. es/ po alCiudadano/ , 2022.
[NEW18] Alls a e NEWSROOM. Jus ask abie: Alls a e business insu ance sha es an
inno a i e ool o help small business owne s consume s wi h op-o -mind
ques ions. . ly/ SAx , 2018.
BIBLIOGRAF´
IA 69
[One22] Capi al One. Mee eno. h ps: // www. capi alone. com/ digi al/ eno/ , 2022.
[oT17] Massachuse s Ins i u e o Technology. Babylon app. h ps: // www.
babylonheal h. com/ en-us/ wha -we-o e / cha bo , 2017.
[PA+19] So Piza o A belo e al. Bo con e sacional de ec o de sen imien os. 2019.
[P ´
APGMAV21] Daniel Po edano ´
Al a ez, Ja ie Po ela Ga c´ıa-Miguel, and Es eban Alejand o
A mas Vega. Es udio de la pe cepci´on p´ublica de la acuna con a la co id-19
median e ´ecnicas de pln y de ap endizaje au om´a ico. 2021.
[PCFR16] Ma ia Jo˜ao Pe ei a, Lu´ısa Coheu , Ped o Fialho, and Rica do Ribei o. Cha bo s’
g ee ings o human-compu e communica ion. a Xi p ep in a Xi :1609.06479,
2016.
[PG+20] Ve ´onica Pinilla G´omez e al. Dise˜no e implemen aci´on de un cha bo pa a el
so wa e de idbox. 2020.
[PG21] Ma cos Pino Gamazo. Desa ollo de un cha bo pa a p´ublico in an il pa a clasi ica
sonidos del cielo. e si´on 2. 2021.
[RAMI17] AM Rahman, Abdullah Al Mamun, and Alma Islam. P og amming challenges o
cha bo : Cu en and u u e p ospec i e. In 2017 IEEE Region 10 Humani a ian
Technology Con e ence (R10-HTC), pages 75–78. IEEE, 2017.
[Rob22] So Banck Robo ics. Peppe y nao, obo s pa a la ense˜nanza. h ps: //
www. so bank obo ics. com/ emea/ es/ peppe -and-nao- obo s-educa ion ,
2022.
[SSA+18] Yasi Ali Solangi, Zul iqa Ali Solangi, Sam een Aa ain, Amna Ab o, Ghulam Ali
Mallah, and Asadullah Shah. Re iew on na u al language p ocessing (nlp)
and i s oolki s o opinion mining and sen imen analysis. In 2018 IEEE
5 h In e na ional Con e ence on Enginee ing Technologies and Applied Sciences
(ICETAS), pages 1–4. IEEE, 2018.
[ST20] Siddhan Singh and Ha deo K Thaku . Su ey o a ious ai cha bo s based on
echnology used. In 2020 8 h In e na ional Con e ence on Reliabili y, In ocom
Technologies and Op imiza ion (T ends and Fu u e Di ec ions)(ICRITO), pages
1074–1079. IEEE, 2020.
[Tea21] Inben a Team. Cha bo s banca ios: un imp escindible pa a la a enci´on a clien e.
h ps: // aco a . link/ uMs0We , 2021.
[TH50] Alan M Tu ing and J Haugeland. Compu ing machine y and in elligence. The
Tu ing Tes : Ve bal Beha io as he Hallma k o In elligence, pages 29–56, 1950.
[VLRL19] Rub´en Da ´ıo Villamiza Laguado and Daniel Fe nando Rico Le´on. Cha bo pa a
la b´usqueda y compa aci´on de p oduc os ecnol´ogicos a a ´es de la pla a o ma
messenge . 2019.
[Wei66] Joseph Weizenbaum. Eliza—a compu e p og am o he s udy o na u al language
communica ion be ween man and machine. Communica ions o he ACM,
9(1):36–45, 1966.