--- title: KHTN - recommendation system v0.1.0 tags: KHTN khtn recommendation system description: --- SRS - Recommendation system v0.1.0 === ## External Interface Requirements > Updated on 2020/07/08 > Version 0.1.0 ## - Base on functionality and system requirement we can devide our system into 3 sub systems. 1. Feature extraction pipeline 2. Training and serving ML model 3. Recommendation API ### Sub systems #### 1. Feature extraction pipeline - Take responsiblity to collect data from POPS data sources (cloud storage, MongoDB), aggregate data to create features for traning step. - output: data set ##### Hardware Interfaces - Using dataflow as runner for apache beam - Fully managed data processing service - Automated provisioning and management of processing resources - Horizontal autoscaling of worker resources to maximize resource utilization - Reliable and consistent exactly-once processing - Storage: GCP cloud storage ##### Software Interfaces - Python: 3.7 - Apache Beam:2.22.0 #### 2. Training and Serving ML model - When data set is ready for training, we trigger AI Platform start to training model - Run validation on new model and log results for analytics - Generate TF serving - output: TF model, logs, metrics ##### Hardware Interfaces - GCP AI Platform (ML Engine) - Storage: GCP cloud storage, Bigquery ##### Software Interfaces - Python: 3.7 - Runtime version: 2.1 - Tensorflow 2 #### 3. Recommendation API - Rest API server to serve request from POPS server ##### Hardware Interfaces - Google App Engine ##### Software Interfaces - Python: 3.7 - Flask: 1.1.2 ##### Communications Interface - gRPC client: send request to Tensorflow serving - Rest API: end point for client to query recommendation result