ChatGPT 串接到 LINE - 讓 AI 成為個人助理

2023年3月19日

ChatGPT 教學專書
不僅教你 ChatGPT 指令,更帶你實作出創新應用!前往了解

ChatGPT 是由 OpenAI 所開發的一個極具威力的語言模型。如果你正在尋找一個可以隨時隨地解決你生活中疑難雜症的工具,那麼你來對地方了!本篇文章將帶領你如何串接 Line Bot,並教你如何將 ChatGPT 與 Text To Image 模型結合,現在就跟著我一起學習如何讓 ChatGPT 成為你的好幫手吧!

介紹

在 Line 中導入 ChatGPT Bot,只要在輸入框直接輸入文字,即可與 ChatGPT 開始互動,除了 ChatGPT 以外,也直接串上了 Text to Image 的模型,輸入 /imagine + 文字,就會回傳相對應的圖片,如下圖所示:

ChatGPT line Bot
ChatGPT line Bot

安裝步驟

Token 取得

  1. OpenAI Token

    1. OpenAI 平台中註冊/登入帳號 → 首次註冊需要填寫基本資訊

    2. 右上方有一個頭像,點入後選擇  View API keys

      Get OpenAI Token Step1 and Step2
      Get OpenAI Token Step1 and Step2
    3. 點選中間的  Create new secret key

      Get OpenAI Token Step3
      Get OpenAI Token Step3
      Get OpenAI Token Step4
      Get OpenAI Token Step4

⚠️ 每隻 API 有免費額度,也有其限制,詳情請看  OpenAI Pricing

  1. 取得 Line Token:

    1. 登入 Line Developer

    2. 創建機器人:

      1. 創建  Provider -> 按下  Create

        Get Line Keys Step 1
        Get Line Keys Step 1
      2. 創建  Channel -> 選擇  Create a Messaging API channel

        Get Line Keys Step 2
        Get Line Keys Step 2
      3. 輸入完必填的基本資料

      4. 輸入完成後,在  Basic Settings  下方,有一個  Channel Secret -> 按下  Issue,生成後即為  LINE_CHANNEL_SECRET (稍晚會用到)

        Get Line Keys Step 3
        Get Line Keys Step 3
      5. 在  Messaging API  下方,有一個  Channel access token -> 按下  Issue,生成後即為  LINE_CHANNEL_ACCESS_TOKEN (稍晚會用到)

        Get Line Keys Step 4
        Get Line Keys Step 4

    專案設置

    如果在串接過程中遇到問題,可以在 ChatGPT-Line-Bot 的 Issues 中回報,我們會定期在那邊回覆問題

    1. Fork Github 專案

      1. 註冊/登入  GitHub

      2. 進入 ChatGPT-Line-Bot

      3. 點選  Star  支持開發者

      4. 點選  Fork  複製全部的程式碼到自己的倉庫

        Fork Github Repository Step 1
        Fork Github Repository Step 1
        Fork Github Repository Step 2
        Fork Github Repository Step 2
    2. 部署(免費空間)

      1. 進入  replit

      2. 點選  Sign Up  直接用  Github  帳號登入並授權 -> 按下  Skip  跳過初始化設定

      3. 進入後中間主頁的部分點選  Create -> 跳出框,點選右上角  Import from Github

        Replit Deploy Step 1
        Replit Deploy Step 1
      4. 若尚未加入 Github 倉庫,則點選連結  Connect GitHub to import your private repos. -> 勾選  Only select repositories -> 選擇  ChatGPT-LINE-Bot

        Replit Deploy Step 2
        Replit Deploy Step 2
        Replit Deploy Step 3
        Replit Deploy Step 3
      5. 回到第四步,此時  Github URL  可以選擇  ChatGPT-LINE-Bot  專案 -> 點擊  Import from Github

        Replit Deploy Step 4
        Replit Deploy Step 4

專案執行

  1. 環境變數設定

    1. 接續上一步  Import  完成後在  Replit  的專案管理頁面左下方  Tools  點擊  Secrets

    2. 右方按下  Got it  後,即可新增環境變數,需新增:

      • OpenAI API Token:
        • key: OPENAI_API
        • value: [由上方步驟一取得]
      • 欲選擇的模型:
        • key: OPENAI_MODEL_ENGINE
        • value: gpt-3.5-turbo
      • ChatGPT 要讓助理扮演的角色詞(目前官方無釋出更多的使用方法,由玩家自行測試
        • key: SYSTEM_MESSAGE
        • value: You are a helpful assistant.
      • Line Channel Secret:
        • key: LINE_CHANNEL_SECRET
        • value: [由步驟一取得]
      • Line Channel Access Token:
        • key: LINE_CHANNEL_ACCESS_TOKEN
        • value: [由步驟一取得]
      Replit Set Environment Variable
      Replit Set Environment Variable
  2. 開始執行

    1. 點擊上方的  Run

    2. 成功後右邊畫面會顯示  Hello World,並將畫面中上方的網址複製下來,下一步驟會用到

      Replit Run
      Replit Run
    3. 回到 Line Developer,在  Messaging API  下方的  Webhook URL  江上方網址貼過來,並加上  /callback  例如:https://ChatGPT-Line-Bot.explainthis.repl.co/callback

      Line Webhook Setting
      Line Webhook Setting
    4. 打開下方的  Use webhook

    5. 將下方  Auto-reply messages  關閉

      Line Webhook Setting 2
      Line Webhook Setting 2

    ⚠️ 若一小時內沒有任何請求,則程式會中斷,因此需要下步驟

  3. CronJob 定時發送請求

    1. 註冊/登入  cron-job.org

    2. 進入後面板右上方選擇  CREATE CRONJOB

      CronJob Step 1
      CronJob Step 1
    3. Title  輸入  ChatGPT-Line-Bot,網址輸入上一步驟的網址

    4. 下方則每  5 分鐘  打一次

    5. 按下  CREATE

      CronJob Step 2
      CronJob Step 2

指令

在文字輸入框中直接輸入文字,即可與 ChatGPT 開始對話,而其他指令如下:

指令說明
/imagine在輸入框輸入  /imagine + 文字,就會調用  Text to Image  模型,即可生成圖像。

Q&A

  1. LINE 是否會收費?

    利用 reply_message 的方法,不在計價範圍內,主動推播才會有限制。

  2. 如何看 Log 檔?

    在 Replit 專案中左側有一個 logs ,在專案當中的 logger 會記錄在其中,可以自行添加 logger 在其中。

  3. 如何調整 Text To Image 輸出的圖片大小?

    修改 /src/models/OpenAIModel 裡的 image_size 即可。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們