Uml diagram predictive twitter backend

Title: PREDICTIVE TWITTER API v1
participant front end
participant application.py
participant routes.py
participant main.py
participant trained\nML models
participant interest affinities\n+ word clouds dataset
participant Google NLP API
participant Crimson\nHexagon API
participant Twitter API
Note over application.py: starts app\nand listens\nto front end
Note over interest affinities\n+ word clouds dataset: has historical lists\nand word clouds over\n the past year
front end
application.py ->> routes.py: passes GET request
Note over routes.py: gets 1. content\nand 2.timestamp
routes.py -> main.py: process_tweet()
Note over main.py: load ML model
Note over main.py: preprocess json to\ngenerate model input
main.py -> trained\nML models: predict_from_row()
Note over trained\nML models: predict
trained\nML models -> main.py: sends back predictions\nfor Retweet Count, Reply Count\nPotential Impressions, and\nTotal Engagement
main.py
Note over Google NLP API: analyze sentiment and\nentities in content
Google NLP API
main.py -> interest affinities\n+ word clouds dataset: compares entities against\naffinities and word clouds list
interest affinities\n+ word clouds dataset -> main.py: gets matching keywords list (TO BE IMPROVED)
main.py
Note over Crimson\nHexagon API: process word affinities\nfor timestamp
Crimson\nHexagon API
main.py
Note over Crimson\nHexagon API: process twitter metrics
Crimson\nHexagon API
main.py
Twitter API
main.py
Note over Google NLP API: analyze entities\nin contents
Google NLP API
Note over main.py: calculate context as a % of\ncurrent tweet entities /\ntop retweeted post\n entities
main.py
Note over Crimson\nHexagon API: pokemon buzz\nmonitor processes\nactivity volume
Crimson\nHexagon API
Note over main.py: calculate best time as a %\nbased on historical records
main.py -> routes.py: returns json
routes.py
Note over front end: process json to\nshow results