教學

Line ChatBot 聊天機器人教學 Day3 -第一份程式碼

發佈於

準備工作

還記得上次教學幫我們機器人準備的”家”吧
接下來我們需要準備幾樣東西上傳到上面
1. app.py (主程式 這裡我使用的名稱為app,可依照需求更改)
2. Procfile (用來跟 heroku 解釋現在放在這個家上面的程式是什麼樣的,他才知道如何執行)
3. requirements.txt (跟heroku說我們所需要用到的python套件)
這邊先提供上述檔案範例的載點,基本上先用教學提供的再去做修改即可
載點: 點我下載
三個檔案都要下載喔
1. Procfile
2. requirement.txt
3. app.py (主程式)

設定 Line developer

use webhooks 設定為 enabled
Webhook URL 填上 : https://[heroku的app名稱].herokuapp.com/callback
以此教學範例為 : https://linebottutorial.herokuapp.com/callback

App.py 基礎配置

打開我們的主程式 app.py 接著我們需要修改一些內容
1. channel access token 設定
2. channel secret 設定

可以在Line developer下的 channel settings 找到以下兩列:

Channel access token

Channel Secret

將兩個內容分別貼到我們app.py的以下兩個區域
line_bot_api = LineBotApi(‘Channel access token’)
handler = WebhookHandler(‘Chennel secret’)

上傳程式碼

依照上次的教學 將我們的程式碼推到機器人的”家”
檔案需位於同個資料夾目錄下:
app.py
Procfile
requirements
1. cd 檔案目錄 (前一篇教學文git初始化過的資料夾)
2. git add . (將程式與其他檔案加入版控)
3. git commit -m “first push” (提交版本)
4. git push -f heroku master (將版本推上heroku 大功告成)

加入好友 測試

在Line developers 下可以找到自己line機器人的QR Code
拿起手機 將他加入好友 然後傳一個訊息給他試試看吧!

下一次教學我們將會開始修改我們的機器人,讓他會一些有趣的應答喔!

教學

Line ChatBot 聊天機器人教學 Day2 -Heroku 部署

發佈於

讓我們的機器人有一個"家"

聊天機器人就像是一個24小時待命的工人一樣,當收到使用者傳送的訊息後會馬上做出相對應的回應.

我們的第一個工作就是讓我們的機器人邏輯部署在Server上,讓他24小時待命 當我們對機器人傳送訊息後,Line的伺服器便會去機器人的”家”通知有新的使用者訊息要處理

當我們的機器人處理完後會把資料 咻~ 的丟給Line伺服器 再轉傳回我們手中 而今天要做的就是把我們機器人的”家”建立起來喔!

登入Heroku帳號 並創建App

在右上角點選 “New” 並點選 Creat new app

輸入完App名字後即可完成創建

安裝 Heroku CLI

Heroku CLI 安裝網址

這個工具是heroku 的 command line interface 以後我們要上傳我們的機器人邏輯就要透過他
安裝完後 只要開啟command line(小黑窗) 即可使用 指令的部分會在後面做介紹

本地端創建專案目錄

以mac系統為例 在想要的根目錄創造你的專案資料夾 這邊我創立了一個空資料夾叫做linebottutorial 以後我的程式碼就會放在這個資料夾裡面
之後開啟cmd (終端機) 進行下列步驟

$ heroku login
$ cd linebottutorial $ git init $ heroku git:remote -a linebottutorial

上述步驟分別為:
1.將heroku cli登入heroku帳號
2.將工作環境切換到你的專案位置
3.初始化git (這邊不詳細說明git的使用方式 簡單來說heroku是透過git部署)
4.將本地工作環境與遠端連接 (linebottutorial的部分替換為你們的heroku app名稱)

上述步驟只需在第一次創建專案時進行,以後只要在此目錄下進行程式碼的推送就會自動推送到我們機器人的”家”了

總結:

這樣我們機器人的家就已經完成部署囉,是不是很簡單 
下一次的教學就會開始撰寫程式碼(python) 並讓我們的機器人開始回應我們的訊息囉!

教學

Line ChatBot 聊天機器人教學 Day1

發佈於

此篇教學系列終將會帶領你做出最基礎的Line聊天機器人,主要透過python撰寫程式碼,並發布於Heroku上

python : 機器人的程式邏輯 收到訊息做的動作…等

Heroku : 類似Server的概念 你需要將你的程式佈署在上面,他會24小時待命(當然免費帳號有休眠機制,不過已很足夠使用) 當收到訊息時 Line 將會以Webhook的方式去調用我們部署在這上面的程式碼

事前準備

1. LineDeveloper 帳號 可透過個人line帳號登入 

2. Heroku 帳號 可免費申請,免費帳戶有一些基本限制 不過對基本的聊天機器人已經很夠用

註冊帳號

註冊完後即可,後面佈署時才會用到

1. 創建Line Developer Provider

創建聊天機器人前我們會需要一個提供者,有點像是開發者的意思,在Line Developer中最左邊的選單選擇 Providers 並點選 creat new provider 並輸入你想創建的開發者名稱

2. 創建 Messaging Api

創建完提供者後我們選擇 Messaging Api

接著輸入聊天機器人的一些基礎資訊 圖像(App icon),名稱(App name)….類別等
圖像可以隨時更改所以這邊可以先不設定
名字的話7天才能更改一次 所以請想好在設定~
類別(Category)的部分可依照自身需求選擇

