20 Questions Game on Google Assistant, Telegram, and Whatsapp

Resumen

Implementación del juego 20 preguntas en Google Assitant, Telegram y WhatsApp mediante DialogFlow, el backend sera Go y Firestore. En el cual el objetivo es preguntar ((sı́)),((no)) y ((tal vez)) en español sobre personas famosas.

Justificación

El juego utiliza principalmente árboles, base de datos para personalizar los resultados y una búsqueda de grafos para encontrar datos no previos. Además, el autor sabe como implementar aplicaciones en dichas plataformas como puede ver en la página web [6], chatbot en WhatsApp [7] y en GitHub [8].

Estado del arte

Akinator, el juego popular y máximo exponente implementado en Android, Alexa y la mayorı́a de las plataformas [1], entra en la categorı́a del juego 20 preguntas. Otras investigaciones usan aprendizaje por refuerzo para mejorar su desempeño [4] y sistemas de recomendación [5], logrando reducir la cantidad de preguntas hasta 10. Siendo la principal diferencia que el proyecto funcionara correctamente en Google Assistant, tema que Akinator no resuelve del todo.

Objetivo General

Desplegar el juego de 20 preguntas a las plataformas más populares de chat, con alta escalabilidad ante las lecturas.

Objetivos especı́ficos

Crear una prueba de concepto en un ambiente local mediante consola y lectura de archivos para entender el algoritmo central. Después, conectar el software a una base de datos -Firestore- para escalar el número de preguntas, servir la aplicación a una plataforma de lenguaje natural -Dialogflow- mediante HTTP usando Cloud Functions y finalmente, mediante los conectores que ofrezca el proveedor se despliega a Google Assitant, Telegram y WhatsApp, cuando pasemos el proceso de verificación y los beta testers.

Hipótesis

Se esperan mas lecturas que escrituras, debido a que es un juego con poco guardado de información por parte del usuario, 3 beta testers: los dos estudiantes participantes y la profesora. El proceso de verificación dura 3 semanas máximo y puede ser en paralelo. El proceso de migrar de local a la nube deberı́a ser trivial. Se espera no gastar dinero. Esperamos el registro de 100 usuarios después de servir la aplicación, por compartir en redes sociales. La aplicación debe cumplir el triangulo de los proyectos: tiempo, dinero y alcance para lograr calidad.

Metodologı́a

Como metodologı́a ágil usaremos Scrum+XP, para el análisis y diseño usaremos UML, para la asignación de tareas se usara Trello, documentación en Notion, mediante TDD implementaremos el resto del desarrollo. La validación con beta testers será el primero de mayo de 2021. El sistema operativo en local sera Ubuntu 20.04. El lenguaje de programación, Go. Despliegue sobre Google Cloud Functions para servir HTTP. Dialogflow como plataforma de lenguaje natural. Firestore como base de datos.

Glosario

20 preguntas. Juego popular que mediante preguntas cuyas respuestas son ((sı́)),((no)) y ((tal vez)), se intenta adivina lo que esta pensando.

Scrum+XP. Scrum como marco de trabajo para productos y XP como una implementación de las buenas practicas en el desarrollo de software. Plataforma de lenguaje natural. Plataforma usada para diseñar e integrar conversaciones naturales con inteligencia artificial en móviles, web y otros dispositivos.

Beta testers. Primeros usuarios sobre versiones inestables.

TDD. Desarrollo guiado por pruebas.

Google Cloud Functions. Funciones en la nube sin la necesidad de admnistrar un servidor.

Avances

Para ver el progreso actual Github

  1. Version en Consola usando un archivo en la nube para Windows (64 y 32 bits), MacOs (64 bits), Linux (64 y 32 bits). V1.0

1.1 Mejora en la experiencia de usuario. v1.1

20-Questions-Game
A Go repl by CarlosSanchez14
https://replit.com/@CarlosSanchez14/20-Questions-Game

2 Lanzamiento de infraestructura en Telegram, Whatsapp, Web, +1 443-266-8753 activacion con 20QuestionsGame.

https://towering-calico-pocket.glitch.me/

3 Webhook

4 Firestore

5 Google Assistant (beta testers)

6 Custom descriptions and images, ...

7 Lanzamiento de infraestructura de correo electronico, sms y Dialogflow phone.

8 User data and better experience

9 Sentimental analysis

PDF

Referencias

[1] Walsorth, Mansfield Tracy. Twenty questions: a short treatise on the game, Holt, 1882.

[2] Elokence. 2021. Akinator.com. Retrieved February 16, 2021 from https://en.akinator.com/

[3] Maslow, A.H. (1943). . A theory of human motivation”. Psychological Review. 50 (4): 370–96. CiteSeerX 10.1.1.334.7586. doi:10.1037/h0054346 – via psychclassics.yorku.ca.

[4] Huang Hu, Xianchao Wu, Bingfeng Luo, Chongyang Tao, Can Xu, Wei Wu, & Zhan Chen. (2019). Playing 20 Question Game with Policy-Based Reinforcement Learning.

[5] Alvin Dey and Harsh Kumar Jain and Vikash Kumar Pandey and Tanmoy Chakraborty (2019). All It Takes is 20 Questions!: A Knowledge Graph Based ApproachCoRR, abs/1911.05161.

[6] Arsus. 2020. Arsus - By Carlos Sanchez. Arsus. Retrieved February 16, 2021 from https://sanchezcarlosjr.com/

[7] 2021. Share on WhatsApp. WhatsApp.com. Retrieved https://api.whatsapp.com/send?phone=+1 %20(256) %20387-7509/

[8] sanchezcarlosjr. 2021. sanchezcarlosjr/arsus. https://github.com/sanchezcarlosjr/arsus

[9] https://courses.cs.washington.edu/courses/cse143/20sp/assessments/20-questions/