大家好,我們是 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放到網路平台上,供大家使用。
Ngrok 是一個我們可以用來讓原本只有在 localhost 跑的服務,曝光在 public 上,讓網路使用者們能透過 public IP 來做使用。想要使用 Ngrok 的服務就需要到 Ngrok Download Page 當中下載符合電腦OS的檔案(見下圖)
我們下載下來的是一個壓縮檔,所以大家可以選擇一個適當的解壓縮路徑,解壓縮之後就可以看到如下圖顯示的執行檔(i.e. ngrok.exe)
接著,雙擊滑鼠左鍵開啟此檔案,就可以看到一個命令提示字元視窗開啟了。
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
接著,會看到類似以下的畫面。
我們可以看到相當多的資訊,像是其中的這兩個
http://d15cb62fd5b0.ngrok.io
,現在這個就是可以用來連結到 Django Chatterbot Project 的 Public IP 了。注意,此 Ngork 需要持續開啟,才能持續 expose 我們的服務。
在得到 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://
等字眼。
儲存settings.py的編輯之後,執行下方 Command,我們要將 server run 起來了。
python manage.py runserver
除了可以用我們熟識的網址,看到 Djagno Chatterbot 出現
當然除了畫面之後,大家也可以和 Django Chatterbot 聊聊天喔! 若是已經聊完之後,可以回到 Ngrok 命令提示字元,相信大家應該看到不少 POST 給 /api/chatterbot/
並回傳 200 OK
的訊息(見下圖),其實每一次的POST 就表示每次的聊天都會觸發 POST Request 給 Server API。
接著大家就可以把連結傳給親朋好友,讓他們也來和 Django Chatterbot 聊聊天吧!
我們今天利用 Ngrok 成功的將服務放在 Public IP 上運作,只有修該了一行 settings.pu 的內容就可以將服務部屬上網路世界,相當的方便。在明天,我們會介紹 Google Colab 這個有別於用自己電腦跑程式的雲端環境,使用 Google Colab 我們可以在不使用自己的電腦資源的情況下,一樣也讓服務正常運作!
自由團隊 官方網站: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知識?敬請鎖定自由團隊的頻道!)