---
# System prepended metadata

title: KHTN - recommendation system v0.1.0
tags: [KHTN khtn recommendation system]

---

---
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
