rctatman / personal_website_bot

A simple bot to answer questions on my personal website. (In development)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

personal_website_bot

A simple bot to answer questions on my personal website. (In development)

Frontend deployment options

Discussed & prioritized on stream March 19, 2021.

Rasa X + Digital ocean deploy

  • create a droplet (tutorial vid: https://www.youtube.com/watch?v=E9-s_49pw_8&ab_channel=Rasa)
  • install Rasa X
  • while installing, add notice that convos will be seen publically during CDD on the livestream
  • create rasa x instance
  • add our assistant to our server via github integration
  • quick test
  • create an image of our action server & add to dockerhub (using manual install)
  • add action server to our rasa x instance
  • added database to our action server image
  • update action server image w/ new version of database
  • TODO:
    • NLU insights
    • share bot & get user data & do CDD

possibilities for first deployment

  • 1st: Rasa X (server, digital ocean?): share using chatbot sharing feature for early CDD & link where appropraite
    • pro: good proof of concpet, can use for inital softlaunch/early CDD, link from my website, need to set up Rasa X anyway for CDD/annotation/model management
    • con: kicks the can on the front end integration problem, already done it on livestream (double dipping :P)
  • 2nd: twitter - pref. is for convos in the dms, which is definintely possible
    • pro: a reasonable place to put the assistant, meeting people who ask ?s where they are, needing an account might help prevent abuse
    • con: people need to have a Twitter account (but can add other channels that don't need an account later), need to handle twitter API & TOS; not sure how bots are handleded by that
  • 3rd: Website: host on a new, v. simple webpage
    • pro: good proof of concpet, can use for inital softlaunch/early CDD, link from my website, show integration with front end in simple html
    • con: kicks the can on the front end integration problem, why build myself when Rasa X will already do this?
  • 4th: Website: Add jekyll plugin (?) to my existing website
    • pro: can use w/ existing website, lots of people want to do something similar (but not necessarily w/ jekyll), if i can find a plugin i don't have to do any front end work myself (besides maybe adjusting color)
    • con: haven't found a suitable plug in yet, may spend a lot of time searching only the find there's nothing that I can use

not happening

  • Website: Add webchat as raw html to my current website (no idea where that would go??)
    • don't know jekyll well enough & don't really want to spend a bunch of time learning
  • Website: rebuild website from scratch in a framework I know better (blogdown?) so I add a chat window
    • not an efficent use of time
  • Website: shiny somehow + rserver??? will take a lot of custom work but could be useful to other people as well
    • would take a lot of futzing, maybe in the future, haven't found anything similar
  • discord - would have to make one... can provide a widget w/ htm/json widget?
    • don't have an existing discord, widget integration is the same as the first website option above
  • slack - contributor slack?
    • rasa contribs probably don't need answers to the questions my assistant can answer

backlog

  • TODONE: how to add image to docker-compose (rather than helm)
    • /etc/rasa add image path (on dockerhub) to docker-compose or docker-compose.override.yaml
    • to check running dockers = docker ps
    • to check logs = docker logs [continer id, get from ps list]
  • TODO: figure out where your sqlite database is
    • to do: host database in different image?
    • from chat (ty!): app needs DNS translation (add translation in etc/hosts as localhost). copy sentence in dockerfile when you build the image has to moe the db file inside the image
    • from chat: digital ocena managed database?
  • TODO: add error message if database file not found
  • TODO: update rasa in docker compose
  • TODO: write doc strings for our Python functions
  • TODO: add chitchat to handle polite turns (thank you, goodbye, etc.)
  • TODO: a way to handle when the bot has no response

About

A simple bot to answer questions on my personal website. (In development)

License:Apache License 2.0


Languages

Language:Jupyter Notebook 54.8%Language:Python 41.7%Language:Dockerfile 3.5%