iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
自我挑戰組

零基礎成為 AI 解夢大師秘笈系列 第 16

【零基礎成為 AI 解夢大師秘笈】Day16 - Ngrok

  • 分享至 

  • xImage
  •  

斜槓學習 – 零基礎成為 AI 解夢大師秘笈

前言

系列文章簡介

大家好,我們是 AI . FREE Team - 人工智慧自由團隊,這一次的鐵人賽,自由團隊將從0到1 手把手教各位讀者學會 (1)Python基礎語法 (2)Python Web 網頁開發框架 – Django (3)Python網頁爬蟲 – 周易解夢網 (4)Tensorflow AI語言模型基礎與訓練 – LSTM (5)實際部屬AI解夢模型到Web框架上。

為什麼技術要從零開始寫起

自由團隊的成立宗旨為開發AI/新科技的學習資源,提供各領域的學習者能夠跨域學習資料科學,並透過自主學習發展協槓職涯,結合智能應用到各式領域,無論是文、法、商、管、醫領域的朋友,都可以自由的學習AI技術。

資源

AI . FREE Team 讀者專屬福利 → Python Basics 免費學習資源

今日目標

利用 Ngrok 將 Django Chatterbot放到網路平台上,供大家使用。

教學開始

1 簡介 Ngrok 並下載

Ngrok 是一個我們可以用來讓原本只有在 localhost 跑的服務,曝光在 public 上,讓網路使用者們能透過 public IP 來做使用。想要使用 Ngrok 的服務就需要到 Ngrok Download Page 當中下載符合電腦OS的檔案(見下圖)https://ithelp.ithome.com.tw/upload/images/20201001/20130712GFqgkfq3jo.png

我們下載下來的是一個壓縮檔,所以大家可以選擇一個適當的解壓縮路徑,解壓縮之後就可以看到如下圖顯示的執行檔(i.e. ngrok.exe)
https://ithelp.ithome.com.tw/upload/images/20201001/20130712nwoxz3y612.png

接著,雙擊滑鼠左鍵開啟此檔案,就可以看到一個命令提示字元視窗開啟了。
https://ithelp.ithome.com.tw/upload/images/20201001/201307120MXD5kLFya.png

2 使用 Ngrok

Ngrok 命令提示字元開啟之後,我們就要告訴 Ngrok 我們自己 localhost 的哪一個 port(埠口)會對應到 Django Project Run 起來之後會用到的 port。到這邊相信大家心裡應該都有個底,通常我們沒有去修改預設的port 的話,那這邊的 port 就會是 8000。

其實我們有不少地方可以看到 port = 8000 這件事情,首先是在 Run Server 時,會看到一次(見下方)

...\PIPENV_ROOT\chatterbot_virtual_env\django_app>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
September 30, 2020 - 23:02:56
Django version 3.1.1, using settings 'example_app.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

在倒數第二行,就可以看到了;另外一個可以看到的是服務的網址(i.e. http://127.0.0.1:8000/) 這裡也可以看到 port = 8000 的事實。所以說,我會利用下面的 command 告知 Ngork 我們服務所對應到的 port 是什麼,請在 Ngrok 命令提示字元當中輸入

ngrok.exe http 8000

接著,會看到類似以下的畫面。
https://ithelp.ithome.com.tw/upload/images/20201001/20130712vrwg8sIAnk.png
我們可以看到相當多的資訊,像是其中的這兩個

  • Session Expires: 告訴我們,我們還能夠使用以下的 public ip 多久,最長可以使用 8 hr。
  • Forwarding: 這邊 Ngrok 會自動產生一組是 public ip 的亂碼給我們,以上圖的例子而言,我得到的就是 http://d15cb62fd5b0.ngrok.io,現在這個就是可以用來連結到 Django Chatterbot Project 的 Public IP 了。

注意,此 Ngork 需要持續開啟,才能持續 expose 我們的服務。

3 調整 settings.py

在得到 Public IP 之後,我們需要先告訴 Django Project 目前我們有多一組 Public IP,我們將要把Project放在這個特定的 IP 去 RUN。通常像是這類型的設定,我們都會到 settings.py 實作,所以我們打開 example_app/ settings.py,並調整原本在第16行的參數 ALLOWED_HOSTS = [],改為下方的樣子(大家要使用自己的到的 Public IP喔)

ALLOWED_HOSTS = ["127.0.0.1", "localhost", "d15cb62fd5b0.ngrok.io"]

Note: 不需要加入 http:// 等字眼。

4 Run Server

儲存settings.py的編輯之後,執行下方 Command,我們要將 server run 起來了。

python manage.py runserver

除了可以用我們熟識的網址,看到 Djagno Chatterbot 出現

當然除了畫面之後,大家也可以和 Django Chatterbot 聊聊天喔! 若是已經聊完之後,可以回到 Ngrok 命令提示字元,相信大家應該看到不少 POST 給 /api/chatterbot/ 並回傳 200 OK 的訊息(見下圖),其實每一次的POST 就表示每次的聊天都會觸發 POST Request 給 Server API。
https://ithelp.ithome.com.tw/upload/images/20201001/2013071203eXtjaV7Y.png

接著大家就可以把連結傳給親朋好友,讓他們也來和 Django Chatterbot 聊聊天吧!

5 邁向 AI 解夢大師 - 第十六天

我們今天利用 Ngrok 成功的將服務放在 Public IP 上運作,只有修該了一行 settings.pu 的內容就可以將服務部屬上網路世界,相當的方便。在明天,我們會介紹 Google Colab 這個有別於用自己電腦跑程式的雲端環境,使用 Google Colab 我們可以在不使用自己的電腦資源的情況下,一樣也讓服務正常運作!

6 參考連結

想更深入認識 AI . FREE Team?

自由團隊 官方網站:https://aifreeblog.herokuapp.com/
自由團隊 Github:https://github.com/AI-FREE-Team/
自由團隊 粉絲專頁:https://www.facebook.com/AI.Free.Team/
自由團隊 IG:https://www.instagram.com/aifreeteam/
自由團隊 Youtube:https://www.youtube.com/channel/UCjw6Kuw3kwM_il39NTBJVTg/

文章同步發布於:自由團隊部落格
(想看更多文章?學習更多AI知識?敬請鎖定自由團隊的頻道!)


上一篇
【零基礎成為 AI 解夢大師秘笈】Day15 - Django Chatterbot II
下一篇
【零基礎成為 AI 解夢大師秘笈】Day17 - Google Colab
系列文
零基礎成為 AI 解夢大師秘笈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言