---
# System prepended metadata

title: Model Deployment
tags: [' Model Deployment', ' documentation', viya]

---

---
title: Model Deployment
tags: viya, documentation, Model Deployment
description: The document of the Model Deployment demo application.
---
# Model Deployment

這篇文件主要在說明SAS Viya平台上建立模型部署的功能，模型建立完成後，透過Model Manager進行註冊、發布，進一步到Client端可以直接透過網頁呼叫回傳Champion model預測結果的應用。

 

<h3> 1. Install python3.6 </h3>

在Linux系統中正常來說都是用 **apt-get** 進行安裝
```
sudo apt-get update
sudo apt-get install python3.6
````

不過如果是用Amazon Linux (CentOS-based), 要用 **yum** 或直接下載再安裝
```shell
# 安裝相關的依賴檔
yum install gcc
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
yum install sqlite-devel
sudo yum install bzip2-devel

# 下載python 3.6.4
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
tar -xJf Python-3.6.4.tar.xz
cd Python-3.6.4

# 安裝
./configure --with-ssl
make
sudo make install
```



<h3> 2. 安裝 jupyter notebook </h3>

如果以下載好python jupyter notebook可以跳過這一步

```shell
python3 -m pip install --upgrade pip
python3 -m pip install jupyter
```

<h3> 3. 安裝會使用到的套件 </h3>

```shell
pip3 install pandas --user
pip3 install numpy --user
pip3 install flask --user
pip3 install flask-socketio --user
pip3 install logging --user
pip3 install datetime --user
pip3 install traceback --user
pip3 install time --user
pip3 install requests --user
pip3 install subprocess --user
pip3 install json --user
```

## :memo: 準備文件 
### 所需檔案

請確認是否具備以下檔案

```
- app/
    - viyaAPI/
        - get_champion.py
        - get_token.py
    - static/
        - css/
        - js/
    - templates/
        - index_0520.html
        - predictResult.html
        - backstage.html
    - deploymentDemo.py
```
- **viyaAPI/** 放置串接API時所需要的程式碼
- **static/** 網頁需要的一些圖檔以及 css, javascript等檔案
- **templates/** 網頁的html檔
- **get_token.py** 取得SAS Viya的伺服器toke，以進行後續溝通
- **get_champion.py** 從Viya中取得冠軍模型ID，已次模型進行預測動作
- **deploymentDemo.py** 主要的程式，開啟網頁伺服器，並會根據client的需求串接Viya，回傳預測結果頁面


### 操作方式

程式執行方法:

```
cd hmeq_deployment/app/
python3 deploymentDemo.py

# run in background
nohup python3 deploymentDemo.py &
```

在 **get_token.py** 以及 **get_champion.py** 的程式上方都有config可以調整，包括 Viya URL, user_id, user_password 和 project_ID。

Project_ID 可以透過以下API 查詢:

```curl
curl --location --request GET 'http://{Viya IP}/modelRepository/projects' \
--header 'Accept: application/vnd.sas.collection+json' \
--header 'Authorization: Bearer {Access Token}'
```



<h3>Step 1: 輸入網址</h3>

在瀏覽器中打開 http://<ip>:5000/
![](https://i.imgur.com/p02cfOa.jpg)

<h3>Step 2: 輸入數值</h3>

在此畫面中使用者可以透過滾軸的拖拉、選單的點選將消費者的資料輸入
輸入完後即可點選**進行預測**按鈕，系統便會將所輸入的數值上傳到viya伺服器上的冠軍模型中，進行預測動作。

<h3>Step 3: 得到預測結果 </h3>

![](https://i.imgur.com/EEjtUOk.jpg)

可以看到原本的輸入值以及最終的預測結果!!

