本文作者:Eric
作者 Github : https://github.com/Ratherman
自由團隊將從0到1 手把手教各位讀者學會(1)Python基礎語法、(2)Python Web 網頁開發框架 – Django 、(3)Python網頁爬蟲 – 周易解夢網、(4)Tensorflow AI語言模型基礎與訓練 – LSTM、(5)實際部屬AI解夢模型到Web框架上。
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:56Django 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
接著,會看到類似以下的畫面。
我們可以看到相當多的資訊,像是其中的這兩個
Session Expires: 告訴我們,我們還能夠使用以下的 public ip 多久,最長可以使用 8 hr。
Forwarding: 這邊 Ngrok 會自動產生一組是 public ip 的亂碼給我們,以上圖的例子而言,我得到的就是 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 出現
將可以看到以下畫面
我們還可以使用 Public IP 看到 Django Chatterbot 出現
這邊大家要用自己得到的 Public IP
將可以看到以下畫面
當然除了畫面之後,大家也可以和 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/
文章同步發布於:第十二屆 IT 挑戰賽部落格