都設定好之後就確認下去即可 設定完後就會看到我們有一個 Chat bot 能用啦 (chatbotTutorial 為我的Provider名稱)

3. 完成準備工作

點選我們的頻道即可進入我們機器人的設定啦 下一篇教學文我們將會開始介紹如何設定我們的頻道並且讓我們的機器人可以開始回應使用者囉!

Uncategorized

Sara-獨一無二的Line聊天機器人

發佈於

手把手教你打造最有個性的line聊天機器人

隨著時代的進步,人工智慧也逐漸的為人所樂道.但要讓電腦真的有似於人類的情感是否真的有可能呢?於是乎有了這個項目- Sara 希望做出一個有個性的人工智能

1.如何設計出”有個性”的聊天機器人

  • 能像人與使用者交流

舉個已經設計好使用者對話與應答的例子:

使用者: 哈囉

機器人: 嗨 今天好啊

使用者: 妳好嗎

機器人: 我很好呢~

某一天…….

使用者: 哈囉 妳好嗎

機器人:#@!%%#@…. 我當初沒有設計這句話的回答 我不知道怎麼回答QQ

要預設寫好所有中文對話的回應基本上是不可能的。這樣做起來也不夠有”個性”,於是我們將使用者說的對話利用提取關鍵字的方式再將預期的應答丟給她去學習,Sara會再利用演算法算出來最高可能的應答去回應使用者.

透過大約10個好友與Sara聊天學習後的成果

圖(1)中乾妳屁事的回答不存在於Sara預設的語句中,是透過使用者的輸入讓他學習到的

當然透過這種方法就很像在教小孩子講出很有邏輯的對話語句一樣,短時間(很少的話資料)要讓一個孩子學會正常的對話是很困難的,但是只要時間一長(增加對話資料)他將會越來越能應答各種的輸入,因此很適合運用在賴這種一對多的聊天機器人身上

目前預設只有丟了39句對話(沒錯 就是那麼少) ,但是他透過記錄使用者的輸入去做語句的訓練,加入許多使用者好友並聊天(喇賽) Sara在這短短幾天的部屬中就講出了很多意外的話(不是當初設定好的應答語句)

2.既然是機器人 還是有他應該做的"任務"

  • 任務導向的聊天機器人
  • Sara不只要會跟使用者喇賽,還要會幫使用者解決問題!
  • 持續擴充中… (如果有任何有趣的想法,歡迎提出!)

目前Sara利用模組組合式的方式,當Line端收到使用者訊息後回傳Sara,Sara有一個主運算邏輯(大腦)去判斷使用者是要Sara執行某個任務還是正常閒聊

一些功能展示:

  • 學校考古題系統
  • 人臉辨識and網路搜索相似圖片
  • 周遭食物推薦
  • 音樂推薦
  • 學校網站所有課堂公告(尚未完成)
  • 比特幣,股票價格預測(當然不太準..)

今天分享就先到這裡啦~ 都盡量寫的比較白話沒有探討太多程式面向的地方,算是一個開頭吧。如果真的有人有興趣的話我再繼續寫下去囉~(包含教學)

目前先整理一下有用到的工具(python的套件未來有教學的話再慢慢介紹):

  • Heroku(用來當Server處理line的webhook)
  • Line Messaging API(用來獲得,回應使用者與line之間的通訊)
  • python3(Sara的主程式,模組)

開發者: 2人

Sara的帳號 有興趣一起幫忙測試的就加一下吧~

Uncategorized

Jarvis 打造鋼鐵人中的超強Ai

發佈於

記得前年看到Facebook創辦人祖克柏公布了他親手寫出人工智慧管家的程式Jarvis,幫助他打理家中的大小事,看了我為之驚艷(身為鋼鐵人迷的我:啊啊啊啊…)於是就立志也寫出一個Jarvis來玩看看.斷斷續續的從大二開始摸了一堆東西(網路程式,樹莓派,人工智能…)總算在最近有做出一些成果來跟大家分享一下,並實作成Line機器人的介面

1.利用樹莓派當作Jarvis的中樞

為什麼要用樹莓派?一台笨重的電腦固定在那怎麼夠炫呢,最好是能感覺不到他的存在,但他卻在你身邊啊!利用串聯到各種服務介面(ex. Line ,語音識別 網頁介面…等)讓你不需要在主機面前才能與Jarvis互動(外網利用port轉發,將服務請求轉接進Jarvis中)

3D 投影出Jarvis本體

Jarvis 3D 投影畫面 這邊偷偷使用網路上的影片(畢竟我不是美工出生的啊…) 再利用透明塑膠片製作3D投影效果,投射出Jarvis的本體

Jarvis Line使用者介面 讓你無論何處都能與Jarvis互動

Jarvis 家中監控系統
Jarvis 可隨時偵測家中狀況 並自動發現可疑活動,圖中為有人打開我家房門
Jarvis 自動音樂播放 讓你就算躺在床上也能利用賴請Jarvis放音樂 (影片為使用電腦版line,因為手機要用來錄影…)

當然啦 目前實作出的功能不止這些,我只是把我覺得比較有趣的分享出來而已, 要做出這些看起來很簡單的事情其實中間需要經過很多處理的! 也許之後有機會能把教學補上,如果覺得不錯的話不妨可以給我一點回應喔!~