WEEK ONE:
After submitting the project proposal for the Pocket Pal app, I started working towards gaining the skills necessary to be able to deploy the chatbot. The Udemy Course I purchased was geared towards using the Seq2Seq model within Tensorflow to generate language responses to human conversation, and I installed the required packages, but the version of Tensorflow on the course had been deprecated. I went through the code and executed it, looking for errors, and alternative code. It seems more productive to research more updated and refined types of models that are now being used for conversational robots.
The corpus that I am using is the Cornell Movie dialog collection, and this dataset has been used for other chatbot projects. One of the things I was considering was how to expose the conversational chatbot to the Internet, so I have looked into how to create an API so that calls can be made from mobile clients to the robot.
What I've discovered: Seq2Seq has been explained as a poor choice by some developers and Transformer models have been recommended as a better option, and it seems the more contemporary method of doing things. I'm going to ditch the Seq2Seq model, and instead implement the chatbot in the Transformer model, and package it up in Flask as an API. I'll put it in a Docker container (my standard choice) and then put it on the free tier in AWS, as this is a prototype and once it scales I think I will flip it to Azure.
I know I've looked at a few different cross platform mobile build examples, but for speed I'm going to use the pre-built UX and just deploy this app to get it off the ground. An MVP seems a good way to test this idea, and add the revenue generation bar to it, so it's no loss to me to get this thing deployed.
I know the course for uni I am doing is focused on Android Kotlin, but because I also want to deploy to iOS, using React Native (have had some prior experience with this) seems a good way to expedite this across both platforms. There is a nice design, Argon, that has a really nice interface that is already streamlined in terms of its design, so why reinvent the wheel. Somebody else has done a great job of UI design, so I am going to roll with that, and put everything under the hood.