近期不知道大家的各種社群平台是否都被這個強大的AI工具給洗版了呢?如果你也覺得這個工具很好用,想把它變成你的個人助理的話,不妨來看一下要怎麼把它變成你的LINE好友,讓你隨時隨地都可以詢問吧~
什麼是ChatGPT?
ChatGPT 是一個由 OpenAI 訓練的大型語言模型,它可以在聊天對話中提供自然、流暢的回應,可以用來做到一些類似人類的交流,如回答問題、繼續對話、甚至可以創造出具有一定程度自然語言風格的文本。
ChatGPT的特點包括:
- 使用自然語言生成技術,可以產生人類風格的文本回應。
- 可以進行對話學習,隨著對話的進行,它的回應會越來越合適。
- 可以進行對話記憶,可以記住上一句話的內容,并在回應中提及。
- 可以使用不同的語言模型進行預訓練,以支持多種不同的對話類型。
建立一個LINEBot並串接ChatGPT
Step1: 建立OpenAI帳號,取得API
不同於在網頁介面進行操作,如果我們想要把ChatGPT串接到我們自己的工具中,可以透過API(應用程式介面, application programming interface)來達到。接下來就讓我們看一下要怎麼操作:
❗注意:透過這個Key產生的使用是消耗你的帳號的流量,請保密好它不要讓其他人知道!
Step2: 建立一個LINEBot帳號
因為LINE的個人帳號是沒辦法串接那些複雜的功能的,所以這邊我們要建立一個LINE官方帳號用來串接,接下來可以看要怎麼進行操作:
取得你頻道的Channel Access Token(操作的鑰匙),記得這個也不要透漏給其他人哦
接下來調整一些其他的設定:
Step3: 使用Make將兩者串接到一起
恭喜你已經到最後一步了,再努力一下就可以完成了!
這邊我們可以使用Make這個現成的工具,就算不用寫Code也能把這些東西串接起來了~
Watch Events:當用戶傳訊息到官方帳號的時候,取得這個消息
然後我們回到LINE Develop的介面,把我們的Webhook貼上,貼上之後可以點一下「Verify」來測試是否有成功連上。
HTTP:透過HTTP Request來和ChatGPT去溝通並得到結果,以下是要填入的欄位
- URL:「https://api.openai.com/v1/completions」
- Method:「POST」
- Headers-Item 1:Name為「Content-Type」,value為「application/json」
- Headers-Item 2:Name為「Authorization」,value為「Bearer sk-xxxx」,其中sk-xxxx替換成你的API KEY(見Step1)
- Body type:「Raw」
- Content type:「JSON (application/json)」
- Request content:如下
其中「prompt」後面是放你前面的事件的文字,而「max_tokens」是最大允許的長度(越長的話回覆越不容易被截斷,但消耗額度會比較高)
Send a Reply Message:把取得的結果進行回覆
結語
成果展示
如此一來,我們就成功把ChatGPT串接到LINE上面了,相當於隨時隨地都有一個強大的個人助理來回答我們問題了不覺得超棒的嗎XD
註解:目前這個串法如果有用換行的話可能會出問題,請以不要斷行為主,修正方式我再補充在另一篇。
計價方式
ChatGPT的計價方式是根據使用量去計算的,我們用的「Davinci」模型的價格是每1000個token消耗0.02美金,而每個帳號註冊的時候會提供18美金的額度,也就是說可以免費使用90萬個token,對於一般個人使用應該是很夠了的~
展望
ChatGPT的出現真的是讓很多人重新認識到AI的強大,而它究竟會對這個世界產生什麼樣子的改變,不禁讓人十分期待。
另外台灣似乎沒有專門討論ChatGPT的地方,所以小弟建立了一個FB社團,如果大家不嫌棄的話也歡迎加入一起討論相關的用法和發現~
社團連結:https://www.facebook.com/groups/529961532367250/
問題排解
如果在Make那邊串接發現有問題的話,請依次測試以下三個步驟
檢查1:確認有收到LINE回覆
- 在第一個階段選擇「Run this module only」
- 傳送訊息到你的LINE BOT
如果有正確收到應該會長這樣
如果此階段錯誤,請檢查:
- LINE Webhook是否貼對,如果確認沒貼錯但點Verify仍然不通過的話,請先在Make點選「Run this module」或是「Run once」之後再於LINE那邊按Verify
- 是否有關閉LINE自動回覆
檢查2:是否有收到API的回覆
在檢查1確認沒有問題之後,同樣單獨跑第二個看看
正確的畫面應該如下:
- Request Content有正確包含三個元素,且prompt是你前面LINE傳的文字
- Status code為200
- choice下面有1,點開之後有text,是它回傳給你的文字
- 你Setting裡面有用引號包住你前一階段的text
如果是錯誤的話Status code可能是400或401
- 400的話可能表示你的格式給錯,可能是傳到多行文字或是沒有加引號
- 401的話可能是你API有打錯,我寫了一個小工具可以測試一下你的API是否有問題
檢查3:整體流程檢查
前兩個步驟如果都OK的話,接下來就是點「Run Once」之後傳訊息給它來測試看看整個流程是否正確,如果正確的話請記得按儲存+打開底下的開關它才會保持運作哦。