--- 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) 可以看到原本的輸入值以及最終的預測結果!!