scieee Open visual document viewer

Reacción en Cadena LLM

Elena Basca, Madalina; Morillo Leal, Cristina; Pareja Arriaga, Alejandro

Abstract

En los últimos años, los Large Language Models (LLMs) han experimentado una fuerte expansión, especialmente en su aplicación a chatbots como Chat-GPT. A lo largo de este proyecto, se pretende explorar otra aplicación de los LLMs, específicamente su integración en un juego de palabras inspirado en las distintas fases del programa de televisión Reacción en Cadena.Gracias a su integración con el LLM, el sistema estará capacitado para generar tableros de palabras en tiempo real, lo que permitirá que cada usuario disfrute de una experiencia completamente única cada vez que juegue. Los jugadores podrán desafiar tanto a otra persona como a una Inteligencia Artificial (IA), e incluso tendrán la posibilidad de observar cómo dos de ellas compiten entre sí. Todo esto gracias a los diferentes modos de juego con los que cuenta la plataforma. De esta manera, el juego crea un espacio que combina competitividad y aprendizaje, ofreciendo una experiencia tanto entretenida y desafiante como educativa para los usuarios.

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