Full text
Reacción en Cadena LLM
Chain Reac ion LLM
TRABAJO FIN DE GRADO
CURSO 2023-2024
AUTORES
MADALINA ELENA BASCA
CRISTINA MORILLO LEAL
ALEJANDRO PAREJA ARRIAGA
DIRECTOR
MANUEL NÚÑEZ GARCÍA
DOBLE GRADO EN INGENIERÍA INFORMÁTICA Y
ADMINISTRACIÓN Y DIRECCIÓN DE EMPRESAS
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
Reacción en Cadena LLM
Chain Reac ion LLM
TRABAJO DE FIN DE GRADO EN
INGENIERÍA INFORMÁTICA
AUTORES
MADALINA ELENA BASCA
CRISTINA MORILLO LEAL
ALEJANDRO PAREJA ARRIAGA
DIRECTOR
MANUEL NÚÑEZ GARCÍA
CONVOCATORIA: SEPTIEMBRE 2024
DOBLE GRADO EN INGENIERÍA INFORMÁTICA Y
ADMINISTRACIÓN Y DIRECCIÓN DE EMPRESAS
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
13 DE SEPTIEMBRE DE 2024
III
DEDICATORIA
A odos nues os amilia es y amigos, po
es a ahí siemp e.
V
AGRADECIMIENTOS
A nues o amigos y amilia es, po apoya nos incondicionalmen e y po odas las isas
que se han dado mien as nos han ayudado a p oba el juego.
A nues os compañe os po compa i con noso os 5 la gos y du os años de ca e a.
A odos nues os p o eso es po ayuda nos a adqui i odos los conocimien os
necesa ios.
A Cha GPT po asegu a nos que la humanidad de momen o es á a sal o.
VII
RESUMEN
Reacción en Cadena LLM
En los úl imos años, los La ge Language Models (LLMs) han expe imen ado una
ue e expansión, especialmen e en su aplicación a cha bo s como Cha -GPT. A lo la go
de es e p oyec o, se p e ende explo a o a aplicación de los LLMs, especí icamen e su
in eg ación en un juego de palab as inspi ado en las dis in as ases del p og ama de
ele isión Reacción en Cadena.
G acias a su in eg ación con el LLM, el sis ema es a á capaci ado pa a gene a
able os de palab as en iempo eal, lo que pe mi i á que cada usua io dis u e de una
expe iencia comple amen e única cada ez que juegue.
Los jugado es pod án desa ia an o a o a pe sona como a una In eligencia
A i icial (IA), e incluso end án la posibilidad de obse a cómo dos de ellas compi en
en e sí. Todo es o g acias a los di e en es modos de juego con los que cuen a la
pla a o ma. De es a mane a, el juego c ea un espacio que combina compe i i idad y
ap endizaje, o eciendo una expe iencia an o en e enida y desa ian e como
educa i a pa a los usua ios.
Palab as cla e
Reacción en Cadena, In eligencia A i icial, La ge Language Model, P omp , P omp -
Enginee ing, Fine-Tuning, API, OpenAI, GPT
XV
ÍNDICE DE ILUSTRACIONES
Ilus ación 1.1 Table o a eas .................................................................................................. 4
Ilus ación 1.2 Plani icación empo al del p oyec o ............................................................. 8
Ilus ación 1.3 Task boa d .......................................................................................................12
Ilus ación 1.4 P ojec ime planning .....................................................................................16
Ilus ación 2.1 Ejemplo de di isión de una ase en okens .................................................20
Ilus ación 3.1 Es uc u a de ca pe as de p oyec o en Django .........................................23
Ilus ación 3.2 Es uc u a de ca pe as de una aplicación en Django ...............................24
Ilus ación 3.3 Ejemplo espues a LlaMa 2 ............................................................................29
Ilus ación 3.4 Ejemplo espues a LLaMa 3 en Cha Llama ..................................................30
Ilus ación 3.5 Ejemplo espues a Gemini .............................................................................31
Ilus ación 3.6 Ejemplo espues a Cha GPT 3.5 ....................................................................33
Ilus ación 3.7 Dashboa d de Py honAnywhe e...................................................................37
Ilus ación 4.1 Ejemplo onda Palab as Encadenadas........................................................39
Ilus ación 4.2 Ejemplo onda Cen o de la Cadena ..........................................................40
Ilus ación 4.3 Ejemplo onda Una lle a a la O a ...............................................................40
Ilus ación 4.4 Ejemplo onda La Úl ima Cadena ................................................................41
Ilus ación 4.5 Ejemplo onda La Úl ima Palab a .................................................................42
Ilus ación 5.1 Diag ama UML Casos de Uso Ac o Jugado ..............................................43
Ilus ación 6.1 Boce o página de Inicio ................................................................................64
Ilus ación 6.2 Página de Inicio ..............................................................................................65
Ilus ación 6.3 Boce o página P egame ...............................................................................65
Ilus ación 6.4 Página P egame .............................................................................................66
XVI
Ilus ación 6.5 Boce o página Ins ucciones .........................................................................67
Ilus ación 6.6 Página Ins ucciones ......................................................................................68
Ilus ación 6.7 Tu no jugado 1 ...............................................................................................69
Ilus ación 6.8 Tu no jugado 2 ...............................................................................................69
Ilus ación 6.9 Ronda inalizada .............................................................................................70
Ilus ación 6.10 In oduci palab a jugado ..........................................................................70
Ilus ación 6.11 In oduci palab a IA ....................................................................................71
Ilus ación 6.12 Boce o ma cado onda ..............................................................................72
Ilus ación 6.13 Página ma cado onda ..............................................................................72
Ilus ación 6.14 Boce o página Palab as Encadenadas .....................................................73
Ilus ación 6.15 Pan alla Palab a Encadenadas ..................................................................73
Ilus ación 6.16 Boce o Cen o de la Cadena y Una lle a a la O a .................................76
Ilus ación 6.17 Página Cen o de la Cadena .....................................................................77
Ilus ación 6.18 Página Una lle a a la O a ..........................................................................77
Ilus ación 6.19 Table o Cen o de la Cadena .....................................................................79
Ilus ación 6.20 Table o Una lle a a la O a ..........................................................................79
Ilus ación 6.21 Panel jugado es inalizado en La Úl ima Cadena .....................................81
Ilus ación 6.22 Panel jugado es inalizado en La Úl ima Palab a ......................................82
Ilus ación 6.23 Boce o La Úl ima Cadena ...........................................................................82
Ilus ación 6.24 Pan alla La Úl ima Cadena .........................................................................83
Ilus ación 6.25 Table o La Úl ima Cadena ...........................................................................84
Ilus ación 6.26 Boce o página La Úl ima Palab a ...............................................................85
Ilus ación 6.27 Pan alla La Úl ima Palab a ..........................................................................86
Ilus ación 6.28 Table o La Úl ima Palab a ............................................................................87
XVII
Ilus ación 6.29 Boce o página Ronda Final .........................................................................88
Ilus ación 6.30 Página pan alla inal ....................................................................................88
Ilus ación 7.1 Ejemplo espues a p omp palab as encadenadas ...................................90
Ilus ación 7.2 Ejemplo espues a ema ................................................................................92
Ilus ación 7.3 Ejemplos emas Palab as Encadenadas ......................................................93
Ilus ación 7.4 Ejemplos able os Palab as Encadenadas gene ados con el p omp inal
..........................................................................................................................................95
Ilus ación 7.5 Ejemplos able os gene ados con el p omp de p ueba ...........................96
Ilus ación 7.6 Ejemplos azonamien os ................................................................................97
Ilus ación 7.7 Ejemplos able os gene ados conc e ando más en los emas ..................98
Ilus ación 7.8 Table os gene ados con un p omp de p ueba ..........................................99
Ilus ación 7.9 O den de los p omp s pa a gene a el able o ondas 2 y 3 .................... 104
Ilus ación 7.10 Secuencia de gene ación del panel de las ondas 2 y 3 según el o den
de los p omp s ............................................................................................................... 105
Ilus ación 7.11 Ejemplos de paneles gene ados con el p omp inal de las ondas 2 y 3
........................................................................................................................................ 106
Ilus ación 7.12 Ejemplos de paneles gene ados con un p ime p omp pa a La Úl ima
Cadena ......................................................................................................................... 107
Ilus ación 7.13 O den de los p omp s pa a gene a La Úl ima Cadena ........................ 112
Ilus ación 7.14 Secuencia de gene ación del panel de La Úl ima Cadena según el o den
de los p omp s ............................................................................................................... 114
Ilus ación 7.15 Ejemplo espues a p omp al in oduci palab a en Palab as
Encadenadas ................................................................................................................ 115
Ilus ación 7.16 Ejemplos espues as p omp inal in oduci palab a en ondas 2, 3 y inal
1 ...................................................................................................................................... 117
XVIII
Ilus ación 7.17 Ejemplos espues as p omp inal in oduci palab a en ondas 2, 3 y inal
2 ...................................................................................................................................... 117
Ilus ación 7.18 Ejemplo espues a p omp sin pedi pis a ................................................. 119
Ilus ación 7.19 Ejemplo espues a p omp pidiendo pis a ............................................... 120
Ilus ación 7.20 Ejemplo espues a p omp inal habiendo pedido pis a p e iamen e . 120
Ilus ación 7.21 Subida modelo ine- uning ........................................................................ 123
Ilus ación 7.22 Ejemplo espues a modelo ine- uning ..................................................... 123
Ilus ación 7.23 Ejemplos able os gene ados con el modelo ine uning ....................... 124
Ilus ación 8.1 DAFO ............................................................................................................. 130
XIX
ÍNDICE DE FIGURAS
Figu a 7.1 Ejemplo p omp Palab as Encadenadas ............................................................90
Figu a 7.2 P omp inal ema Palab as Encadenas .............................................................93
Figu a 7.3 P omp inal able o Palab as Encadenadas .....................................................94
Figu a 7.4 Ejemplos p omp segunda y e ce a onda ........................................................96
Figu a 7.5 Relaciones p omp s............................................................................................. 101
Figu a 7.6 Con ex o p omp s ............................................................................................... 101
Figu a 7.7 P omp inal pa a gene a p4 en ondas 2 y 3 .................................................. 101
Figu a 7.8 P omp inal pa a gene a p3 en ondas 2 y 3 .................................................. 102
Figu a 7.9 P omp inal pa a gene a p5 en ondas 2 y 3 .................................................. 102
Figu a 7.10 P omp inal pa a gene a p2 en ondas 2 y 3 ................................................ 103
Figu a 7.11 P omp inal pa a gene a p1 en ondas 2 y 3 ................................................ 103
Figu a 7.12 P omp inal pa a gene a p6 en ondas 2 y 3 ................................................ 103
Figu a 7.13 P omp inal pa a gene a p7 en ondas 2 y 3 ................................................ 104
Figu a 7.14 P omp inal pa a gene a p8 en La Úl ima Cadena ..................................... 109
Figu a 7.15 P omp inal pa a gene a p7 y p9 en La Úl ima Cadena ............................. 109
Figu a 7.16 P omp inal pa a gene a p6 y p10 en La Úl ima Cadena ........................... 110
Figu a 7.17 P omp inal pa a gene a p5 y p11 en La Úl ima Cadena ........................... 110
Figu a 7.18 P omp inal pa a gene a p4 y p12 en La Úl ima Cadena ........................... 110
Figu a 7.19 P omp inal pa a gene a p3 y p13 en La Úl ima Cadena ........................... 111
Figu a 7.20 P omp inal pa a gene a p2 y p14 en La Úl ima Cadena ........................... 111
Figu a 7.21 P omp inal pa a gene a p1 y p15 en La Úl ima Cadena ........................... 111
Figu a 7.22 P omp inal in oduci palab a en Palab as Encadenadas .......................... 115
XX
Figu a 7.23 P omp inal in oduci palab a en ondas 2 y 3 y inal .................................. 116
Figu a 7.24 P omp s pa a pedi pis a e in oduci palab a en La Úl ima Palab a ........... 119
Figu a 7.25 Ejemplo de da ase . Fuen e OpenAI ............................................................... 121
Figu a 7.26 Ejemplo da ase pe sonalizado ....................................................................... 122
XXI
ÍNDICE DE TABLAS
Tabla 3.1 P ecios LlaMA API ...................................................................................................31
Tabla 3.2 P ecios Gemini API .................................................................................................32
Tabla 3.3 P incing Cha GPT API .............................................................................................34
Tabla 3.4 P icing Fine- uning Cha GPT ..................................................................................35
Tabla 3.5 Compa ación modelos Cha GPT .........................................................................36
Tabla 5.1 Caso de uso Regis a Jugado .............................................................................44
Tabla 5.2 Caso de uso Inicia Sesión .....................................................................................44
Tabla 5.3 Caso de uso Ce a Sesión ....................................................................................45
Tabla 5.4 Caso de uso Inicia Juego .....................................................................................46
Tabla 5.5 Caso de uso Ve Ranking ......................................................................................47
Tabla 5.6 Caso de uso Juga Palab as Encadenadas ........................................................47
Tabla 5.7 Caso de uso Juga Cen o de la Cadena ...........................................................50
Tabla 5.8 Caso de uso Juga Una lle a a la O a ................................................................53
Tabla 5.9 Caso de uso Juga La Úl ima Cadena .................................................................56
Tabla 5.10 Caso de uso Juga La Úl ima Palab a ................................................................59
1
Capí ulo 1 - In oducción
1.1 Mo i ación y Con ex o
La elección de es a emá ica pa a ealiza el abajo de in de g ado su ge de la
cu iosidad de conoce aplicaciones p ác icas de la IA. El desa ollo de un juego basado
en el p og ama Reacción en Cadena que in eg a un LLM pa a gene a p egun as y
espues as en iempo eal, no solo p e ende c ea una expe iencia de en e enimien o y
educa i a pa a los usua ios, sino ambién, pode explo a y demos a las unciones
inno ado as que iene la IA en es e ámbi o.
La IA ha en ado en nues as idas hace ela i amen e poco, y de ini i amen e
ha enido a queda se. En los úl imos años se ha podido obse a una ápida e olución
y desa ollo de es a ecnología. Hoy en día, la IA ha pene ado en odos los me cados e
indus ias, empleándose de di e sas mane as y ayudando a acili a las a eas. In eg a
es a ecnología en aplicaciones y si ios web es cada ez más común popula izándose
las API que o ecen es os ipos de se icios, o la c eación de un LLM p opio pa a pode
au oma iza a eas y acili a el p oceso de implemen ación.
Po su lado, Reacción en Cadena es un p og ama de ele isión que se comenzó
a emi i en España a inales de 2022 en el canal Telecinco. Las di e en es p uebas del
p og ama es án basadas en el clásico juego de palab as encadenadas. Es e o ma o
su gió como una adap ación de Chain Reac ion, un p og ama que se es enó en la
década de los 80 en Es ados Unidos. En él, dos equipos i ales compi en en sucesi as
ondas pa a esol e cadenas de palab as mien as acumulan dine o (Mi ele, 2022).
1.2 Obje i os
El obje i o p incipal de es e p oyec o es c ea una aplicación web pa a
o denado es en la que los usua ios puedan juga a di e en es ases del juego basado en
el p og ama de ele isión Reacción en Cadena. Además, se p e ende in eg a con la
IA pa a que es a gene e los able os de juego y pueda con es a a las p egun as del
juego.
2
Los obje i os écnicos gene ales que se p e enden alcanza son:
• Desa olla una aplicación web pa a pa a pode juga las cinco ases del
juego de Reacción en Cadena: Palab as Encadenadas, Cen o de la
Cadena, Una lle a a la O a, La Úl ima Cadena y La Úl ima Palab a.
▪ In es igando di e en es ecu sos ecnológicos que se puedan u iliza en
el p oyec o.
▪ U ilizando esos ecu sos ecnológicos pa a implemen a el on -end y el
back-end de la aplicación.
• In eg a la IA a la aplicación web pa a que gene e los able os de juego y sea
capaz de juga .
▪ In es igando y compa ando los di e en es LLMs que hay en el
me cado.
▪ In eg ando el LLM seleccionado en la aplicación u ilizando su API.
▪ Haciendo p omp enginee ing pa a c ea p omp s e icaces y p ecisos
pa a ob ene mejo es espues as po pa e de la IA.
▪ Haciendo ine- uning al modelo pa a en ena lo con conjun o de da os
pe sonalizados y c ea un modelo p opio.
• Realiza un plan de negocio pa a analiza cuál pod ía se el posicionamien o
de la aplicación desa ollada den o de su me cado.
Además de los obje i os écnicos hay que conside a los académicos que se
p e enden alcanza con la ealización de es e abajo. Un abajo de in de g ado debe
apo a nue os conocimien os al alumno. Los obje i os académicos que se quie en
log a con la ealización de es e abajo son:
• Aplica los concep os ap endidos sob e ges ión y o ganización de p oyec os.
• U iliza conocimien os p e ios de p og amación y ap ende nue os lenguajes.
• Implemen a conocimien os en bases de da os.
• Ap ende sob e el uso de LLMs y su in eg ación en aplicaciones web.
3
1.3 Plan de abajo
En odo p oyec o la plani icación ma ca el pun o de pa ida de es e. Una buena
plani icación ayuda á al desa ollo del abajo y se i á de base pa a cumpli con los
obje i os desc i os an e io men e. En ingenie ía del so wa e exis en p incipalmen e dos
me odologías de desa ollo:
• Desa ollo en cascada: Es e ipo de me odología se ca ac e iza po o dena
las e apas del p oceso de desa ollo del so wa e de una mane a igu osa y
secuencial, haciendo que no se pueda comenza una e apa sin habe
e minado comple amen e la e apa an e io . Suele cos a de cinco ases:
equisi os, diseño, implemen ación, e i icación y man enimien o (P essman,
2010).
• Desa ollo ágil: Es una me odología de desa ollo de so wa e que se
ca ac e iza po se un p oceso i e a i o e inc emen al y que se a ajus ando
a las pe iciones y necesidades del clien e. El obje i o p incipal es que en cada
e apa del p oyec o se consiga ene un so wa e mínimo que uncione sin
e o es, sin necesidad de que es é oda la uncionalidad implemen ada.
Además, es e ipo de me odología de desa ollo des aca po sus equipos
mul idisciplina es y au oo ganizados (Agilemani es o.o g, s. .).
Pa a es e p oyec o, se ha op ado po u iliza una me odología ágil ya que es más
lexible an e posibles cambios y p oblemas que puedas sucede du an e su desa ollo,
pe mi iendo que se puedan solapa las di e en es e apas del desa ollo, en luga de
ealiza una a con inuación de la o a.
Po o o lado, pa a ga an iza un seguimien o más e ec i o del p og eso del
p oyec o se han ido haciendo daily mee ings. En es as euniones dia ias, cada miemb o
del equipo explica lo que hizo en el úl imo día de abajo, y, además, se ma can las
siguien es a eas a comple a . Es o ha pe mi ido que cada in eg an e del equipo sea
conocedo de lo que ealizan el es o de las pe sonas del g upo e iden i ica posibles
p oblemas y da les una solución de o ma conjun a. Además, pa a hace un mejo
10
• De elop a web applica ion o play i e phases o he Reacción en Cadena
game: Palab as Encadenadas, Cen o de la Cadena, Una lle a a la O a, La
Úl ima Cadena, and La Úl ima Palab a.
▪ Resea ch a ious echnological esou ces ha can be used in he
p ojec .
▪ Use hose echnological esou ces o implemen he on -end and
back-end o he applica ion.
• In eg a e AI in o he web applica ion o gene a e game boa ds and play he
game.
▪ Resea ch and compa e di e en LLMs a ailable in he ma ke .
▪ In eg a e he selec ed LLM in o he applica ion using i s API.
▪ Conduc p omp enginee ing o c ea e e ec i e and p ecise p omp s
o be e AI esponses.
▪ Fine- une he model by aining i wi h cus om da ase s o c ea e a
p op ie a y model.
• De elop a business plan o analyze he po en ial ma ke posi ioning o he
de eloped applica ion.
In addi ion o he echnical objec i es, he academic goals o be achie ed wi h
his p ojec mus also be conside ed. A inal deg ee p ojec should p o ide he s uden
wi h new knowledge.
The academic objec i es o be achie ed h ough his p ojec a e:
• Apply he concep s lea ned abou p ojec managemen and o ganiza ion.
• U ilize p e ious p og amming knowledge and lea n new languages.
• Implemen knowledge in da abases.
• Lea n abou he use o LLMs and hei in eg a ion in o web applica ions.
Wo k plan
11
In e e y p ojec , planning ma ks he s a ing poin . Good planning will aid he
de elopmen o he wo k and se e as a basis o achie ing he p e iously desc ibed
objec i es.
In so wa e enginee ing, he e a e mainly wo de elopmen me hodologies:
• Wa e all De elopmen : This me hodology is cha ac e ized by o ganizing he
s ages o he so wa e de elopmen p ocess in a igo ous and sequen ial
manne , such ha one s age canno begin un il he p e ious one is comple ely
inished. I ypically consis s o i e phases: equi emen s, design,
implemen a ion, e i ica ion, and main enance (P essman, 2010).
• Agile De elopmen : This is a so wa e de elopmen me hodology
cha ac e ized by an i e a i e and inc emen al p ocess ha adjus s o he
eques s and needs o he clien . The main goal is o ha e a minimum o iable
so wa e ha unc ions wi hou e o s a each s age o he p ojec , wi hou
needing all unc ionali ies o be implemen ed. This me hodology also s ands
ou o i s mul idisciplina y and sel -o ganized eams (Agilemani es o.o g, s. .).
Fo his p ojec , an agile me hodology has been chosen because i is mo e lexible
o possible changes and p oblems ha may occu du ing i s de elopmen , allowing he
o e lapping o di e en de elopmen s ages, a he han conduc ing hem one a e he
o he .
Fu he mo e, o ensu e mo e e ec i e moni o ing o he p ojec 's p og ess, daily
mee ings ha e been held. In hese daily mee ings, each eam membe explains wha
hey did on he las wo kday, and he nex asks o be comple ed a e also ou lined. This
has allowed each eam membe o be awa e o wha he es o he g oup is doing and
o iden i y po en ial p oblems and sol e hem join ly. Addi ionally, o be e ack he asks
o be comple ed, a boa d has been used. This boa d is di ided in o ou columns:
• To do: Shows he asks ha he eam has ag eed o do wi hin a speci ic
ime ame.
• Doing: This column con ains he asks ha ha e al eady been assigned o a
eam membe and a e in he p ocess o being comple ed.
12
• Done: Con ains he asks ha ha e been comple ely inished.
• Re iew: Should con ain he asks ha , in addi ion o ha ing been comple ed,
ha e been e iewed by a eam membe di e en om he one who
pe o med hem, ensu ing co ec implemen a ion.
Tasks a e mo ed om le o igh as hey p og ess. Fo he cons uc ion o he
boa d, i has been decided o make i online using he "Tasks" sec ion o Mic oso Teams,
as opposed o o he online applica ions o c ea ing i in a physical o ma , due o i s
in eg a ion wi h o he Mic oso ools and because i is he same applica ion used o he
daily mee ings.
Ilus ación 1.3 Task boa d
On he o he hand, he p ojec will be di ided in o di e en phases. Each phase
will ha e an es ima ed ime ha may be adjus ed as de elopmen p og esses.
PHASE 1. Resea ch and selec ion o echnological esou ces
In his phase, he echnological esou ces ha can be used in he de elopmen
o he p ojec will be esea ched, and hose deemed mos sui able o i s de elopmen
will be selec ed. This includes choosing he p og amming languages and he da abase
ha will be used.
Me hodology: In o ma ion sea ch and compa ison be ween di e en
echnological esou ces.
Es ima ed ime: 6 weeks.
13
Expec ed esul : Selec ion o sui able echnological esou ces o he p ojec .
PHASE 2. Iden i ica ion o use cases and c ea ion o applica ion ske ches
In his phase, p e iously ai ed episodes o Reacción en Cadena will be analyzed
o iden i y he di e en use cases ha will la e be implemen ed in he p ojec 's
applica ion. Addi ionally, ske ches ela ed o hese use cases will be de eloped.
Me hodology: Wa ching episodes o Reacción en Cadena, c ea ing UML
diag ams o ep esen he use cases, and de eloping ske ches.
Es ima ed ime: 4 weeks.
Expec ed esul : Iden i ica ion o all use cases o be implemen ed along wi h hei
ske ches.
PHASE 3. Design and de elopmen o he use in e ace o he applica ion
In his phase, he on -end in e ace o all he sc eens ha will make up he en i e
applica ion will be de eloped. The goal is o ensu e ha he in e ace is no only
a ac i e bu also in ui i e o use s.
Me hodology: In e ace de elopmen using clien -side echnologies.
Es ima ed ime: 4 weeks.
Expec ed esul : De elopmen o an in e ace ha ensu es a good use
expe ience.
PHASE 4. Da abase C ea ion
In his phase, a da abase will be c ea ed o s o e in o ma ion abou he
applica ion's use s and examples o wo d chains o each o he p og am's implemen ed
ounds.
Me hodology: Da abase design and implemen a ion, and da a loading.
Es ima ed ime: 2 weeks.
Expec ed esul : Implemen a ion o a da abase con aining all he necessa y da a
o he de elopmen and es ing o he game.
14
PHASE 5. Implemen a ion o he game logic using he da abase
In his phase, he game unc ionali ies will be implemen ed, including he c ea ion
o game boa ds, u n con ol, sco e managemen , and answe e i ica ion. I will be
ensu ed ha he game logic wo ks co ec ly wi h he wo d chains s o ed in he da abase.
This s ep will se e as p epa a ion o he subsequen in eg a ion o he LLM in o he game.
Me hodology: Implemen a ion o he game logic using se e -side echnologies,
wi h in eg a ion and connec ion o he da abase. Tes ing will be conduc ed using he
wo d chains s o ed in he da abase.
Es ima ed ime: 13 weeks.
Expec ed esul : De elopmen o a comple e and unc ional game logic ha will
se e as he ounda ion o he subsequen implemen a ion o he LLM and he a ious
game modes.
PHASE 6: Resea ch and selec ion o he LLM
In his phase, es s will be conduc ed wi h di e en LLMs o e alua e hei
pe o mance. Addi ionally, a cos compa ison o he use o each will be ca ied ou .
Me hodology: E alua ion o he LLMs' pe o mance in gene a ing wo d chains and
p ice analysis.
Es ima ed ime: 4 weeks.
Expec ed esul : Selec ion o he mos sui able LLM o he p ojec .
PHASE 7: Design o p omp s o boa d and answe gene a ion
In his phase, he necessa y p omp s will be designed o gene a ing he boa ds
o he di e en ounds o Reacción en Cadena ha ha e been implemen ed, as well as
he p omp s o gene a ing answe s in modes whe e one o he pa icipan s is an AI.
Me hodology: Design o e icien and unc ional p omp s using echniques such as
p omp -enginee ing.
Es ima ed ime: 12 weeks.
15
Expec ed esul : Cons uc ion o p omp s ha co ec ly gene a e wo d chains and
esponses o he di e en game ounds.
PHASE 8: Implemen a ion o he LLM wi hin he game logic
In his phase, he LLM will be in eg a ed in o he game logic, making he boa ds
o each ound gene a ed by he AI. Addi ionally, di e en game modes will be
implemen ed, whe e he playe s can be an AI (Playe s AI and AI s AI). All o his will be
ca ied ou using he p omp s de ined in he p e ious phase.
Me hodology: In eg a ion o he LLM in o he applica ion h ough i s API. The
boa ds gene a ed by he model will be s o ed in he da abase o main ain compa ibili y
wi h he exis ing game logic ega ding panel loading. Howe e , pa o he game logic
will be modi ied o dis inguish be ween games played by a pe son and hose in ol ing
an AI.
Es ima ed ime: 7 weeks.
Expec ed esul : Success ul in eg a ion o he LLM model in o he game, wi h
co ec ly gene a ed boa ds and ully de eloped di e en game modes.
PHASE 9: Tes ing, e iews, and imp o emen s
In his inal phase o he p ojec , nume ous es s will be conduc ed o ensu e he
p ope unc ioning o he game. Any de ec ed e o s will be co ec ed. Addi ionally,
conside a ion will be gi en o implemen ing imp o emen s in he use in e ace, game
logic, and p omp s used.
Me hodology: Adop ion o an i e a i e app oach o con inuous es ing and
e iews, which acili a es he iden i ica ion and co ec ion o e o s, as well as he
implemen a ion o imp o emen s based on eedback ob ained du ing he p ocess.
Es ima ed ime: Un il he inal deli e y o he p ojec .
Expec ed esul : Deploymen o he inal e sion o he game, ensu ing ha i
mee s all p oposed objec i es and is ee o bugs.
16
Each phase would be documen ed in he inal p ojec epo , which is w i en and
modi ied h oughou he du a ion o he p ojec .
Ilus ación 1.4 P ojec ime planning
17
Capí ulo 2 - Es ado de la cues ión
Una de las pa es undamen ales de es e abajo es la in eg ación del juego con
un LLM. En es e capí ulo se busca o ece una isión del es ado ac ual de es os modelos
de lenguaje.
Los LLMs son modelos de ap endizaje p o undos o mados po una ed neu onal
compues a de múl iples pa áme os y en enados con una g an can idad de da os de
ex o sin e ique a (Amazon Web Se ices, 2023). Tienen di e sas aplicaciones en la
ac ualidad, que incluyen el desa ollo de cha bo s y asis en es i uales, la gene ación y
aducción de ex os y el análisis de sen imien os, en e o as. Algunos de los LLMs más
conocidos son GPT-3.5 y GPT-4 de OpenAI, LLaMa de Me a y Gemini de Google. Es os
modelos se encuen an en cons an e e olución, con nue os lanzamien os que mejo an
con inuamen e las p es aciones de sus p edeceso es. Un ejemplo de es o son los
modelos desa ollados po OpenAI, p e iamen e mencionados. GPT-4 ue lanzado en
ma zo de 2023 y ep esen ó una mejo a sus ancial sob e el modelo an e io , GPT-3.5.
Aunque en con e saciones in o males puede pa ece que iene un compo amien o
simila a su p edeceso , las di e encias se hacen e iden es cuando se le pide ealiza
a eas con un mayo ni el de complejidad (OpenAI, 2023). Pese a las mejo as
in oducidas, el modelo sigue eniendo limi aciones simila es a las de sus e siones
an e io es, especialmen e en é minos de iabilidad. Es o demues a la necesidad de
segui e olucionando los modelos pa a alcanza una mayo p ecisión. Po es e mo i o,
OpenAI es á abajando en una nue a e sión de su IA gene a i a que no a da á
mucho en llega al me cado, GPT-5. Aunque aún no se conocen con exac i ud las
uncionalidades que inco po a á es e nue o modelo, Al man, CEO de OpenAI, ha
adelan ado que es a nue a e sión se á más in eligen e, iable, mul imodal y end á una
mayo capacidad de azonamien o (Chudleigh, 2024).
Po o o lado, pa a comp ende mejo los LLMs, es impo an e amilia iza se con
di e sos concep os elacionados con ellos y que ambién se usa án a lo la go del
p oyec o.
18
2.1 In eligencia A i icial
La IA es el campo de la in o má ica que se en oca en el desa ollo de sis emas
capaces de ealiza a eas que no malmen e equie en in eligencia humana. En la
úl ima década, el desa ollo de la IA ha a anzado signi ica i amen e, ans o mando
nume osos aspec os de la ida co idiana y e olucionando di e sas indus ias, como la
medicina (Feingold & Wo ld Economic Fo um, 2023). Es os a ances han pe mi ido
mejo as no ables en la e iciencia, p ecisión y accesibilidad de los se icios, lo que ha
enido un impac o signi ica i o en la ida y el abajo de las pe sonas.
2.1.1 In eligencia A i icial gene a i a
La IA gene a i a es un campo de la IA que se especializa en c ea nue os
con enidos, incluyendo imágenes, ex os, ideos y audios. Es e p oceso se lle a a cabo
median e el análisis de pa ones en da os exis en es y la aplicación de écnicas de
ap endizaje au omá ico (O ing on, 2024). Den o de es a ca ego ía, los LLMs se dedican
especí icamen e a la gene ación de ex o.
2.1.2 Redes neu onales
Una ed neu onal es un ipo de a qui ec u a de ap endizaje au omá ico que es á
basada en el compo amien o del ce eb o humano. Las edes neu onales es án
compues as po una se ie de nodos, los cuales, cada uno iene su p opia unidad de
p ocesamien o (Cloud la e, s. .). Es os nodos es án epa idos di e en es capas: una
capa de en ada que ecibe los da os, una o a ias capas ocul as que son las
enca gadas de p ocesa los da os y una capa de salida que es que la en ega el
esul ado inal.
Las edes neu onales, con una in e ención humana limi ada, pueden ayuda a
las compu ado as a oma decisiones in eligen es. Es o se debe a que pueden ap ende
y modela las elaciones complejas y no lineales en e los da os de en ada y salida
(Amazon Web Se ices, 2022).
19
2.1.3 Ap endizaje p o undo
El ap endizaje p o undo es una ama a anzada del ap endizaje au omá ico que
imi a el p ocesamien o del ce eb o humano median e el uso de edes neu onales
a i iciales. Es os modelos, compues os po a ias capas de nodos, imi ando las neu onas
del ce eb o humano, p ocesan da os de mane a secuencial y je á quica. Es o pe mi e
que el sis ema ap enda de mane a e icien e y au ónoma de g andes can idades de
da os. Las edes de ap endizaje p o undo son pa icula men e ú iles pa a ges iona
da os no es uc u ados y pa a lle a a cabo a eas complejas, como el econocimien o
de oz, el p ocesamien o de lenguaje na u al y la implemen ación de sis emas de
ecomendación.
Los LLMs se basan en el ap endizaje p o undo pa a ap ende el lenguaje y el
con ex o y así gene a espues as lo más ealis as posibles (Cloud la e, s. .)
2.2 API
Las In e aces de P og amación de Aplicaciones (APIs) se han ido con i iendo
en los úl imos años en una de las piezas undamen ales de las aplicaciones ac uales.
Una API es un conjun o de eglas y p o ocolos que pe mi en que los p og amas y sis emas
se comuniquen en e sí. Ac úa como un in e media io que acili a el in e cambio de
da os y uncionalidades en e aplicaciones que es án diseñadas en di e en es
pla a o mas o lenguajes (Fe nández, 2019). Exis en a ios ipos de API, como las REST y
SOAP, que u ilizan dis in os p o ocolos y es uc u as pa a la comunicación. También
pueden clasi ica se según su uso: API públicas, p i adas, de socios o compues as
(Amazon Web Se ices, 2021).
En el con ex o de los LLMs, la API unciona como un in e media io en e la
aplicación y el LLM. De o ma que, se pueda hace consul as al LLM desde el código
uen e que se desa olle.
26
- Sumando a es a lis a de a chi os, ambién se con igu ó una ca pe a /s a ic pa a
gua da en ella las imágenes u ilizadas y los a chi os CSS y Ja aSc ip y un iche o
o ms.py en el que Django iden i ica los di e en es o mula ios que se c ean en la
aplicación (Regis o, login o elección de opciones de juego)(Django P ojec , s. .-
d, s. .-e)
Además, Django o ece un despliegue de la aplicación sencillo en su se ido ,
que acili a el p oceso de desa ollo y de p uebas del p oyec o. De ca a a desplega lo
públicamen e ya es necesa io es udia opciones de se ido es Web que admi an Py hon
como lenguaje, que se comen a á pos e io men e en la sección 3.9.
3.3 Gi Hub Desk op
Gi hub Desk op es la aplicación de esc i o io de Gi , una he amien a que acili a
el abajo y con ol de e siones de los a chi os en un p oyec o. Los p oyec os en Gi se
o ganizan po eposi o ios, donde se gua dan odos los a chi os que lo con o man. A
es os eposi o ios pueden accede odos los usua ios, pe mi iendo así la in eg ación de
los dis in os desa ollos de código que ealicen los componen es del equipo y el con ol
de las e siones del p oyec o.
En es e p oyec o se ha sido u ilizado pa a con ola el desa ollo de la aplicación
sin que hubiese con lic os a la ho a de uni código o de ol e a e siones an e io es en
caso de allo. G acias al uso de Gi Hub Desk op ha sido posible abaja de o ma
pa alela sin in e e i con el abajo de o os miemb os del equipo. Cada desa ollado
ha podido ealiza a eas y p uebas uni a ias de mane a aislada, agilizándose así el
desa ollo de código de la página. Es o, jun o a un epa o de a eas de inido pa a
maximiza la e iciencia, ha minimizado los con lic os, asegu ando un lujo de abajo más
o ganizado. Además, la posibilidad de e e i cambios en caso de e o es ha
p opo cionado una capa adicional de segu idad en el desa ollo del p oyec o.
3.4 Visual S udio Code
Visual S udio Code es un edi o de código desa ollado po Mic oso , que o ece
sopo e pa a nume osos lenguajes de p og amación, como Py hon y Django. El uso de
27
es a he amien a po el equipo ha sido undamen al pa a acili a la esc i u a,
depu ación y ges ión del código. Cuen a con una amplia gama de ex ensiones que
pe mi en pe sonaliza y mejo a la expe iencia de desa ollo, como el sopo e pa a la
sin axis de Py hon o la in eg ación con Gi .
En es e p oyec o, Visual S udio Code ha pe mi ido a los desa ollado es abaja
de mane a e icien e g acias a sus ca ac e ís icas de au ocomple ado in eligen e, que
educe e o es y acele a la esc i u a de código. Además, la capacidad de con igu a
en o nos de desa ollo especí icos y ejecu a p uebas di ec amen e desde el edi o ,
como se desc ibe en su documen ación, ha sido cla e pa a man ene un lujo de
abajo con inuo y p oduc i o. La in eg ación na i a con Gi ha complemen ado el uso
de Gi Hub Desk op, pe mi iendo la ges ión de e siones y el seguimien o de cambios de
mane a luida, lo que ha con ibuido a la o ganización y es abilidad del p oyec o.
3.5 Ven
Den o de Py hon exis e el módulo en , dedicado a la c eación de en o nos
i uales en Py hon. Debido a la necesidad de usa di e en es módulos y lib e ías en el
p oyec o, como el de OpenAI o Django, se conside ó ú il c ea un en o no i ual en el
que ins ala es os paque es pa a es u iesen disponibles en odo momen o pa a el
p oyec o.
Po ello, an es de c ea el p oyec o de Django, se con igu ó un en o no i ual con
en , se ins ala on las úl imas e siones de los paque es que se eque ían, y ya inalmen e
se c eó den o el p oyec o de Django. Es o ha acili ado el aspaso del eposi o io en e
los pa icipan es al compa i odos los mismos paque es a pesa de abaja en dis in os
o denado es y la subida del p oyec o a un dominio público (Py hon documen a ion, s.
.).
3.6 SQLi e
Django sopo a di e en es bases de da os, en e las cuales se encuen an
Ma iaDB, MySQL, O acle o SQLi e(Django P ojec , s. .-a). Como ya se ha mencionado,
po de ec o se u iliza SQLi e, po ello se decidió man ene esa base de da os, pa a e i a
28
complicaciones y más con igu aciones. Como SQLi e se encuen a de mane a
p ede e minada ins alada en Py hon no se debe con igu a nada de mane a adicional
(Django P ojec , s. .-d).
SQLi e es una lib e ía que implemen a un mo o de base de da os SQL sencillo y
iable (Sqli e.o g, s. .). Pa a el p oyec o la base de da os que se necesi aba e a bas an e
simple, con ando de unas pocas ablas. Como no se espe an g andes lujos de
ac i idad en la página web SQLi e se conside ó su icien e. Pa a pode u iliza la base de
da os en SQLi e se deben c ea modelos a los que pos e io men e se ealiza an consul as
pa a ob ene las di e en es ilas o inse a da os. Los modelos c eados en la base de
da os se pueden consul a en models.py.
3.7 Ja aSc ip
Ja aSc ip es un lenguaje de p og amación in e p e ado, p incipalmen e
o ien ado a la c eación de sc ip s pa a páginas web que se ejecu en de mane a
dinámica.
Aunque la lógica p incipal de la aplicación se maneja desde las is as c eadas
en Django, se conside ó ú il añadi pequeñas uncionalidades con Ja aSc ip , pa a que
hubiese una mejo a de la usabilidad de la aplicación de ca a al usua io inal. Po lo
an o, den o de la ca pe a /s a ic de la aplicación se inco po ó un iche o Ja aSc ip
que con enía odo el código js de la aplicación (MDN Web Docs, s. .).
3.8 API in eg ada
Al se uno de los obje i os del TFG in eg a una API con la aplicación de juego se
lle ó a cabo un es udio de las di e en es he amien as que p opo cionan es e se icio y
adicionalmen e, o ecían un cha con el que pode in e ac ua y que pe mi iese p oba
los p omp s p e iamen e pa a no incu i en g andes cos es. En e las he amien as
analizadas se encuen an las siguien es:
• LLaMA by Me a
• Gemini by Google
29
• GPT by OpenAI
3.8.1 LLaMA
Cuando se empezó a desa olla es e TFG, a inales del año 2023, LLaMa 3 de
Me a no es aba aún en el me cado y pa a accede a la API de LLaMA se enía que
desca ga el modelo en local. LlaMA o ecía una en aja impo an e y es que es de
“licencia comuni a ia” y po lo an o no se incu ía en ningún cos e. Sin emba go, al no
es a disponible de mane a come cial ue muy di ícil encon a una solución que
pe mi iese in eg a el modelo en la aplicación de mane a sencilla. Adicionalmen e,
como se puede e en la Ilus ación 3.3, al lle a a cabo p uebas pa a e si el modelo
e a capaz de gene a able os de juego que co espondiesen con los equisi os de la
aplicación o que con es ase co ec amen e pa a pode juga , se descub ió que LlaMA
no e a el modelo mejo en enado en ese momen o y que el ni el de las espues as e a
bas an e bajo, cos ándole incluso comunica se en el idioma español y eniendo unos
iempos de espues a bas an e la gos.
Ilus ación 3.3 Ejemplo espues a LlaMa 2
Sin emba go, a mediados de ab il 2024 salió al me cado LlaMA 3, la úl ima e sión
del modelo de lenguaje de IA de Me a. En un p incipio se conside aba su uso
únicamen e pa a in es igado es, pe o ac ualmen e se es á plan eando implan a en
algunas aplicaciones de Me a como Wha sApp o Facebook y como si io web
(Me a.com, 2024).
En e las mejo as encon adas en compa ación con LlaMA 2 (modelo que ue
p obado en la Ilus ación 3.3) se encuen a el en enamien o con un conjun o de da os
30
sie e eces mayo que incluye o os idiomas di e en es al inglés, mejo ando así el
p ocesamien o de da os y las espues as en, po ejemplo, español. Supe a en
compu ación ( uncionando con mayo núme o de pa áme os) a a ios de los modelos
compa ables de sus compe ido es, como pueden se Cha GPT 3.5 o Gemini P o-1.5
(Fe nández, 2024).
Ac ualmen e es e LLM sigue sin encon a se disponible en España, sin emba go,
Nebuly, emp esa de op imización de IA, ha u ilizado es e modelo pa a mejo a su
ecnología, y ha in oducido en o el LLM de Me a. Se han lle ado a cabo p uebas pa a
e si se han dado mejo as desde la úl ima ez, ob eniendo, como se puede obse a
en la Ilus ación 3.4, mejo as sus anciales, an o en calidad de espues a como en
iempo.
Ilus ación 3.4 Ejemplo espues a LLaMa 3 en Cha Llama
Adicionalmen e, Nebuly o ece una API con di e en es modelos, en e los cuales
ha in oducido LLaMA3 en su e sión en enada, a unos p ecios bas an e asequibles y
31
egalando 5$. Así, ambién se o ece una guía de ins alación y u ilización pa a di e en es
en o nos.
Tabla 3.1 P ecios LlaMA API
P ecio
Núme o de pa áme os del modelo
$0.0004/1K okens
< 7B
$0.0016/1K okens
7B – 34B
$0.0032/1K okens
>34b
Elabo ación p opia con da os de (Llama API, n.d.)
A pesa de no es a u ilizándose es e modelo en la aplicación p esen ada en es e
TFG, si en su momen o hubiese sido una opción iable p obablemen e se hubiese
elegido, g acias a las múl iples en ajas que se o ecen.
3.8.2 Gemini by Google
O a de las opciones es udiadas ue in eg a la API que o ece Google de su LLM
Gemini (an e io men e Ba d). Las p uebas que se lle a on a cabo con el cha bo die on
luga a espues as azonables ( e Ilus ación 3.5).
Ilus ación 3.5 Ejemplo espues a Gemini
32
La API de Gemini pe mi e in oduci an o ex o como imágenes, con cie os
lími es, e incluso man ene con e saciones en a ios u nos, al es ilo cha , a a és de la
API. La documen ación de Google o ece oda la in o mación elacionada a la
con igu ación e in eg ación de la API en los en o nos deseados.
En la Tabla 3.2 se mues a una compa a i a en e su e sión g a ui a y la e sión
de pago (disponible a pa i del 14 de mayo). Pa a los equisi os de uso del TFG, la capa
g a ui a no o ece los ni eles de se icio necesa ios po lo lími es p opues os y la e sión
de pago supone un p ecio más ele ado que el de los compe ido es. Adicionalmen e,
ac ualmen e la API de Gemini no se encuen a disponible en España, po lo que a pesa
de que se quisie a in en a in eg a la con la API, de momen o no es algo ac ible
(Google AI o De elope s, s. .).
Tabla 3.2 P ecios Gemini API
Ve sión g a ui a
Pay-as-you-go
Lími es de ecuencia
- 2 RPM (solici udes po minu o)
- 32.000 TPM ( okens po minu o)
- 50 PRD (solici udes po día)
Lími es de ecuencia
- 10 RPM (solici udes po minu o)
- 10 millones de TPM ( okens po
minu o)
- 2.000 PRD (solici udes po día)
P ecio (inpu )
G a ui o
P ecio (inpu )
$7 / 1 millón de okens
P ecio (ou pu )
G a ui o
P ecio (ou pu )
$21 / 1 millón de okens
Se usan los p omp s y espues as pa a
mejo a los p oduc os.
No se usan los p omp s y espues as pa a
mejo a los p oduc os.
Elabo ación p opia con da os de (Google AI o De elope s, n.d.-a)
33
3.8.3 GPT by OpenAI
Cha GPT ha conseguido una ue e popula idad en los úl imos años, siendo en la
ac ualidad uno de los cha s más u ilizados y acep ados socialmen e. OpenAI, emp esa
desa ollado a de Cha GPT sacó en 2023 la e sión mejo ada de su modelo 3.5, Cha GPT
4.0. Es e modelo es capaz de gene a espues as basándose no únicamen e en ex o,
sino ambién en imágenes y se ha mejo ado su segu idad, su c ea i idad y su en ana
de con ex o (de Luis, 2023). La e sión 4.0 de Cha GPT es de pago, po lo an o, se
hicie on las p uebas con Cha GPT 3.5, que, a pesa de no se an po en e mues a unos
esul ados bas an e a o ables, que se ajus an a los equisi os, al y como se puede
obse a en la Ilus ación 3.6.
Ilus ación 3.6 Ejemplo espues a Cha GPT 3.5
Cha GPT pe mi e in eg a sus se icios en aplicaciones y si ios web a a és de su
API y g andes compañías como Snapcha o Shopi y hacen uso de es a ecnología. En
la documen ación de OpenAI que se e ie e a las API, se explica odo el p oceso a segui
pa a la in eg ación de la IA con la aplicación. Se o ecen di e en es p ecios pa a
di e en es e siones. En la Tabla 3.3 se mues an aquellos modelos que ue on ba ajeados
al cumpli con los equisi os del TFG.
34
Tabla 3.3 P incing Cha GPT API
Modelo
Inpu
Ou pu
gp -4- u bo-2024-04-09
0.01$/1k okens
0.03$/1k okens
gp -4
0.03$/1k okens
0.06$/1k okens
gp -4-32k
0.06$/1k okens
0.12$/1k okens
gp -3.5- u bo-0125
0.0005$/1k okens
0.0015$/1k okens
gp -3.5- u bo-ins uc
0.0015$/1k okens
0.0020$/1k okens
Elabo ación p opia con da os de (OpenAI, s. .-b)
Po odos los bene icios que o ecía y la posibilidad de in eg a la API en el juego,
inalmen e se op ó po u iliza Cha GPT de OpenAI. Pa a empeza , al c ea una cuen a
nue a se o ecían de egalo 5$, que se conside ó en un p incipio su icien es. Sin
emba go, exis ían cie os lími es al no ene un mé odo de pago asociado, elacionado
con núme o máximos de eques s po día y minu o. Po ello, se ealizó un pago de 5$
que ue on su icien es pa a lle a a cabo el TFG.
Adicionalmen e, pa a en ena al Cha GPT, OpenAI da la opción de lle a a
cabo ine- uning de algunos de sus modelos. Pa a ello, se aplican di e en es a i as po
en enamien o y pos e io uso del modelo (Tabla 3.4). El ine- uning pe mi e pe sonaliza
el modelo según las necesidades, consiguiendo mejo es esul ados que simplemen e
usando p omp s y sob e odo pe mi iendo in oduci ejemplos y da os en mayo es
can idades. Al es a en enado, el LLM no necesi a p omp s an la gos pa a sa is ace los
equisi os, educiendo así los okens u ilizados en las consul as y la la encia (OpenAI, n.d.-
a).
35
Tabla 3.4 P icing Fine- uning Cha GPT
Modelo
En enamien o
Inpu
Ou pu
gp -3.5- u bo
8,00 US$ / 1M okens
3,00 US$ / 1M okens
6,00 US$ / 1M okens
da inci-002
6,00 US$ / 1M okens
12,00 US$/ 1M okens
12,00 US$ / 1M okens
babbage-002
0,4 US$ / 1M okens
1,6 US$ / 1M okens
1,6 US$ / 1M okens
Elabo ación p opia con da os de OpenAI (s. .-b)
Finalmen e, o o de los se icios o ecidos po OpenAI es el playg ound.
Playg ound pe mi e p oba las di e en es con igu aciones de la API de Cha GPT y los
da os in oducidos no se u ilizan pa a segui en enado el modelo. Se pueden lle a a
cabo p uebas con di e en es modelos, en e los cuales se encuen an aquellos que se
hayan en enado median e ine- uning. Po cada consul a ealizada se cob a el impo e
co espondien e (Fe nández, 2023). En el p opio playg ound se explican los concep os
que se pueden cambia pa a pe sonaliza las espues as del modelo, en e los cuales
des acan los siguien es, que ue on u ilizados du an e el abajo:
• Tempe a u a. Puede oma un alo en e 0 y 2, po de ec o es 1. La
empe a u a con ola la alea o iedad, cuan o más ce cano a 2 más
alea o io y c ea i o (llegando incluso a da espues a sin sen ido). Cuan o
más se ace que el alo a 0 el modelo se á más p ede e minado y
epe i i o.
• Longi ud máxima y s op sequence. Median e la cual se puede con ola el
núme o máximos u ilizados de okens o si se desea pa a después de una
secuencia en conc e o.
Du an e la p ime a pa e del abajo pa a lle a a cabo las p uebas se es u o
u ilizando el modelo gp -3.5- u bo-0125. Sin emba go, a mediados de e ano se in odujo
el modelo gp -4o-mini, mejo en enado que el modelo 3.5 y con meno cos e. Se
mues a en la siguien e abla una compa a i a en e el modelo 3.5- u bo y el 4o-mini.
42
nada y en caso de allo no se añade nada al bo e y no se gana nada de ese p og ama.
Pa iendo de la úl ima palab a p opo cionada en La Úl ima Cadena se les o ece a los
concu san es las dos p ime as le as y la úl ima le a de la palab a a adi ina .
Exis e la opción de pedi una pis a, que o ece la o a palab a con la que es á
elacionada la palab a que se debe ace a . En caso de decidi usa la pis a, el dine o
del bo e se uel e a pa i a la mi ad.
Siguiendo la cadena del pun o an e io , en es e caso se mues a un ejemplo de
la onda donde la palab a a adi ina empieza po IG y inaliza po A. Los concu san es
p opusie on la palab a “iguana” po la ob a de ea o “La noche de la Iguana” y como
no conside a on necesa io pedi la pis a, el bo e se man u o in ac o.
Ilus ación 4.5 Ejemplo onda La Úl ima Palab a
43
Capí ulo 5 - Casos de uso
En es a sección se p e ende mos a los di e en es casos de uso que se dan con
el uso de la aplicación que se quie e desa olla .
En p ime luga , es necesa io de ini los ac o es del sis ema. En es e caso, se
iden i ica un único ipo de ac o que in e ac úa con el sis ema:
Jugado
Se a a del usua io al que a di igida la aplicación. En cada pa ida del juego,
pa icipa án dos jugado es, aunque en algunas ondas solo uno de ellos juga á. Es os
jugado es pod án se an o pe sonas eales como una IA.
En la siguien e igu a se en los di e en es casos de uso de es e ac o .
Ilus ación 5.1 Diag ama UML Casos de Uso Ac o Jugado
44
Tabla 5.1 Caso de uso Regis a Jugado
CU-01
Regis a Jugado
Desc ipción
El jugado se puede egis a en el sis ema
Ac o
Jugado
O igen
Pan alla de inicio
P econdición
No exis e un usua io egis ado con el mismo co eo
elec ónico
Pos condición si éxi o
Jugado egis ado co ec amen e
Pos condición si e o
Se uel en a pedi los da os pa a un egis o co ec o
Flujo no mal
1. El jugado pulsa el bo ón de egis a se y se le di ige a
la página de egis o
2. El jugado in oduce los da os que se solici an
3. El jugado pulsa el bo ón de egis a se, se alidan los
da os y se da de al a al jugado
Flujo al e na i o
2. El jugado in oduce los da os de o ma e ónea o los
da os de un jugado ya egis ado
3. Se mues a mensaje de e o y se uel en a pedi los
da os al jugado
Tabla 5.2 Caso de uso Inicia Sesión
CU-02
Inicia sesión
Desc ipción
El jugado inicia sesión en el juego con sus da os
45
Ac o
Jugado
O igen
Pan alla de inicio
P econdición
El jugado debe ene una cuen a c eada con sus da os en el
sis ema
Pos condición si éxi o
Jugado inicia su sesión co ec amen e
Pos condición si e o
Se uel en a pedi los da os pa a inicia la sesión
co ec amen e
Flujo no mal
1. El jugado pulsa el bo ón de inicia sesión y se le di ige
a la página de inicio sesión
2. El jugado in oduce los da os que se solici an
3. El jugado pulsa el bo ón de inicia sesión, se alidan los
da os y se inicia la sesión del jugado .
Flujo al e na i o
2. El jugado in oduce los da os de o ma e ónea o los
da os de un jugado no egis ado
3. Se mues a mensaje de e o y se uel en a pedi los
da os al jugado
Tabla 5.3 Caso de uso Ce a Sesión
CU-03
Ce a sesión
Desc ipción
El jugado cie a su sesión ac i a en la aplicación
Ac o
Jugado
O igen
Pan alla de inicio
46
P econdición
El jugado debe iene la sesión iniciada
Pos condición si éxi o
Jugado cie a su sesión co ec amen e
Pos condición si e o
N/A
Flujo no mal
1. El jugado pulsa sob e el bo ón ce a sesión
Flujo al e na i o
N/A
Tabla 5.4 Caso de uso Inicia Juego
CU-04
Inicia juego
Desc ipción
El jugado inicia una nue a pa ida del juego
Ac o
Jugado
O igen
Pan alla de inicio
P econdición
N/A
Pos condición si éxi o
Se inicia una nue a pa ida
Pos condición si e o
N/A
Flujo no mal
1. El jugado selecciona el modo de juego
2. El jugado pulsa el bo ón de juga y se di ige la pan alla
de p e-juego
3. El jugado in oduce su nomb e y el nomb e del
jugado oponen e
47
4. El jugado pulsa el bo ón de juga y se inicia una nue a
pa ida
Flujo al e na i o
N/A
Tabla 5.5 Caso de uso Ve Ranking
CU-05
Ve Ranking
Desc ipción
El jugado puede e el anking ac ual de los 10 jugado es que
más pun os han log ado en una pa ida de juego
Ac o
Jugado
O igen
Pan alla de inicio
P econdición
N/A
Pos condición si éxi o
Jugado e el anking
Pos condición si e o
N/A
Flujo no mal
1. El jugado pulsa sob e el bo ón con una imagen de una
copa y se le di ige a la pan alla con el anking
Flujo al e na i o
N/A
Tabla 5.6 Caso de uso Juga Palab as Encadenadas
CU-06
Juga Palab as Encadenas
Desc ipción
Dos jugado es juegan a la onda de Palab as Encadenas
48
Ac o es
Jugado 1, Jugado 2
O igen
Pan alla de ins ucciones Palab as Encadenadas
P econdición
Exis e una pa ida en juego
El juego es á con igu ado pa a comenza siemp e con el
Jugado 2
Se ha seleccionado una secuencia de 6 palab as donde
cada palab a empieza con la úl ima le a de la palab a
an e io
Todas las palab as es án elacionadas con un ema que se
mues a al inicio de la cadena de las palab as
Las palab as se adi inan en el o den que apa ecen de a iba
a abajo
Pos condición si éxi o
Se e mina la onda Palab as Encadenadas y se pasa a la
siguien e onda Cen o de la Cadena
Pos condición si e o
N/A
Flujo no mal
1. Los jugado es leen las ins ucciones del juego y pulsan
el bo ón de juga que los di ige a la pan alla de
Palab as Encadenadas
2. Inicio del juego:
- Se mues a la p ime a le a de la p ime a
palab a
3. Juga u no:
- El jugado del u no in en a adi ina la palab a
a. El jugado es una pe sona:
49
▪ In oduce la palab a
b. El jugado es una IA:
▪ Pulsa bo ón “Pulse aquí pa a que
juegue la IA”
- El jugado adi ina co ec amen e, se le asignan
2000 pun os y e ela la siguien e palab a
iniciando con la p ime a le a.
4. Con inuación del u no:
- El jugado que ace ó con inúa jugando con las
siguien es palab as
5. Finalización del juego:
- El juego e mina cuando se han adi inado las 6
palab as
- El jugado pulsa el bo ón de siguien e que le
en ía a la pan alla que mues a los ma cado es
ac uales
- El jugado pulsa el bo ón de siguien e que le
di ige a la pan alla de las ins ucciones de la
siguien e ase del juego: Cen o de la Cadena
50
Flujo al e na i o
3. El jugado alla al adi ina la palab a
- El jugado no gana pun os
- Se e ela la siguien e le a de la palab a
- El u no pasa al o o jugado
4. Se e ela una palab a en e a sin adi ina
- Los 2000 pun os se le asignan al jugado
con a io al que in en ó adi ina la úl ima le a
- Se e ela la p ime a le a de la siguien e palab a
y el u no pasa al jugado que ganó los pun os
5. El juego con inúa como en el lujo no mal
Tabla 5.7 Caso de uso Juga Cen o de la Cadena
CU-07
Juga Cen o de la Cadena
Desc ipción
Dos jugado es juegan a la onda de Cen o de la Cadena
Ac o es
Jugado 1, Jugado 2
O igen
Pan alla de ins ucciones Cen o de la Cadena
51
P econdición
Exis e una pa ida en juego
El juego es á con igu ado pa a que comience siemp e el
jugado con meno pun uación
Se ha seleccionado una secuencia de 7 palab as donde
cada palab a gua da una elación con las palab as
adyacen es a ella
Desde el inicio del juego, se mues an 3 palab as de la
cadena: la p ime a, la del medio y la úl ima. Po lo an o, los
jugado es ienen que adi ina las 4 palab as es an es
Cada ez que se deba adi ina una nue a palab a, el
jugado en u no end á la opción de elegi la, seleccionando
en e aquella que es é ubicada más a iba o más abajo en el
able o
Pos condición si éxi o
Se e mina la onda Cen o de la Cadena y se pasa a la
siguien e onda Una lle a a la O a
Pos condición si e o
N/A
Flujo no mal
1. Los jugado es leen las ins ucciones del juego y pulsan
el bo ón de juga que los di ige a la pan alla de Cen o
de la Cadena
2. Inicio del juego:
- El jugado del u no elige la palab a que quie e
adi ina
- Se mues a la p ime a le a de la palab a
3. Juga u no:
- El jugado del u no in en a adi ina la palab a
58
4. Con inuación del juego:
- El jugado con inúa adi inando las siguien es
palab as
5. Finalización del juego:
- El juego e mina cuando se han adi inado las 6
palab as
- El jugado pulsa el bo ón de siguien e que le
di ige a la pan alla de las ins ucciones de la
siguien e ase del juego: La Úl ima Palab a
Flujo al e na i o
3. El jugado alla al adi ina la palab a po p ime a ez
- Se e ela la segunda le a de la palab a
a. El jugado no iene comodines:
▪ Se di iden sus pun os po la mi ad
b. El jugado iene comodines:
▪ Se es a un comodín al jugado
- El jugado in en a adi ina la palab a
a. El jugado es una pe sona:
▪ In oduce la palab a
b. El jugado es una IA:
▪ Pulsa bo ón “Pulse aquí pa a que juegue
la IA”
- El jugado adi ina co ec amen e, se pasa a la
siguien e palab a y se mues a su p ime a le a
4. El jugado alla al adi ina la palab a po segunda ez
59
- Se di iden sus pun os po la mi ad
- Se mues a la e ce a le a de la palab a
a. El jugado no iene comodines:
▪ Se di iden sus pun os po la mi ad
b. El jugado iene comodines:
▪ Se es a un comodín al jugado
- El jugado in en a adi ina la palab a
a. El jugado es una pe sona:
▪ In oduce la palab a
b. El jugado es una IA:
▪ Pulsa bo ón “Pulse aquí pa a que juegue
la IA”
a. El jugado alla al adi ina la palab a:
▪ Se di iden sus pun os po la mi ad
- Se pasa a la siguien e palab a y se mues a su
p ime a le a
5. El juego con inúa como en el lujo no mal
Tabla 5.10 Caso de uso Juga La Úl ima Palab a
CU-10
Juga La Úl ima Palab a
Desc ipción
Un jugado juega a la onda de La Úl ima Palab a
Ac o
Jugado Ganado
60
O igen
Pan alla de ins ucciones La Úl ima Palab a
P econdición
Exis e una pa ida en juego
El juego es á con igu ado pa a que juegue el jugado que
jugó la ase an e io
Se ha seleccionado una secuencia de 3 palab as donde la
palab a del medio gua da elación con las o as 2. Es a
palab a es la que iene que adi ina el jugado
Desde el inicio del juego, se mues a únicamen e la palab a
de a iba
Pos condición si éxi o
Se e mina la onda La Úl ima Palab a y la pa ida
Pos condición si e o
N/A
Flujo no mal
1. El jugado lee las ins ucciones del juego y pulsa el
bo ón de juga que lo di ige a la pan alla de La Úl ima
Palab a
2. Inicio del juego:
- Se mues an las dos p ime as le as y la úl ima de
la palab a a adi ina
3. Juga :
- El jugado decide si comp a el eslabón
mis e ioso
▪ Si lo comp a, se di iden sus pun os po la
mi ad y se mues a la palab a de abajo
- El jugado in en a adi ina la palab a
a. El jugado es una pe sona:
61
▪ In oduce la palab a
b. El jugado es una IA:
▪ Pulsa bo ón “Pulse aquí pa a que juegue
la IA”
a. El jugado adi ina la palab a:
▪ Gana los pun os acumulados
b. El jugado alla la palab a:
▪ Pie de los pun os acumulados
4. Finalización del juego:
- El jugado pulsa el bo ón de siguien e que le
di ige a la pan alla de in de juego, se gua da
su pun uación ob enida y e mina la pa ida
Flujo al e na i o
N/A
62
Capí ulo 6 - Lógica de la aplicación
Todos los casos de uso han sido implemen ados en la aplicación haciendo uso
de las he amien as y ecnologías in oducidas en los p ime os capí ulos. En es e capí ulo
se explica el p oceso seguido pa a la elabo ación de la aplicación y como se elacionan
a ni el de código los di e en es elemen os. En las dis in as secciones se explican las
pan allas p incipales de la aplicación, pa iendo de los boce os ealizados al p incipio y
comen ado los elemen os más des acables de cada una de ellas.
La aplicación comple a se encuen a disponible en el siguien e enlace
h ps:// eaccionencadena.py honanywhe e.com/ y en es e capí ulo se mos a án
cap u as de es a, mos ando di e en es p uebas lle adas a cabo. Adicionalmen e, el
eposi o io en Gi Hub que con iene odo el código del p oyec o se puede isi a a a és
del siguien e enlace h ps://gi hub.com/alexpa eja/ReAIccionEnCadena.
6.1 Base de da os
La base de da os cuen a con cua o modelos que se han c eado en el a chi o
models.py. Es os modelos son los siguien es:
• Palab as Encadenadas, pa a la p ime a onda del juego. Consis e en un
ema y las palab as elacionadas con es e, iden i icadas de la siguien e
mane a: p1, p2, p3 … p6.
• Eslabón Cen al, u ilizado pa a gua da el able o que se u ilizan en las
ondas Una lle a a la O a y Cen o de la Cadena. Consis e en 7 palab as
iden i icadas de la siguien e mane a: p1, p2, p3 … p7
• Ronda Final, almacena las palab as u ilizadas pa a La Úl ima Cadena y La
Úl ima Palab a. Con iene 15 palab as iden i icadas igual que en los casos
an e io es.
• Ma cado , pa a los da os elacionados al anking. Posee una columna
“jugado ”, con el nomb e del jugado y o a columna “pun os”, po
63
de ec o 0, pa a gua da la pun uación conseguida en cada onda y
pos e io men e pode mos a la en el anking.
Pa a ealiza las p uebas p e ias al Cha GPT se han inse ado da os usando la
consola de adminis ación. Pos e io men e, como se comen a á en los siguien es
apa ados, los able os c eados po Cha GPT se incluyen den o de las bases de da os.
6.2 Index (Pan alla de inicio)
La p ime a pan alla que e ían los usua ios se ía la página de inicio. En es a
pan alla se decidió simplemen e pone el í ulo de juego con las di e en es modalidades:
• Jugado s Jugado : En es e modo de juego ambos jugado es son
pe sonas ísicas que in e ac úan en o den con el sis ema.
• Jugado s IA: En es e modo de juego un usua io in e ac úa con el juego,
sin emba go, es a ez en con a de una IA.
• IA s IA: En es e modo de juego el usua io es un simple espec ado y son
dos IAs las que juegan y esponden a las di e en es p egun as.
Una ez seleccionada la modalidad deseada la idea e a que el jugado pudiese
empeza a juga , poniendo pa a ello un bo ón de “JUGAR”. Adicionalmen e, se decidió
que exis i ían usua ios, pa a pode gua da las pun uaciones de cada uno. Po ello,
desde la página p incipal se podía accede a la página de inicio de sesión. Sin
emba go, ambién se da la posibilidad de juga de mane a anónima, sin ene cuen a
de usua io.
64
Ilus ación 6.1 Boce o página de Inicio
Es a página acabo siendo en su mayo pa e como se especuló en los boce os,
con la di e encia de que se incluye on dos bo ones pa a accede más ácilmen e a las
páginas de egis o ( egis o.h ml) e inicio de sesión (login.h ml). En el código, se
implemen ó den o de iews.py la unción index(), que incluye el o mula io pa a
selecciona el modo de juego. La pa e más isual se implemen ó en index.h ml.
Se decidió ambién añadi , como no edad con espec o al boce o, una sección
de anking a la que se puede accede haciendo click en el o eo, accediendo de es a
mane a a pun uaciones.h ml. Al lado de es e icono, en caso de que el usua io enga
usa sesión abie a apa ece á su nomb e de usua io y un bo ón que le pe mi i á accede
a la página que cie a la sesión (logou .h ml). Po el con a io, como se puede obse a
en la Ilus ación 6.2 simplemen e apa ece á “In i ado” y en caso de pulsa encima, se
di igi á al usua io a la página de inicio de sesión.
65
6.3 P egame
Pa a hace la expe iencia más pe sonalizada, se pensó que pod ía exis i una
página in e media después de elegi la modalidad de juego en la que se pe mi iese al
usua io añadi los nomb es de los jugado es. Una ez in oducidos los nomb es pod ía
segui con el juego. Del mismo modo, desde es a página se pe mi e el acceso al pe il.
El boce o inicial de es a página se ía el siguien e:
Ilus ación 6.3 Boce o página P egame
Al igual que el caso an e io , el boce o de es a pan alla se implemen ó
p ác icamen e igual, excep uando el hecho de que se decidió elimina el ícono de pe il
Ilus ación 6.2 Página de Inicio
66
pues o que se conside ó que no apo aba nada. La lecha pa a ol e a la página
an e io ue cambiada po un icono de una casa, que lle a al usua io de uel a a la
página de inicio (index.h ml). El código de es a página den o de iews.py se encuen a
den o de la unción p egame(), que con iene el o mula io que pe mi e in oduci los
nomb es. Del mismo modo, la pa e isual del código se implemen ó en p egame.h ml.
Ilus ación 6.4 Página P egame
6.4 Sesiones
Pa a pode o ece una expe iencia óp ima y e i a que se gene e un able o
di e en e o que se pie da el u no o el nomb e del jugado cada ez que se e esca la
página se hizo uso de sesiones du an e odas las ases. A ni el global, se gua dan en las
sesiones los nomb es de los jugado es, si es os son IA o jugado y su pun uación ob enida.
A ni el de juego cada una de las ondas iene sus p opias a iables de sesión, como el
núme o de le as mos adas de una palab a, el núme o de palab as adi inadas o si se
puede o no selecciona una palab a.
En la unción inicializa Jugado es() den o de iew.py se inicializan odas las
a iables a ce o, pa a que en el momen o en el que se desee empeza una nue a
pa ida se bo en los able os gene ados y se c een nue os able os con nue os
jugado es y nue os pun os.
Todas las a iables de sesión se an pasando en cada unción pa a pode
man ene siemp e el juego ac ualizado y pode a anza co ec amen e. En el caso de
67
que se uel a a la pan alla de inicio, odas las a iables de la sesión que se usan a lo
la go de la pa ida se einician, pe mi iendo que el usua io pueda juga una nue a
pa ida desde el p incipio.
6.5 Página de ins ucciones
Aunque el juego es á pensado pa a pe sonas que han is o el p og ama, al exis i
di e en es modalidades de juego se conside ó adecuado in oduci an es de cada ase
las ins ucciones de cada onda en conc e o, pa a acili a la expe iencia.
Ilus ación 6.5 Boce o página Ins ucciones
Al se una página an simple se man u o la es uc u a del boce o, eliminando los
bo ones de uel a y del pe il del usua io. Como la página se debe epe i con di e en e
con enido las cinco ondas del juego, se c eó una plan illa (base_ins ucciones.h ml) y
desde las unciones de iews.py: ins ucciones_palab as_encadenadas,
ins ucciones_una_lle a_a_la_o a, ins ucciones_cen o_de_la_cadena
ins ucciones_ul ima_cadena e ins ucciones_ul ima_palab a se pasa la in o mación
pe sonalizada de cada una de las ondas. Pa a pode accede a las páginas de
ins ucciones se deben segui las siguien es u ls:
ins ucciones/palab as_encadenadas.h ml, ins ucciones/una_lle a_a_la_o a.h ml,
ins ucciones/cen o_de_la_cadena.h ml, ins ucciones/ul ima_cadena.h ml e
ins ucciones/ul ima_palab a.h ml.
74
6.8.1 Table o
En el able o se mues a, al inicio de onda la p ime a le a de la palab a que se
busca, jun o con ba as bajas que de e minan cuan as le as quedan en la palab a.
Pa a más cla idad y mejo expe iencia de usua io, se decidió que al lado de la palab a
a adi ina se expond ía el núme o o al de le as de es a. Con o me se adi inasen las
palab as se i ían mos ando las palab as es an es del able o. El able o es gene ado
po la API de Cha GPT, en la unción Gene a PanelPE(), median e p omp s que se
discu en con más de alle en el capí ulo 7. Se de uel e una lis a con el ema y las
palab as y es as se p ocesan en la unción palab as_encadenadas() en iews.py.
El o ma o de la espues a ob enida del p omp se especi ica que debe se en
JSON, po lo que las palab as se uelcan, pa a pode pasa las pos e io men e como
pa áme o a la página palab as_encadenadas.h ml, usando la unción json.loads().
Pa a pode iden i ica ácilmen e las palab as, se usa ema, p1, p2, p3…, p7 como
nomb e y la palab a gene ada como alo .
T as ealiza a ias p uebas, a pesa de especi ica lo de di e en es mane as en los
p omp s, en algunos casos los able os gene ados no cumplían los equisi os necesa ios.
En conc e o, no odas las palab as empezaban con la le a con la que acaba su
palab a an e io . Po ello, se decidió comp oba manualmen e que el able o gene ado
cumplía con es a especi icación y comp oba adicionalmen e, median e el uso de un
se (comp obando su longi ud), que las palab as no se epi en den o de la cadena. El
able o se ca ga si se cumplen ambas condiciones. Has a en onces, se gene an able os
en bucle.
Cuando se empezó a gene a el código, lo p ime o que se hizo ue la lógica del
juego. Po ello, las palab as del able o no e an gene adas po la API de Cha GPT, sino
que p o enían de la base de da os.
Pa a acili a la con inuación de la implemen ación del juego, las palab as
gene adas po la API se gua dan en la base de da os (en Palab asEncadenas) con el
o ma o comen ado, y es desde allí de donde se ca gan pos e io men e. Se ca ga la
úl ima en ada de la abla, donde se ha gua dado p e iamen e la nue a lis a
75
gene ada, y se eco e cada columna usando pi (donde i es el índice y núme o de la
palab a) como iden i icado . Se conside an los siguien es casos:
• La palab a es á siendo adi inada en es e u no (el índice es igual al núme o de
palab as adi inadas). En es e caso, se mues a la palab a sus i uyendo con
guiones el núme o de le as que al an po con es a .
• La palab a ya ha sido adi inada (el índice es meno que el núme o de palab as
adi inadas). En es e caso, se mues a la palab a en e a.
• La palab a aún no se ha adi inado (el índice es mayo que el núme o de palab as
adi inadas). Se mues a la palab a en blanco.
6.8.2 Juego
La onda a anza de mane a di e en e según sea el u no de un jugado o el u no
de una IA. En caso de que sea el u no de una IA, se ha c eado una a iable pausaIA_RX,
sus i uyendo la X po la onda co espondien e, pa a e i a que nada más empeza el
juego la IA in oduzca una espues a. En caso de es a ac i ada la a iable la IA puede
juga su u no, pues o que el panel ya se ha mos ado. Sin emba go, en caso con a io
la IA no juega, pe mi iendo al usua io e el able o inicial.
En el u no de la IA se llama al p omp median e la API de Cha GPT y es a
de uel e, en o ma o JSON, la palab a que conside a co ec a, jun o con una
explicación, al y como se explica en la sección 6.6. Si el u no es de un jugado se hace
un POST pa a ob ene la espues a que el usua io in oduce po pan alla. En ambos casos
se llama a la unción de iews.py juga Tu noP ime aRonda() que comp ueba si la
palab a in oducida es o no co ec a.
• En caso de se co ec a se suman los pun os al jugado median e la unción
ac ualiza Pun os() de iews.py. Si odas las palab as han sido adi inadas, se
acaba la onda ac i ando el lag in. En caso con a io se llama a la unción
ac ualiza Es ado(), que se encuen a den o de la p opia unción
juga Tu noP ime aRonda(). Es a unción a anza las palab as adi inadas y
p epa a la siguien e palab a a adi ina .
76
• Si la espues a in oducida no es co ec a, si quedan le as po e ela se mues a
la siguien e le a de la palab a que se es á adi inando y se cambia el u no al
siguien e jugado . Po el con a io, en caso de que no queden le as po mos a
en la palab a que se es á adi inando se suman los pun os al jugado con a io de
ese u no y si quedan palab as po adi ina , se ac ualiza el juego con la unción
ac ualiza Es ado(), como pasaba en el caso an e io .
6.9 Cen o de la cadena y Una lle a a la O a
La segunda y e ce a onda del juego se llaman Cen o de la cadena y Una lle a
a la O a, y se ealizó el siguien e boce o pa a isualiza la es uc u a de las is as de
ambas páginas:
Ilus ación 6.16 Boce o Cen o de la Cadena y Una lle a a la O a
Man eniendo el mismo es ilo que la página de la p ime a onda, Palab as
Encadenadas, se ubicó el panel de palab as a la izquie da y a la de echa la en ana
con los jugado es, quedando inalmen e de la siguien e mane a.
77
Ilus ación 6.17 Página Cen o de la Cadena
Ilus ación 6.18 Página Una lle a a la O a
6.9.1 Table o
En es e caso, el able o se compone de 7 palab as, y dependiendo de la onda
apa ecen 3 de ellas ya ellenas (la p ime a, cua a y sép ima en la onda Cen o de la
Cadena) o únicamen e 2 (la p ime a y la sép ima en la onda Una lle a a la O a). Se
78
mues an ejemplos de cada onda en las ilus aciones Ilus ación 6.18 y Ilus ación
6.19 espec i amen e. En es as dos ondas, los huecos que se encuen an po encima o
po debajo de una palab a ellena son elegibles po los jugado es pa a con es a ,
apa eciendo en colo na anja. Los usua ios debe án elegi uno de ellos pudiendo así
con es a con la palab a que conside en que se elaciona con las adyacen es.
De la misma mane a que en la onda Palab as Encadenadas, el able o se
gene a a a és de llamadas a la API de Cha GPT, es a ez median e la unción
Gene a Panel7Huecos(). Es e panel se aduce del JSON que c ea Cha GPT, se
in oduce en la base de da os (en la abla EslabónCen al) y se selecciona pa a la
pa ida en cu so. Como en es e caso los equisi os de ez en cuando ampoco se
cumplían, se añadió un se pa a compa a su longi ud y no mos a palab as epe idas.
Pa a ges iona el p oceso de selección de la palab a que se quie e adi ina se
ha u ilizado Ja asc ip . Cuando se e mina de esol e una palab a, el juego
au omá icamen e ac ualiza el diseño de los paneles, pa a ac ualiza las palab as que a
pa i de ese momen o son elegibles. Re isa las palab as adyacen es a la palab a que
se acaba de esol e y si encuen a alguno acío lo ma ca como seleccionable.
En el momen o de selecciona palab as, el juego espe a has a que el usua io (o
la IA) ealizan la acción. El usua io pod á hace click en cualquie a de los dos paneles
en na anja pa a que se ac i e el juego con esa palab a de nue o. En Ja aSc ip se
ejecu a la unción selecciona Palab a() pa a en ia el panel seleccionado a la lógica
de la onda en Django.
79
Ilus ación 6.19 Table o Cen o de la Cadena
Ilus ación 6.20 Table o Una lle a a la O a
6.9.2 Juego
En unción del ipo de jugado que debe con es a en el u no ac ual y de si hay
una palab a seleccionada pa a juga o no, se pueden da los siguien es casos de juego:
- Si no hay una palab a seleccionada y es u no del usua io, el juego se de iene
has a que se haga click en alguna de las dos palab as que apa ecen en na anja y se
80
pueden selecciona . T as es o el juego pasa a ene la palab a seleccionada en juego,
apa eciendo la p ime a le a y pudiendo el usua io in oduci la espues a que conside a
co ec a.
- Si no hay una palab a seleccionada y le oca juga a la IA, se elige
au omá icamen e una de las dos palab as pa a que pueda juga al pulsa el bo ón
‘Pulse aquí pa a que juegue IA’.
- Si la palab a ya es á seleccionada y es el u no del jugado , debe in oduci po
pan alla la palab a que conside e que es la solución, y da le a en ia . Es o en ia á la
espues a pa a que se pueda p ocesa si es co ec a o no y ealiza las ac ualizaciones
co espondien es.
- Si la palab a ya es á seleccionada y es el u no de la IA, en p ime luga , se e isa
el lag ‘pausaIA’. La inalidad de es e lag es pe mi i que se puedan e las espues as
que da el con incan e. Sin es e lag, al ace a la IA, elegi ía e in en a ía con es a la
siguien e palab a di ec amen e, no pe mi iendo e la espues a co ec a y su
explicación. De es a o ma, se pe mi e que haya una pausa pa a mos a el es ado de
la pa ida, pudiendo con inua dando al bo ón ‘Pulse aquí pa a que juegue IA’.
T as es o, se ecopilan las palab as an e io y pos e io de la palab a que se es á
in en ando adi ina . A a és de la unción llamadaAPICha GPT (palab a_an es,
palab a_despues, p ime a_le a) se en ía el p omp con la in o mación necesa ia pa a
que la IA de uel a un JSON con la espues a que p opone y su explicación.
Cuando la palab a es á seleccionada y se juega el u no, ya sea el usua io o la
IA, en la unción juga Tu noSegundaRonda() pa a el Cen o de la Cadena y
juga Tu noTece aRonda() pa a Una lle a a la O a, se compa a la palab a solución con
la in oducida. Si coincide, se ac ualizan los pun os, se mues a la palab a comple a y se
pasa al es ado de elección de una nue a palab a (usando las unciones de iews.py
mencionadas en el apa ado de Palab as Encadenadas). Si no coincide, se cambia de
jugado , se mues a una le a más y si ya se ha mos ado la palab a en e a se dan los
pun os, al con a io, ac i ando de nue o el es ado de selección de una nue a palab a
del able o pa a que el i al pueda con inua el juego.
81
Cuando ya se han con es ado odas las palab as, se bloquea el able o y
apa ece un bo ón pa a pasa lee las ins ucciones de la siguien e onda.
6.10 Panel jugado
Las úl imas dos ondas (La Úl ima Cadena y La Úl ima Palab a) únicamen e las
juegan un jugado . Como ya no hay dos jugado es, la plan illa u ilizada pa a el panel
en es e caso cambia, y pasa a se base_ inal_playe .h ml. El uncionamien o es el mismo,
pe o solo se mues a un jugado . Al igual que pasaba en la o a plan illa de panel, pa a
que juegue la IA se mues a un bo ón (Ilus ación 6.11), mien as que, cuando es el u no
de un jugado ísico, apa ece una caja de ex o pa a que in oduzca su espues a
(como en la Ilus ación 6.10). Adicionalmen e, al comple a se el panel se mues a
un mensaje de onda inalizada en el caso de La Úl ima Cadena, donde si se pulsa en
Siguien e se pasa a la página de ins ucción de La Úl ima Palab a. Si lo que se comple a
es La Úl ima Palab a, apa ece un mensaje de juego inalizado y al pulsa el bo ón de
Siguien e, en es e caso, el jugado es edi igido a la página inal ( in_juego.h ml)
Ilus ación 6.21 Panel jugado es inalizado en La Úl ima Cadena
82
Ilus ación 6.22 Panel jugado es inalizado en La Úl ima Palab a
6.11 La Úl ima Cadena
Es a onda se di e encia del es o, como ya se ha mencionado, en que solo la
juega un jugado . Po ello, el panel de jugado es de la de echa se modi ica.
Adicionalmen e, la cadena que se mues a es más la ga y el jugado puede e a ias
palab as a la ez. La mane a de in oduci la palab a, an o pa a IA como pa a jugado
ísico se man iene como en el es o de las ondas.
Ilus ación 6.23 Boce o La Úl ima Cadena
Man eniendo el boce o o iginal, la pan alla (ul ima_cadena.h ml) inalmen e se
mues a de la siguien e mane a.
83
Ilus ación 6.24 Pan alla La Úl ima Cadena
6.11.1 Table o
El able o se gene a como en las demás ondas con el Cha GPT median e la
unción gene a Panel15huecos() den o de iews.py. En es a unción se gene a an o
las palab as de es a onda como las de la siguien e (La Úl ima Palab a) y son gua dadas
den o de la base de da os en la abla RondaFinal, as comp oba que las palab as del
panel gene ado no se epi en.
En la unción ul ima_cadena() den o de iews.py se ac ualizan las sesiones pa a
que exis a un único jugado y el panel se o ma mos ando en el inicio odas aquellas
palab as que se encuen en en posiciones impa es. Pa a las palab as que en posiciones
pa es se comp ueba si la palab a ha sido o no adi inada, haciendo uso de un con ado .
Al igual que en ondas an e io es, en caso de habe sido adi inada se mues a. En caso
con a io, el espacio se queda acío y si se es á adi inando en ese u no se mues a la
p ime a le a. El able o se mues a en la Ilus ación 6.25.
90
Figu a 7.1 Ejemplo p omp Palab as Encadenadas
Es e p omp gene aba cadenas que, en un p incipio, mayo i a iamen e, solían
cumpli odos los equisi os, como se puede obse a en la ilus ación.
Ilus ación 7.1 Ejemplo espues a p omp palab as encadenadas
Gene a una lis a con 6 palab as que cumplan obliga o iamen e los siguien es equisi os:
1. Tienen que es a odas elacionadas con el mismo ema
2. Las palab as ienen que es a encadenadas, es deci , odas, excep uando la p ime a,
ienen que empeza po la úl ima le a de la palab a es ic amen e an e io . Po ejemplo: si la
p ime a palab a es olli os, la segunda palab a debe á OBLIGATORIAMENTE empeza po la
le a S (ya que es la úl ima le a de olli os)
3. No ale pone palab as de más de una palab a como "nue a yo k" o "nue a zelanda", es
deci que no ale pone espacios, "nue a" se ía una palab a y "yo k" o a
4. La misma palab a no puede es a dos eces, es deci no se puede epe i
Todos es os equisi os se deben cumpli al pie de la le a, en caso de que uno no se cumpla
se debe á busca o a palab a u o o ema.
Opcionalmen e, se ía p e e ible que no odas las palab as empeza an po la misma le a.
P opo ciono es e ejemplo pa a que lo en iendas mejo , de uél elo en el mismo o ma o
JSON:
{" ema": "China",
"p1": " olli os",
"p2": "shanghai",
"p3": "imp en a",
"p4": "acupun u a",
"p5": "a ozales",
"p6": "sopa"}
91
Sin emba go, uno de los p oblemas encon ados ue que los emas que gene aba
Cha GPT e an odo el a o los mismos y bas an e sencillos. Como se buscaba a iedad
se in en ó hace p omp chaining. El p omp chaining se basa en di idi un único p omp
en a ios p omp s, di idiendo así el abajo en di e en es sub a eas. El esul ado del
p ime p omp se u iliza como inpu del segundo, y así sucesi amen e
(P omp ingGuide.AI, 2024).
En es e caso, se elabo ó un p ime p omp que enía como obje i o gene a el
ema de la cadena pa a, pos e io men e, usa dicho ema en el p omp que gene a la
lis a de palab as. Pa a acili a el p oceso se u iliza on las ca ac e ís icas adicionales
o ecidas po la API de Cha GPT p obando p ime o en el playg ound.
Pa a el p ime p omp se ag egó con ex o median e el sys em, explicando que
se encuen a en un concu so y que se debe gene a un ema a iado. En el p omp
in oducido se pedía un poco de lo mismo y que se de ol iese el ema en o ma o JSON.
Finalmen e, se modi icó la empe a u a, subiéndola a 1,65.
Pa a mejo es esul ados, se gene a on di e en es con ex os a añadi en el sys em,
en e los cuales se elegi ía alea o iamen e, a iando así más los emas p incipales
p opues os. Al pedi le un ema, sin especi ica su longi ud, se de ol ían emas muy la gos
y sin sen ido en a ias ocasiones, como se puede obse a en la siguien e imagen.
92
Ilus ación 7.2 Ejemplo espues a ema
Sin emba go, al especi ica se que el ema que se p opusiese debía de se de
máximo es palab as, el a io de e o se edujo. Aun así, cabe des aca que de ez en
cuando el modelo alla, y de uel e emas pa ecidos al de la Ilus ación 7.2. Finalmen e,
el p omp ob enido acabo siendo el siguien e:
93
Figu a 7.2 P omp inal ema Palab as Encadenas
En e los esul ados ob enidos con es e p omp se dan mul i ud de emas, como
los que se exponen a con inuación:
Ilus ación 7.3 Ejemplos emas Palab as Encadenadas
sys em_p omp s = [
"E es un gene ado de palab as únicas y eales en español.",
"P opo ciona dos palab as eales y únicas en español.",
"Gene a dos palab as que sean álidas en el idioma español. ",
"E es un gene ado de emas pa a un concu so. Debes se c ea i o a la ho a de o ece
emas, aba cando cualquie ema en español."]
esponse = openai.cha .comple ions.c ea e(
model="gp -4o-mini",
messages=[
{
" ole": "sys em",
"con en ": andom.choice(sys em_p omp s)
},
{
" ole": "use ",
"con en ": "Piensa en un ema (máximo 3 palab as) y dámelo con la siguien e
es uc u a JSON: n{ n " ema ": " " n}"
}
],
empe a u e=1.65,
max_ okens=20,
esponse_ o ma ={" ype": "json_objec "}
)
94
Pa a el segundo p omp se abajó de mane a simila , añadiendo con ex o,
solici ando la lis a de palab as y especi icando el o ma o. Sin emba go, en es e caso,
la empe a u a se disminuyó a 0,5 pa a que la espues a p opo cionada uese más
p ecisa y se siguiesen los equisi os co ec amen e. Se u iliza el ema gene ado en el
p omp an e io como pa áme o. Después de a ios ajus es, el p omp se man u o
como se mues a en la Figu a 7.3, y, como ya se mencionó en apa ados an e io es no
siemp e se cumplían odos los equisi os, a pesa de esc ibi lo de múl iples mane as,
eniendo así que hace comp obaciones ex e nas al p omp pa a asegu a que se
gene a un panel co ec o.
Figu a 7.3 P omp inal able o Palab as Encadenadas
Se mues an a con inuación di e en es paneles gene ados con es os p omp s.
esponse = openai.cha .comple ions.c ea e(
model="gp -4o-mini",
messages=[
{
" ole": "sys em",
"con en ": "E es un gene ado de palab as. Debes asegu a e de que odas las
palab as que gene as empiezan po la úl ima le a de la palab a an e io en la lis a en español
cas ellano."
},
{
" ole": "use ",
"con en ": "Dame una lis a de 6 palab as en cas ellano elacionadas con el ema " +
ema + ". Asegú a e de que cada palab a empiece con la úl ima le a de la an e io palab a de
la lis a. Las 6 palab as no pueden se iguales ni se puede pone palab as compues as po más
de una palab a. Deben ene un máximo de 12 le as. De uél eme es a lis a en un JSON con
la siguien e es uc u a { " ema ": " ", "p1 ": " ", "p2 ": " ", "p3 ": " ", "p4 ":
" ", "p5 ": " ", "p6 ": " " }"
}
],
empe a u e=0.5,
max_ okens=300,
esponse_ o ma ={" ype": "json_objec "}
)
95
Ilus ación 7.4 Ejemplos able os Palab as Encadenadas gene ados con el p omp inal
7.1.2 Gene a able o de Una lle a a la O a y Cen o de la Cadena
Como el o ma o del able o es igual en ambas ondas, el p omp u ilizado pa a
c ea los es el mismo. La mayo pa e del p omp engenee ing ue lle ado a cabo pa a
es as ondas, siguiendo di e en es mé odos e in en ándolo de muchas mane as. Sin
emba go, siemp e se daba el p oblema de que odas las palab as es aban
elacionadas no únicamen e con su an e io y siguien e, sino con odas en gene al. A
pesa de in en a co egi lo, la espues a ob enida nunca e a la deseada y, aunque en
gene al, el able o no se encon aba como al “mal plan eado”, no ue conside ado
su icien e. A con inuación, se o ece un ejemplo de p omp plan eado, jun o con su
co espondien e espues a en di e sos in en os:
96
Figu a 7.4 Ejemplos p omp segunda y e ce a onda
Ilus ación 7.5 Ejemplos able os gene ados con el p omp de p ueba
Se pidió en a ias ocasiones la explicación explíci a de po qué las palab as se
elacionan en e sí y no con el es o de las palab as no adyacen es pa a in en a
en ende y soluciona el p oblema. Sin emba go, las espues as ob enidas gene almen e
e an incong uen es y bas an e sin sen ido. Po ejemplo, se pueden e algunas de las
explicaciones p opo cionadas, pa a la cadena
p1: Hielo, p2: F ío, p3: Mon aña, p4: Cumb e, p5: E e es , p6: Al i ud, p7: A ión
Dame una lis a de 7 palab as en o ma o JSON donde cada palab a iene una elación con
cada palab a que iene debajo o encima (independien e del es o de elaciones). La palab a x
se elaciona solo con la palab a (x-1) y la palab a (x+1).
Te paso un ejemplo explicado pa a que en iendas mejo . (Tu no hace al a que lo expliques)
Ejemplo (de uel e la espues a con el o ma o de es e json):
{ "p1": "TOCADISCOS", "p2": "AGUJA", "p3": "RELOJ", "p4": "ARENA", "p5":
"DESIERTO", "p6": "PREDICAR" "p7":"EJEMPLO" }
Explicación del ejemplo: Los ocadiscos ienen una aguja pa a pode unciona , y ocadiscos
no se elaciona con nada más. La aguja del eloj señala la ho a. Exis e el ipo de eloj de
a ena. La a ena es el p incipal componen e del desie o. El desie o es a donde se a a
p edica . Exis e la ase hecha "p edica con el ejemplo". Ejemplo no se elaciona con nada
más.
97
Ilus ación 7.6 Ejemplos azonamien os
O a de las écnicas que se in en a on ue pedi le al p opio Cha GPT que
elabo ase un p omp cla o y conciso que siguiese las especi icaciones necesa ias. Una
ez más, las espues as ob enidas po los p omp s gene ados p opo cionaban able os
muy pa ecidos a los que ya se había is o, elacionando odas las palab as en e sí,
usando muchas eces la misma emá ica.
En el p og ama de ele isión, se hacen ecuen es e e encias a í ulos de
películas, lib os, pe sonas amosas e incluso a e anes popula es. Se in en ó que se
plasma an es e ipo de elaciones en los able os gene ados, de múl iples mane as, pe o
siemp e las espues as ob enidas e an bas an e gené icas, po mucho que se in en a a
en a iza en la necesidad de da elaciones conc e as. Po ejemplo, se mues an a
con inuación di e sos able os ob enidos, al añadi al p omp an e io la siguien e ase:
Me gus a ía que exis iese alguna elación en e las palab as que enga que e con películas
(usando po ejemplo sus í ulos), ases hechas, lib os (usando po ejemplo elaciones en e
esc i o es y sus lib os o los í ulos de las ob as), e anes (españoles en cas ellano), amosos
( elacionando su abajo con su nomb e o algún apodo), cul u a española...
98
Ilus ación 7.7 Ejemplos able os gene ados conc e ando más en los emas
Po ello, se decidió en ena el modelo, p opo cionándole más con ex o pa a que
los able os gene ados ue an mejo es y más aco de a los able os eales del p og ama.
Todo es e p oceso se encuen a documen ado en la sección 7.2.
Como los esul ados ob enidos del modelo en enado no ue on los espe ados, se
p obó es a ez siguiendo el p oceso lle ado a cabo ambién pa a la gene ación del
able o de la onda de Palab as Encadenadas.
Du an e la elabo ación del TFG, OpenAI sacó a la luz la e sión 4.0, mejo ada y
con in o mación más ac ual. Po ello, se in en ó e o mula el p omp haciendo
e e encia di ec a al p og ama de ele isión de Telecinco, del que es a nue a e sión
supues amen e ya enía conocimien o. Sin emba go, los esul ados ob enidos no ue on
muy di e en es a los que se gene aban con la e sión 3.5, po lo que se abandonó la
idea. Del mismo modo, se in en ó añadi e e encias al p og ama median e el sys em.
Es o a simple is a no mejo aba los esul ados ob enidos. Además, los paneles se algunas
eces las palab as “ eacción” y “cadena” sin ningún ipo de con ex o. El obje i o e a
in en a gene a cadenas lo más a iadas posibles que no epi iesen muchas eces la
misma emá ica e in en a sol en a de la mejo mane a posible el p oblema de que
odas las palab as es u ie an elacionadas con odas.
Se lle a on a cabo mul i ud de p uebas, de iniendo los di e en es p omp s de
di e en es mane as. Po ejemplo, se in en ó empeza con las p ime as es palab as (p1,
p2 y p3), in en ado gene a el es o de la cadena en dos p omp s di e en es (p4 y p5 po
99
un lado y p6 y p7 po o o). Es o ampoco u o ningún ipo de esul ado, y los able os
ob enidos seguían sin se lo buscado.
O o de los p omp s que se gene ó, con unos esul ados bas an e sa is ac o ios se
basaba en gene a el able o desde los ex emos (empezando po p1 y p7) hacía
den o. La empe a u a en es e p omp se ía supe io , pa a aumen a la alea o iedad y
la di e encia en e las palab as. En un segundo p omp se pedi ía p2 y p6, elacionadas
con p1 y p7 espec i amen e y en un e ce p omp p3 y p5, elacionados con las
palab as ob enidas en el p omp an e io . Finalmen e, un úl imo p omp pedi ía p4, que
debía es a elacionada con p3 y p5.
El p oblema de es e p omp enía dado p incipalmen e po el inal. En muchas
ocasiones, elaciona p3 y p5 e a una a ea bas an e complicada, pues o que igual e an
palab as que no enían nada que e en e sí. El esul ado de es o desembocaba en
que p4 solía es a elacionada únicamen e con una de las dos palab as adyacen es,
ompiendo signi ica i amen e la cadena, como se pude obse a en las siguien es
ilus aciones.
Ilus ación 7.8 Table os gene ados con un p omp de p ueba
106
Ilus ación 7.11 Ejemplos de paneles gene ados con el p omp inal de las ondas 2 y 3
7.1.3 Gene a able o de La Úl ima Cadena y La Úl ima Palab a
Al igual que en el p og ama de ele isión, las es palab as que o man La Úl ima
Palab a es una con inuación del able o que se juega en La Úl ima Cadena. Po ello, al
gene a con el Cha GPT el able o se gene an las 15 palab as de las dos ondas
conjun amen e. Las p ime as 13 palab as co esponden a La Úl ima Cadena, mien as
que las 13, 14 y 15 son las mos adas en La Úl ima Palab a.
El p omp de es e úl imo able o es á muy elacionado con el p omp que gene a
el able o de 7 palab as (sección 7.1.2), po lo cual el p oceso pa a llega al p omp inal
107
es muy pa ecido. Los esul ados ob enidos al in en a gene a el able o en un único
p omp ue on muy pa ecidos a los que se die on al gene a en un único p omp el
able o de 7 palab as, o mándose cadenas bas an e mono emá icas, aunque en
meno medida que en el caso an e io , al ene que gene a se el doble de palab as.
Ilus ación 7.12 Ejemplos de paneles gene ados con un p ime p omp pa a La Úl ima Cadena
Se in en ó que el núme o de p omp s u ilizados no uesen muy ele ados, po lo
que, gene almen e se seguían los pasos pa a gene a los able o de 7 palab as, solo que
pidiendo dos palab as a la ez. Como las cadenas en es a caso e an bas an e más
g andes, el p oblema de que las palab as u ie an que e en e sí, no se daba an o.
Se in en ó di idi el panel en dos mini paneles de 7 palab as cada uno, in en ado
busca al inal una palab a que es u iese elacionada an o con la úl ima palab a del
p ime panel como la p ime a palab a del segundo panel. Ambos paneles se
gene aban a la ez, de ue a hacia den o, sacando en un p ime p omp
alea o iamen e p1, p7, p9 y p15. Y a pa i de allí saca 4 palab as en cada p omp .
108
En el segundo p omp se pedi ía p2 ( elacionado con p1), p6 ( elacionado con
7), p10 ( elacionado con p9) y p14 ( elacionado con p15). En un e ce p omp se
consegui ían p3, p5, p11 y p13 siguiendo el mismo p oceso y inalmen e, p4
( elacionando a la ez p3 y p5), p12 ( elacionando a la ez p11 y p13) y p8 ( elacionando
p7 y p9). Sin emba go, al igual que pasaba con el able o de 7 palab as, p4, p12 y p8
a a ez es aban elacionadas con ambas palab as adyacen es.
Finalmen e, pa a in en a soluciona ese p oblema, se decide gene a el able o
pa iendo desde el cen o. El p ime p omp gene a una palab a alea o ia p8 y a pa i
de es a se gene an p7 y p9, y a pa i de es as se gene a p6 y p10. Así consecu i amen e
has a llega a p1 y p15. En es e caso al gene a se más palab as el able o suele se más
a iado. Po ello, pa a simpli ica los p omp s se decidió no añadi las elaciones que sí
que se u ilizaban en el caso del able o de 7 palab as.
Los p omp s inalmen e se o mula on como se obse a en las siguien es igu as.
Únicamen e el p ime p omp (Figu a 7.14) iene un sys em di e en e y empe a u a
supe io . El es o de p omp s usan el mismo sys em y empe a u a que el segundo p omp
(Figu a 7.15), cambiándose únicamen e el con enido del use .
109
Figu a 7.14 P omp inal pa a gene a p8 en La Úl ima Cadena
Figu a 7.15 P omp inal pa a gene a p7 y p9 en La Úl ima Cadena
sys em_p omp s = [
"E es un gene ado de palab as únicas y eales en español pa a un p og ama de ele isión
español.",
"Te enca gas de p opo ciona una palab a eal y única en español pa a c ea un able o
pa a un p og ama de ele isión",
"Debes gene a una palab a única que sea álida en el idioma español."]
p ime _ eques = openai.cha .comple ions.c ea e(
model="gp -4o-mini",
messages=[
{
" ole": "sys em",
"con en ": andom.choice(sys em_p omp s)
},
{
" ole": "use ",
"con en ": "P opo ciona un sus an i o o adje i o, p8, alea o io no in en ado en
español. Hay que de ol e únicamen e la palab a en el siguien e o ma o
JSON: n{ n "p8 ": " "}"
}
],
empe a u e=1.45,
max_ okens=100,
esponse_ o ma ={" ype": "json_objec "}
)
p8 = json.loads(p ime _ eques .choices[0].message.con en )["p8"]
segundo_ eques = openai.cha .comple ions.c ea e(
model="gp -4o-mini",
messages=[
{
" ole": "sys em",
"con en ": "Gene as una lis a de palab as pa a un p og ama de ele isión español..
Con es a con la mayo p ecisión posible"
},
{
" ole": "use ",
"con en ": "P opo ciona dos palab as di e en es, p7 y p9, que es én elacionadas con
" + p8 + " que no gua den elación en e sí. De uel e las palab as en el siguien e o ma o
JSON: n{ n "p7 ": " ", n "p9 ": " "}"
}
],
empe a u e=0.6,
max_ okens=150,
esponse_ o ma ={" ype": "json_objec "}
)
110
Figu a 7.16 P omp inal pa a gene a p6 y p10 en La Úl ima Cadena
Figu a 7.17 P omp inal pa a gene a p5 y p11 en La Úl ima Cadena
Figu a 7.18 P omp inal pa a gene a p4 y p12 en La Úl ima Cadena
e ce _ eques = openai.cha .comple ions.c ea e(
{
" ole": "use ",
"con en ": "P opo ciona una palab a p6 elacionada con " + p7 + ". Adicionalmen e,
p opo cioname una palab a p10 elacionada con " + p9 + ". Ninguna palab a debe epe i se, y
no puede es a elacionada con " + p8 + ". De uel e las palab as en el siguien e o ma o
JSON: n{ n "p6 ": " ", n "p10 ": " "}"
}
)
cua o_ eques = openai.cha .comple ions.c ea e(
{
" ole": "use ",
"con en ": "P opo ciona una palab a p5 elacionada con " + p6 + ". Adicionalmen e,
p opo cioname una palab a p11 elacionada con " + p10 + ". Ninguna palab a debe epe i se,
y no puede es a elacionada con "+p8 + ", " + p7 + " ni" + p9 + ". De uel e las palab as en el
siguien e o ma o JSON: n{ n "p5 ": " ", n "p11 ": " "}"
}
)
quin o_ eques = openai.cha .comple ions.c ea e(
{
" ole": "use ",
"con en ": "P opo ciona una palab a p4 elacionada con " + p5 + ". Adicionalmen e,
p opo cioname una palab a p12 elacionada con " + p11 + ". Ninguna palab a debe epe i se,
y no puede es a elacionada con "+p8 + "," + p6 + "," + p10 + ", " + p7 + " ni" + p9 + ".
De uel e las palab as en el siguien e o ma o JSON: n{ n "p4 ": " ", n "p12 ": " "}"
}
)
111
Figu a 7.19 P omp inal pa a gene a p3 y p13 en La Úl ima Cadena
Figu a 7.20 P omp inal pa a gene a p2 y p14 en La Úl ima Cadena
Figu a 7.21 P omp inal pa a gene a p1 y p15 en La Úl ima Cadena
En la Ilus ación 7.913 se mues a el o den en el cual se a o mando el able o,
indicando que palab a se gene a en cada p omp .
sex o_ eques = openai.cha .comple ions.c ea e(
{
" ole": "use ",
"con en ": "P opo ciona una palab a p3 elacionada con " + p4 + ". Adicionalmen e,
p opo cioname una palab a p13 elacionada con " + p12 + ". Ninguna palab a debe epe i se,
y no puede es a elacionada con "+p8 + "," + p5 + "," + p10 + ", " + p7 + ","+p11 + "," + p6
+ " ni" + p9 + ". De uel e las palab as en el siguien e o ma o
JSON: n{ n "p3 ": " ", n "p13 ": " "}"
} )
sep imo_ eques = openai.cha .comple ions.c ea e(
{
" ole": "use ",
"con en ": "P opo ciona una palab a p2 elacionada con " + p3 + ". Adicionalmen e,
p opo cioname una palab a p14 elacionada con " + p13 + ". Ninguna palab a debe epe i se,
y no puede es a elacionada con "+p8 + "," + p5 + "," + p10 + ", " + p7 + ","+p11 + "," + p6
+ "," + p4 + "," + p12 + " ni" + p9 + ". De uel e las palab as en el siguien e o ma o
JSON: n{ n "p2 ": " ", n "p14 ": " "}"
)
oc a o_ eques = openai.cha .comple ions.c ea e(
{
" ole": "use ",
"con en ": "P opo ciona una palab a p1 elacionada con " + p2 + ". Adicionalmen e,
p opo cioname una palab a p15 elacionada con " + p14 + ". Ninguna palab a debe epe i se,
y no puede se ni es a elacionada con "+p8 + "," + p5 + "," + p10 + ", " + p7 + ","+p11 + ","
+ p6 + "," + p4 + "," + p12 + "," + p3 + "," + p13 + " ni" + p9 + ". De uel e las palab as en el
siguien e o ma o JSON: n{ n "p1 ": " ", n "p15 ": " "}"
}
)
112
Ilus ación 7.13 O den de los p omp s pa a gene a La Úl ima Cadena
En es e able o conc e o, la p ime a palab a en gene a se en melancolía, de
mane a alea o ia. Pa iendo de es a, en el segundo p omp se gene an las palab as
nos algia y soledad y, pos e io men e, en el p omp 3 Cha GPT elaciona nos algia con
ecue do y soledad con aislamien o. En el cua o p omp se gene an memo ia
( elacionada con ecue do) y sepa ación ( elacionada con aislamien o). Asimismo, en
el siguien e p omp se añade al panel da o, a pa i de memo ia y di o cio a pa i de
sepa ación. Con el p omp núme o 6, en elación con da o se de uel e la palab a in o
y en elación con di o cio la palab a cus odia. El panel se e mina con las palab as ed
y conexión po un lado y u ela y p o ección po o o, siguiendo el p oceso mencionado.
113
114
Ilus ación 7.14 Secuencia de gene ación del panel de La Úl ima Cadena según el o den de los p omp s
7.1.4 In oduci palab a en Palab as Encadenadas
Es e p omp ue más ácil y ápido de elabo a , pues o que simplemen e se enía
que pedi al Cha GPT una palab a elacionada a un ema en conc e o del que enía
mínimo la p ime a le a y la longi ud. Pa a da le luidez al juego se pidió ambién una
explicación de cómo se elaciona la pala a supues a con el ema. El p omp quedó
como se mues a en la igu a.
115
Figu a 7.22 P omp inal in oduci palab a en Palab as Encadenadas
Al p oba el p omp en el juego, la IA suele ace a , pe o sob e odo da espues as
bien azonadas.
Ilus ación 7.15 Ejemplo espues a p omp al in oduci palab a en Palab as Encadenadas
messages=[{
" ole": "sys em",
"con en ": "Debes esponde palab as elacionadas a un ema que e indica el usua io. Debes
elaciona u espues a a es e ema obliga o iamen e." },
{" ole": "use ",
"con en ": "Dame una palab a que se elacione con el ema " + ema + " y que empiece po " +
p ime a_le a + "-. La palab a debe ene " + s (n_le as) + " le as en español. De uél eme
un JSON con la siguien e es uc u a: n { n "palab a ": " ", n "explicacion ": " " n} nLa
explicación debe se muy b e e." }],
empe a u e=1.2, max_ okens=100,
122
o a, La Úl ima Cadena y La Úl ima Palab a. Se mues a un ejemplo de da ase
in oducido en la siguien e igu a.
Figu a 7.26 Ejemplo da ase pe sonalizado
Se in odujo en la página de OpenAI el da ase y los p ime os in en os ue on allos
po cues iones de o ma o. Como no se daba mucho de alle se u o que in oduci los
ejemplos en un sc ip de código lib e que de ec aba e o es po o ma o. Finalmen e,
después de cua o in en os el o ma o ue el adecuado y se p ocedió al en enamien o
del modelo. El en enamien o no lle ó mucho iempo y se pudo ob ene el modelo
pe sonalizado en unos seis minu os. Ac o seguido se in eg ó en la aplicación del mismo
modo que se in eg ó la API no en enada y se lle a on a cabo p uebas pa a e si el
en enamien o p opo ciona esul ados óp imos o si se enía que lle a a cabo o a
i e ación.
{"messages": [{" ole": "use ", "con en ": "Gene a una lis a de 7 palab a en español que es e elacionadas
únicamen e con su palab a an e io y su palab a siguien e, sin epe iciones. Explicame las elaciones."},
{" ole": "assis an ", "con en ": "VILLADIEGO, TOMAR, ALGO, CONTIGO, CEBOLLA, CAPAS, ATMOSFERA.
Aquí ienes el po qué de las elaciones. VILLADIEGO y TOMAR po la exp esión < oma las de illadiego>
que signi ica i se inespe adamen e. TOMAR y ALGO po la exp esión < i a oma algo>. ALGO y CONTIGO
po la canción de Chico No a o. CONTIGO y CEBOLLA po que la exp esión <con igo pan y cebolla> que es
una exp esión que se u iliza pa a deci que as a es a con una pe sona en las buenas y en las malas .
CEBOLLA y CAPAS haciendo e e encia a las múl iples capas de la cebolla. CAPAS y ATMOSFERA po que la
a mós e a se di ide en capas"}]}
123
Ilus ación 7.21 Subida modelo ine- uning
Las p uebas se ealiza on con el mejo p omp , sin emba go, a pesa de que la
di icul ad aumen ó y no se decían siemp e las mismas cosas, algunas elaciones no
enían sen ido. Si que seguía el modelo de las espues as p opo cionadas, sin emba go,
en g an pa e de los casos las espues as p opo cionadas e an elaciones en las que se
in en aba, po ejemplo, í ulos de películas o lib os.
Pa a comp oba el po qué de las elaciones, se lle a on a cabo di e sas p uebas
en el playg ound. Una de las espues as ob enidas se mues a en la ilus ación 7.20. Se
puede obse a que la g an pa e de las cosas que se dicen no ienen sen ido y las
elaciones son in en adas.
Ilus ación 7.22 Ejemplo espues a modelo ine- uning
124
En los able os gene ados, se hacía en nume osas ocasiones e e encia a los
ejemplos p opo cionados en los da ase . Se mues an a con inuación di e sos able os
gene ados usando el modelo en enado.
Ilus ación 7.23 Ejemplos able os gene ados con el modelo ine uning
Po odos los allos y la incohe encia se conside ó que el modelo en enado no
podía se usado y que necesi ada o a i e ación. Sin emba go, como se iden i icó que
las espues as se alejaban mucho de lo espe ado se conside ó mejo opción in en a
mejo a los p omp s con los modelos p opios de OpenAI, dejando de las elaciones
cul u ales del p og ama y quedando una nue a i e ación como abajo u u o.
125
Capí ulo 8 - Plan de negocio
Una ez inalizada la implemen ación inicial de la aplicación web, es
ecomendable elabo a un plan de negocio que e alúe la iabilidad de la explo ación
come cial del juego desa ollado.
8.1 Desc ipción del p oduc o (ReAIcción en Cadena)
ReAIcción en Cadena es una inno ado a aplicación web inspi ada en el popula
concu so de ele isión Reacción en Cadena. Es a e sión digi al se ha diseñado pa a
o ece una expe iencia de juego única, donde los usua ios pueden conec a palab as
elacionadas pa a o ma cadenas lógicas. Todo es o se desa olla en un en o no
in e ac i o y se puede accede desde cualquie o denado con acceso a In e ne .
Ca ac e ís icas del p oduc o
• Gene ación Au omá ica de Cadenas: La ca ac e ís ica más des acada de
ReAIcción en Cadena es el uso de un LLM pa a gene a de o ma
au omá ica las cadenas de palab as. De es a o ma se asegu a que cada
expe iencia de juego sea única.
• Modelo eemium: En un u u o, se á necesa io implemen a un plan de
susc ipciones pa a ga an iza la iabilidad del p oduc o, ya que cada
pa ida consume una se ie de okens al es a conec ado a una API, lo que
conlle a un gas o inancie o. Como esul ado, la e sión g a ui a, con a á
con anuncios, un núme o limi ado de pa idas po día, y u iliza á la API de
Cha -GPT 4o mini. La e sión p emium, po o o lado, es a á lib e de
es icciones, se á sin anuncios y es a á conec ada a la úl ima e sión de
Cha -GPT.
• Di e en es modos de juego: ReAIcción en Cadena o ece es modos de
juego di e en es que pe mi en a los usua ios dis u a de la expe iencia en
dis in os o ma os: mul ijugado (Jugado s Jugado ), un solo jugado
126
(Jugado s IA), e incluso la opción de obse a una pa ida sin pa icipa
(IA s IA).
• Accesibilidad y usabilidad: La aplicación es á diseñada pa a se u ilizada
en o denado es, ap o echando el mayo amaño de pan alla y la
capacidad de p ocesamien o que es os disposi i os o ecen. Es o pe mi e
una in e az más de allada, acili ando la in e acción con el juego y
mejo ando la expe iencia del usua io.
8.2 Misión, isión y obje i os
Misión:
Fusiona el en e enimien o y la IA pa a c ea juegos de palab as que desa ían la
men e y omen an el ap endizaje lingüís ico.
Visión:
Se e e en es en la c eación de expe iencias de juego inno ado as que in eg en
IA y lenguaje, inspi ando a jugado es de odo el mundo a explo a nue as on e as del
conocimien o y el en e enimien o.
Obje i os:
• Lanzamien o exi oso: Comple a y lanza la e sión pa a o denado es de
ReAIcción en Cadena en un plazo de seis meses, alcanzando al menos
10.000 usua ios ac i os en los p ime os es meses as el lanzamien o.
• Mejo a con inua: Recopila y analiza el eedback de los usua ios du an e
los p ime os meses pa a implemen a mejo as an o en la in e az y como
en la expe iencia de usua io, con el obje i o de aumen a la e ención y
sa is acción de los jugado es.
• Desa ollo mul ipla a o ma: Comenza el desa ollo de la e sión mó il de
la aplicación den o del p ime año, pa a expandi el alcance del juego a
nue as pla a o mas y públicos.
127
• C eación de comunidad: Es ablece una comunidad de jugado es a
a és de edes sociales pa a ene 15.000 miemb os ac i os en la
comunidad en el p ime año.
• Mone ización sos enible: Desa olla e implemen a un modelo de
mone ización sos enible, como susc ipciones p emium, asegu ando la
en abilidad del p oyec o a la go plazo.
• Sos enibilidad medioambien al: Log a una aplicación web lo más
sos enible posible con el medio ambien e, median e la op imización de
código y uso de se ido es ecológicos.
8.3 Análisis del en o no
El modelo PESTEL, que incluye los elemen os polí icos, económicos, sociales,
ecnológicos, ecológicos y legales, se u iliza á pa a examina el en o no en el que se
desa olla á y lanza á ReAIcción en Cadena.
8.3.1 Análisis polí ico
El desa ollo de la aplicación se lle a a cabo en un en o no polí ico es able, an o
en España como en la Unión Eu opea (UE).
Po su pa e, la UE se ca ac e iza po una ue e egulación y con ol sob e las
ecnologías eme gen es, donde es á incluida la IA. La UE ha lide ado un ma co
egulado sólido pa a la IA con el in de p o ege a sus ciudadanos y asegu a que las
inno aciones ecnológicas espe en alo es eu opeos, como la segu idad y la
p i acidad. La Ley de IA, que en ó en igo el 1 de agos o de 2024, ue p omulgada en
es e con ex o (Comisión Eu opea, 2024).
8.3.2 Análisis económico
Tan o los desa íos como las opo unidades pa a el lanzamien o de la aplicación
se p esen an en el con ex o económico global y español. La economía digi al sigue
c eciendo, y el sec o de aplicaciones mó iles y web con inúa expandiéndose, con un
aumen o en la demanda de en e enimien o digi al in e ac i o. Sin emba go, la
128
ince idumb e económica y la in lación pueden a ec a el pode adquisi i o de los
usua ios, lo que pod ía limi a su disposición a paga po susc ipciones o aplicaciones.
Pa a a ae a un público amplio, el modelo de negocio debe con empla opciones
como el modelo eemium o la mone ización median e publicidad.
8.3.3 Análisis social
Un ac o social c ucial es la ansición de los hábi os de consumo de los medios
adicionales hacia pla a o mas digi ales y mó iles. La adopción de aplicaciones web y
mó iles como p incipales uen es de en e enimien o se ha acele ado en los úl imos
años. Los usua ios ac uales ap ecian la in e ac i idad y la pe sonalización,
ca ac e ís icas que un juego como ReAIcción en Cadena, impulsado po un LLM, puede
b inda . La capacidad de p oduci con enido basado en la IA puede inc emen a el
a ac i o del juego, especialmen e en audiencias jó enes y ecnológicamen e
al abe izadas.
8.3.4 Análisis ecnológico
El desa ollo de es a aplicación depende, especialmen e, del sec o ecnológico.
La c eación de expe iencias de usua io ex emadamen e in e ac i as y pe sonalizadas
es posible g acias a la e olución de la IA y, en pa icula , de los LLMs. Pa a el ipo de
juego que se plan ea, los LLMs han demos ado una habilidad asomb osa pa a p oduci
con enido cohe en e y ele an e en iempo eal. No obs an e, se á c ucial c ea una
in aes uc u a ecnológica sólida capaz de maneja simul áneamen e un g an núme o
de usua ios y sopo a la c eación de las cadenas de palab as.
Po o o lado, dado el po encial acceso a da os sensibles y el uso in ensi o de la
IA, la p i acidad y la segu idad de los da os se án aspec os c uciales. Se á esencial
cumpli con el RGPD (Reglamen o Gene al de P o ección de Da os), así como
implemen a medidas a anzadas de cibe segu idad.
129
8.3.5 Análisis ecológico
El uso de ecnologías so is icadas, como los LLMs, implica una g an can idad de
ecu sos compu acionales, lo que esul a en una huella de ca bono signi ica i a. Las
emp esas ecnológicas se en cada ez más obligadas a educi su impac o en el medio
ambien e. Pa a ajus a el p oyec o a las expec a i as de sos enibilidad ac uales, se
eque i án es a egias como la op imización del código pa a disminui el consumo de
ene gía y la selección de p o eedo es de se icios en la nube con polí icas de
sos enibilidad.
8.3.6 Análisis legal
El desa ollo de una aplicación como ReAIcción en Cadena, que se basa en un
o ma o de juego ele isi o, implica conside aciones legales signi ica i as. Pa a hace
uso come cial del concep o del juego, es esencial adqui i las licencias o los de echos
de p opiedad in elec ual necesa ios. Es o incluye la ma ca, el o ma o y cualquie o a
p opiedad in elec ual p o egida. La aplicación pod ía en en a se a p oblemas legales
po in acción de p opiedad in elec ual si no ecibe los pe misos adecuados.
Además, cumpli con las egulaciones sob e la IA es undamen al, ga an izando
que el uso del LLM sea anspa en e pa a los usua ios y que se espe en sus de echos en
cuan o a la p o ección de da os. Es impo an e des aca que, según la egulación
ac ual, es a aplicación pe enece a la ca ego ía de iesgo mínimo o nulo, lo que
signi ica que su uso no p esen a incon enien es egula o ios o legales ac ualmen e
(Comisión Eu opea, 2024).
130
8.4 DAFO
8.4.1 Debilidades
• Dependencia inicial de la e sión pa a o denado : El desa ollo exclusi o
inicial del juego pa a o denado es limi a su alcance y accesibilidad,
excluyendo a una g an pa e de usua ios po enciales que p e ie en juga
en disposi i os mó iles.
• Necesidad de ob ene licencias y pe misos: El desa ollo del juego, al es a
inspi ado en un o ma o de ele isión exis en e, equie e ob ene y
Ilus ación 8.1 DAFO
131
man ene licencias y pe misos adecuados, lo que puede se cos oso y
complejo.
• Al o cos e inicial: Los cos os iniciales asociados con el uso de la ecnología
de la IA, la adquisición de de echos y licencias, y la c eación de una
in e az ica y accesible pa a o denado es ep esen an una in e sión
signi ica i a que puede a ec a la en abilidad a co o plazo.
8.4.2 Amenazas
• Compe encia con o os juegos: En un me cado sa u ado, la aplicación
en en a la compe encia de o as aplicaciones educa i as y juegos de
palab as; es o pod ía di icul a la cap ación y e ención de usua ios.
• Cambios en las egulaciones de p opiedad in elec ual: El u u o del juego
pod ía e se a ec ado po los cambios en las egulaciones de p opiedad
in elec ual y el uso de la IA en la c eación de con enido.
• Dependencia de la acep ación del me cado: El éxi o de la aplicación
depende en g an medida de la acep ación del me cado, especialmen e
en cuan o a la adopción de nue as ecnologías como la IA en juegos, lo
que implica un iesgo si los usua ios no adop an la pla a o ma como se
espe a.
8.4.3 Fo alezas
• Inno ación po uso de IA: La aplicación se di e encia en el me cado al
u iliza un LLM pa a gene a cadenas de palab as de o ma dinámica y
única. Es a inno ación no solo mejo a la expe iencia del usua io, sino que
ambién asegu a que el con enido del juego sea siemp e nue o y
desa ian e.
• Conexión con un p og ama popula : Al es a basada en el p og ama de
ele isión Reacción en Cadena, la aplicación ap o echa el