內容簡介
人人可作卡米狗:從零打造自己的LINE聊天機器人
內容簡介
想知道風靡各大LINE群組的卡米狗是怎麼作出來的嗎?
想擁有屬於自己的LINE聊天機器人嗎?
這是一本入門書,它針對沒有任何資訊領域知識的讀者,提供了一個自學方案:「打造一個屬於自己的卡米狗」。本書從介紹聊天機器人的基礎觀念開始,逐步傳授所有相關知識,實現從無到有來打造一個屬於自己的聊天機器人!包含開發環境設置、網站架設、HTTP協定、Webhook、Line Messaging API等都將詳細介紹。
讀者需求
你至少需要有一台能上網的電腦,而且你懂得輸入中英文,你平時會使用Line傳送訊息,也會逛逛網頁。
讀完本書後
你會具備網站以及聊天機器人的基本觀念、了解HTTP協定,並且會架HTTP Server。
你會開始能看得懂工程師寫的技術文章。
你會知道遇到問題時要在Google輸入什麼關鍵字。
你會開始對資訊領域產生濃厚的學習興趣。
本書程式碼可至以下網址下載:
https://github.com/etrex/everybody-can-build-kamigo-demo
內容簡介
想知道風靡各大LINE群組的卡米狗是怎麼作出來的嗎?
想擁有屬於自己的LINE聊天機器人嗎?
這是一本入門書,它針對沒有任何資訊領域知識的讀者,提供了一個自學方案:「打造一個屬於自己的卡米狗」。本書從介紹聊天機器人的基礎觀念開始,逐步傳授所有相關知識,實現從無到有來打造一個屬於自己的聊天機器人!包含開發環境設置、網站架設、HTTP協定、Webhook、Line Messaging API等都將詳細介紹。
讀者需求
你至少需要有一台能上網的電腦,而且你懂得輸入中英文,你平時會使用Line傳送訊息,也會逛逛網頁。
讀完本書後
你會具備網站以及聊天機器人的基本觀念、了解HTTP協定,並且會架HTTP Server。
你會開始能看得懂工程師寫的技術文章。
你會知道遇到問題時要在Google輸入什麼關鍵字。
你會開始對資訊領域產生濃厚的學習興趣。
本書程式碼可至以下網址下載:
https://github.com/etrex/everybody-can-build-kamigo-demo
作者簡介
作者簡介
郭佳甯
畢業於台灣科技大學資訊管理研究所
現任五倍紅寶石資深網站工程師
曾任中國文化大學推廣教育部 App 開發組長
卡米狗 chatbot 作者
紅衣小女孩 chatbot 作者
第 9 屆 iT 邦幫忙鐵人賽優選 「只要有心,人人都可以作卡米狗」作者
Chatbot TW Meetup #1 講者
Android Develop 讀書會 #36 講者
.卡米狗官方網站: https://www.kamigo.tw/
.Facebook 粉絲團: https://www.facebook.com/kamigo01
郭佳甯
畢業於台灣科技大學資訊管理研究所
現任五倍紅寶石資深網站工程師
曾任中國文化大學推廣教育部 App 開發組長
卡米狗 chatbot 作者
紅衣小女孩 chatbot 作者
第 9 屆 iT 邦幫忙鐵人賽優選 「只要有心,人人都可以作卡米狗」作者
Chatbot TW Meetup #1 講者
Android Develop 讀書會 #36 講者
.卡米狗官方網站: https://www.kamigo.tw/
.Facebook 粉絲團: https://www.facebook.com/kamigo01
內容目錄
目錄
簡介
讀者需求
讀完本書後
如何使用本書
第 1 章:入門階段
1.1 認識聊天機器人
什麼是聊天機器人(chatbot)
聊天機器人是未來趨勢嗎?
聊天機器人能做什麼?
聽說做聊天機器人需要會人工智慧、機器學習等這些很潮的技術才做得起來?
1.2 認識卡米狗
卡米狗的誕生
卡米狗的各種功能
卡米狗可以翻群或防翻群嗎?
1.3 製作一個最簡單的聊天機器人
註冊Line Messaging API 帳號
加入聊天機器人為好友
傳訊息給這個聊天機器人
登入後台修改歡迎訊息
修改自動回應
新增關鍵字回應
怎麼讓聊天機器人能加入群組?
怎麼讓其他人也能加關鍵字回應?
1.4 聊天機器人完整概念圖解
製作Line 聊天機器人的步驟
製作一個網站的步驟
串接第三方聊天機器人平台的步驟
第 2 章:網站架設
2.1 建立一個 Rails 網站
執行網頁伺服器
用瀏覽器連網頁伺服器
2.2 認識 Ruby 的資料型態與方法
認識 irb
進入 irb
離開 irb
認識資料型態
認識方法
認識類別
2.3 Rails 運作過程
所以我說那個警衛室在哪?
那我們的住戶呢?
使用 Rails Generator 做一個 Controller
我後悔了想復原怎麼辦?
一定要使用 Rails Generator 做 Controller 嗎?
加入Action
加入Route
測試一下
2.4 怎麼讓別人連到我作好的網站?
認識 IP 位址(Internet Protocol Address)
怎麼讓別人連到我的網站?
所以要怎麼讓別人連到我的網站?
那有比較簡單的方法嗎?
2.5 發布網站到 Heroku
註冊 Heroku 帳號
Heroku CLI 初始設定
git 初始設定
專案的 git 初始設定
專案的 Heroku 初始設定
上傳程式碼到 Heroku
修改 database.yml
修改 Gemfile
把改動後的程式碼上傳到 Heroku
程式碼除錯的流程
2.6 認識資料庫
建立資料庫
建立資料模型
資料模型
資料庫遷移檔
第 3 章:深入了解HTTP 協定
3.1 認識 HTTP 協定
HTTP 協定的安全性問題
HTTPS 協定
從瀏覽器認識 HTTP 協定
使用 Chrome 開發人員工具
Headers
Request URL
Request Method
Status Code
Response
重點整理
3.2 從 Rails 認識 HTTP 協定
觀察 request.headers
從 Rails 觀察 request.body
從 Rails 觀察 response.headers
從 Rails 觀察 response.body
重點整理
3.3 從 Postman 認識 HTTP 協定
接收第一個 POST 請求
POST 的測試
CSRF 的防治
關閉 CSRF 的檢查
資料的傳遞
3.4 作一個最簡單的爬蟲
用 Rails 發 HTTP Request
在瀏覽器開啟網址
把翻譯韓文的功能加入到上面的爬蟲
觀察 request 和response
重點整理
3.5 認識 Webhook
訂閱是事件驅動
設定鬧鐘
訂閱是有效率的雙向溝通方法
單向溝通是沒有效率的溝通方法
Webhook 使用 HTTPS 協定傳遞資訊
第 4 章:實作卡米狗功能
4.1 Line Messaging API Webhook 運作原理
Line Messaging API 的各種通知
Line Messaging API 的各種行動
4.2 串接Line Messaging API Webhook
訊息傳遞流程圖解
接收訊息
回覆訊息
重點整理
4.3 實作關鍵字回覆
程式碼的重構
關鍵字回覆
進行實測
重點整理
4.4 卡米狗學說話
修改主程式
字串操作
學說話
關鍵字回覆
對一下程式碼
postgresql 版本的指定
安裝 Heroku 上的資料庫
進行在 Heroku 上的資料庫遷移
進行實測
重點整理
4.5 卡米狗推齊
使用情境
推齊的邏輯
修改主程式
建立資料模型
頻道 ID
儲存對話
儲存回應
推齊
對一下程式碼
Heroku 上的資料庫遷移
進行實測
重點整理
4.6 卡米狗見人說人話,見鬼說鬼話
修改學說話指令
修改關鍵字回覆
主程式
在 KeywordMapping 資料模型中新增欄位
資料庫遷移
進行實測
在 Heroku 上的資料庫遷移
重點整理
4.7 建立管理後台
使用產生器製作後台
生成 Routes
生成 Controller
生成 View
實測
建立登入功能
關閉註冊功能
登入後才能管理關鍵字
發布到 Heroku
關閉了註冊功能後要怎麼新增自己的帳號?
進行實測
重點整理
4.8 卡米狗發公告
訊息傳遞流程圖解
認識 Push Message API
保存所有頻道
製作管理後台
發布和測試
重點整理
4.9 卡米狗查天氣
訊息傳遞流程圖解
學會怎麼抓到最新的雷達回波圖網址
抓圖步驟整理
學會怎麼把圖檔弄到 imgur
在主程式呼叫查天氣
查天氣方法
取得最新雷達回波圖的方法
增加一個上傳圖片到 imgur 的方法
傳送圖片到 line 的方法
進行實測
重點整理
4.10 Line Messaging API 的各種訊息格式
傳送貼圖
傳送圖片
傳送影片
傳送聲音
傳送地標
傳送影像地圖(Imagemap)
傳送樣板(Template)
樣板行為(Template Action)
4.11 Line Messaging API 的各種通知
Webhook 資料格式
當接收到文字訊息時
當接收到圖片訊息時
當接收到影片、聲音、檔案訊息時
當接收到位置訊息時
當接收到貼圖訊息時
當你被加好友時
當你被封鎖時
當你被加入群組時
當你被踢出群組時
當有人按下 Template 的 Postback 按鈕
4.12 Line Messaging API 的簽名驗證
附錄A:資訊小學堂
A.1 檔案總管
開啟檔案總管
新增資料夾
新增檔案
搬移檔案或資料夾
複製檔案或資料夾
認識副檔名
修改檔名
A.2 認識命令提示字元
叫出命令提示字元
為什麼在執行輸入 cmd 就能叫出命令提示字元?
命令提示字元和檔案總管的對應關係
查看目前所在資料夾
切換資料夾
切換硬碟
快速地開啟一個命令提示字元在指定的資料夾下
A.3 認識檔案
認識文字編碼
認識 Big5
認識 UTF-8
修改檔案編碼為 UTF-8
A.4 認識瀏覽器
常見的瀏覽器
A.5 認識網頁
瀏覽器的運作原理
認識網站
A.6 文字編輯器
Sublime Text
開啟資料夾
新增資料夾
變
簡介
讀者需求
讀完本書後
如何使用本書
第 1 章:入門階段
1.1 認識聊天機器人
什麼是聊天機器人(chatbot)
聊天機器人是未來趨勢嗎?
聊天機器人能做什麼?
聽說做聊天機器人需要會人工智慧、機器學習等這些很潮的技術才做得起來?
1.2 認識卡米狗
卡米狗的誕生
卡米狗的各種功能
卡米狗可以翻群或防翻群嗎?
1.3 製作一個最簡單的聊天機器人
註冊Line Messaging API 帳號
加入聊天機器人為好友
傳訊息給這個聊天機器人
登入後台修改歡迎訊息
修改自動回應
新增關鍵字回應
怎麼讓聊天機器人能加入群組?
怎麼讓其他人也能加關鍵字回應?
1.4 聊天機器人完整概念圖解
製作Line 聊天機器人的步驟
製作一個網站的步驟
串接第三方聊天機器人平台的步驟
第 2 章:網站架設
2.1 建立一個 Rails 網站
執行網頁伺服器
用瀏覽器連網頁伺服器
2.2 認識 Ruby 的資料型態與方法
認識 irb
進入 irb
離開 irb
認識資料型態
認識方法
認識類別
2.3 Rails 運作過程
所以我說那個警衛室在哪?
那我們的住戶呢?
使用 Rails Generator 做一個 Controller
我後悔了想復原怎麼辦?
一定要使用 Rails Generator 做 Controller 嗎?
加入Action
加入Route
測試一下
2.4 怎麼讓別人連到我作好的網站?
認識 IP 位址(Internet Protocol Address)
怎麼讓別人連到我的網站?
所以要怎麼讓別人連到我的網站?
那有比較簡單的方法嗎?
2.5 發布網站到 Heroku
註冊 Heroku 帳號
Heroku CLI 初始設定
git 初始設定
專案的 git 初始設定
專案的 Heroku 初始設定
上傳程式碼到 Heroku
修改 database.yml
修改 Gemfile
把改動後的程式碼上傳到 Heroku
程式碼除錯的流程
2.6 認識資料庫
建立資料庫
建立資料模型
資料模型
資料庫遷移檔
第 3 章:深入了解HTTP 協定
3.1 認識 HTTP 協定
HTTP 協定的安全性問題
HTTPS 協定
從瀏覽器認識 HTTP 協定
使用 Chrome 開發人員工具
Headers
Request URL
Request Method
Status Code
Response
重點整理
3.2 從 Rails 認識 HTTP 協定
觀察 request.headers
從 Rails 觀察 request.body
從 Rails 觀察 response.headers
從 Rails 觀察 response.body
重點整理
3.3 從 Postman 認識 HTTP 協定
接收第一個 POST 請求
POST 的測試
CSRF 的防治
關閉 CSRF 的檢查
資料的傳遞
3.4 作一個最簡單的爬蟲
用 Rails 發 HTTP Request
在瀏覽器開啟網址
把翻譯韓文的功能加入到上面的爬蟲
觀察 request 和response
重點整理
3.5 認識 Webhook
訂閱是事件驅動
設定鬧鐘
訂閱是有效率的雙向溝通方法
單向溝通是沒有效率的溝通方法
Webhook 使用 HTTPS 協定傳遞資訊
第 4 章:實作卡米狗功能
4.1 Line Messaging API Webhook 運作原理
Line Messaging API 的各種通知
Line Messaging API 的各種行動
4.2 串接Line Messaging API Webhook
訊息傳遞流程圖解
接收訊息
回覆訊息
重點整理
4.3 實作關鍵字回覆
程式碼的重構
關鍵字回覆
進行實測
重點整理
4.4 卡米狗學說話
修改主程式
字串操作
學說話
關鍵字回覆
對一下程式碼
postgresql 版本的指定
安裝 Heroku 上的資料庫
進行在 Heroku 上的資料庫遷移
進行實測
重點整理
4.5 卡米狗推齊
使用情境
推齊的邏輯
修改主程式
建立資料模型
頻道 ID
儲存對話
儲存回應
推齊
對一下程式碼
Heroku 上的資料庫遷移
進行實測
重點整理
4.6 卡米狗見人說人話,見鬼說鬼話
修改學說話指令
修改關鍵字回覆
主程式
在 KeywordMapping 資料模型中新增欄位
資料庫遷移
進行實測
在 Heroku 上的資料庫遷移
重點整理
4.7 建立管理後台
使用產生器製作後台
生成 Routes
生成 Controller
生成 View
實測
建立登入功能
關閉註冊功能
登入後才能管理關鍵字
發布到 Heroku
關閉了註冊功能後要怎麼新增自己的帳號?
進行實測
重點整理
4.8 卡米狗發公告
訊息傳遞流程圖解
認識 Push Message API
保存所有頻道
製作管理後台
發布和測試
重點整理
4.9 卡米狗查天氣
訊息傳遞流程圖解
學會怎麼抓到最新的雷達回波圖網址
抓圖步驟整理
學會怎麼把圖檔弄到 imgur
在主程式呼叫查天氣
查天氣方法
取得最新雷達回波圖的方法
增加一個上傳圖片到 imgur 的方法
傳送圖片到 line 的方法
進行實測
重點整理
4.10 Line Messaging API 的各種訊息格式
傳送貼圖
傳送圖片
傳送影片
傳送聲音
傳送地標
傳送影像地圖(Imagemap)
傳送樣板(Template)
樣板行為(Template Action)
4.11 Line Messaging API 的各種通知
Webhook 資料格式
當接收到文字訊息時
當接收到圖片訊息時
當接收到影片、聲音、檔案訊息時
當接收到位置訊息時
當接收到貼圖訊息時
當你被加好友時
當你被封鎖時
當你被加入群組時
當你被踢出群組時
當有人按下 Template 的 Postback 按鈕
4.12 Line Messaging API 的簽名驗證
附錄A:資訊小學堂
A.1 檔案總管
開啟檔案總管
新增資料夾
新增檔案
搬移檔案或資料夾
複製檔案或資料夾
認識副檔名
修改檔名
A.2 認識命令提示字元
叫出命令提示字元
為什麼在執行輸入 cmd 就能叫出命令提示字元?
命令提示字元和檔案總管的對應關係
查看目前所在資料夾
切換資料夾
切換硬碟
快速地開啟一個命令提示字元在指定的資料夾下
A.3 認識檔案
認識文字編碼
認識 Big5
認識 UTF-8
修改檔案編碼為 UTF-8
A.4 認識瀏覽器
常見的瀏覽器
A.5 認識網頁
瀏覽器的運作原理
認識網站
A.6 文字編輯器
Sublime Text
開啟資料夾
新增資料夾
變