[AI]串接OpenAI到LineBot,建立屬於自己的AI助理

tags: 10minute AI

目錄

內文

OpenAI是什麼?

OpenAI 是美國一個人工智慧(AI)研究實驗室,創始人為伊隆·馬斯克(沒錯就是特斯拉那位)以及山姆·柯曼,原先為一個非營利組織,其使命是創造通用人工智能(英文:Artificial General Intelligence,簡稱 AGI),促進和發展友好的人工智慧,使人類整體受益,後來因為營運的成本所成立一個子公司營利組織 OpenAI LP。 OpenAI 每一年都會陸續推出自己所研發出的成果,從 GPT-1 到 GPT-3.5 都是他們所創造的成品

OpenAI 官方網站 https://openai.com/

Chat GPT是什麼?

ChatGPT 是由 OpenAI 開發的自然語言處理(NLP)模型「GPT-3」延伸出的「GPT-3.5」製作的,基於 人類反饋強化學習(RLHF) 進行訓練,簡單來說就是人類提問機器答、機器提問人類答,並且不斷迭代,再排除掉不健康的答案,透過人類干預以增強機器學習的效果,獲得更為逼真的結果。

ChatGPT 二個月內,已經吸引超過1億人使用,而 ChatGPT 功能強大,從客服對話、故事創作、翻譯、修改文法、寫詩、歌詞、文字整理,甚至是寫程式都可以。

GPT-3 VS GPT-3.5

現在我們知道了 ChatGPT 是經過 GPT-3.5 訓練而來的,那到底 GPT-3 跟 GPT-3.5 又是什麼東西呢?

  • GPT-3 生成型預訓練變換模型3(英語:Generative Pre-trained Transformer 3,簡稱 GPT-3)是一個自迴歸語言模型,基於谷歌開發的語言模型,模型訓練內容大部分來自網路,讓 ChatGPT 能夠相當自然地組織語句。 GPT-3 這個模型也是當前最大的語言處理模型之一,神經網路包含1750億個參數,為有史以來參數最多的神經網路模型。

OpenAI 於2020年5月發表 GPT-3 的論文,微軟在2020年9月22日宣布取得了 GPT-3 的獨家授權。

  • GPT-3.5 GPT-3.5 與 GPT-3 最大的差別在於 GPT-3 主要扮演一個蒐集資料的角色,較單純的使用網路上的資料進行訓練。 GPT-3.5 則是由 GPT-3 微調出來的版本,而其中 GPT-3.5 使用與 GPT-3 不同的訓練方式,所產生出來不同的模型,比起 GPT-3 來的更強大

  • ChatGPT 而 ChatGPT 又是建立 GPT-3.5 之上,且更加上使用更完整的 人類反饋強化學習(RLHF) 去訓練。 (大致上可以想成 GPT-3 → GPT-3.5 → ChatGPT 啦) 也因此 ChatGPT 除了能夠準確理解問題,更能夠將對話一路記住和按此調整內容,其中包括承認錯誤、糾正錯處和拒絕不當要求等等較為複雜的互動內容,更符合道德要求的訓練方式,達到更接近真人的效果,這也是 GPT-3 所沒有的。

關於 GPT 各代的差異 https://www.techbang.com/posts/102473-openai-footprint-chatgpt

建立屬於自己的 GPT AI Assistant

GPT AI Assistant 是基於 OpenAI APILINE Messaging API 實作的範例應用程式,透過安裝步驟,你可以使用 LINE 手機應用程式與你專屬的 AI 助理聊天。

範例

Step1.申請帳號

要能在10分鐘內快速安裝,首先要先準備以下帳號

Step2.首先申請 OpenAI 帳號才能與LINE 官方帳號串接

申請好 OpenAI 帳號後,在 API Keys 建立一個 Secret key (要 copy 下來備用)

Step3.登入 LINE 官方帳號

  • 新增一個提供者(Provider),例如「My Provider」。
  • 在「My Provider」新增一個類型為「Messaging API」的頻道(Channel),例如「My AI Assistant」。
  • 進到「My AI Assistant」頻道頁面,點選「Messaging API」頁籤,生成一個頻道的 channel access token。

Step4.登入 GitHub 平台

  • 進到 gpt-ai-assistant 專案頁面。
  • 點選「Star」按鈕,支持這個專案與開發者。
  • 點選「Fork」按鈕,將原始碼複製到自己的儲存庫。

Step5.登入 Vercel 平台

  • 點選「Create a New Project」按鈕,建立一個新專案。

  • 點選「Import」按鈕,將 gpt-ai-assistant 專案匯入。

  • 點選「Environment Variables」頁籤,新增以下環境變數:

    • OPENAI_API_KEY:將值設置為 OpenAI 的 API key。
    • LINE_CHANNEL_ACCESS_TOKEN:將值設置為 LINE 的 channel access token。
    • LINE_CHANNEL_SECRET:將值設置為 LINE 的 channel secret。
  • 點選「Deploy」按鈕,等待部署完成。

  • 回到專案首頁,複製應用程式網址(Domains),例如「https://gpt-ai-assistant.vercel.app/」。

Step6.回到 LINE 平台

  • 進到「My AI Assistant」頻道頁面,點選「Messaging API」頁籤,設置「Webhook URL」,填入應用程式網址並加上「/webhook」路徑,例如「https://gpt-ai-assistant.vercel.app/webhook」,點選「Update」按鈕。
  • 點選「Verify」按鈕,驗證是否呼叫成功。
  • 將「Use webhook」功能開啟。
  • 將「Auto-reply messages」功能關閉。
  • 將「Greeting messages」功能關閉。
  • 使用 LINE 手機應用程式掃描 QR code,加入好友。
- 登入 [OpenAI](https://beta.openai.com/) 平台,或註冊一個新的帳號。
  - 生成一個 OpenAI 的 [API key](/demo/openai-api-key.png)。
- 登入 [LINE](https://developers.line.biz/) 平台,或註冊一個新的帳號。
  - 新增一個提供者(Provider),例如「My Provider」。
  - 在「My Provider」新增一個類型為「Messaging API」的頻道(Channel),例如「My AI Assistant」。
  - 在「My AI Assistant」點選「Messaging API」頁籤,生成一個頻道的 [channel access token](/demo/line-api-key.png)。
- 登入 [GitHub](https://github.com/) 平台,或註冊一個新的帳號。
  - 進到 `gpt-ai-assistant` 專案頁面,點選「Star」按鈕,支持開發者開發有趣的專案。
  - 再點選「Fork」按鈕,將原始碼複製到自己的儲存庫。
- 登入 [Vercel](https://vercel.com/) 平台,或註冊一個新的帳號。
  - 點選「Create a New Project」按鈕,建立一個新專案。
  - 點選「Import」按鈕,將 `gpt-ai-assistant` 專案匯入。
  - 點選「Environment Variables」頁籤,新增以下環境變數:
    - `OPENAI_API_KEY`:將值設置為 OpenAI 的 [API key](/demo/openai-api-key.png)。
    - `LINE_API_KEY`:將值設置為 LINE 的 [channel access token](/demo/line-api-key.png)。
    - `LINE_API_SECRET`:將值設置為 LINE 的 [channel secret](/demo/line-api-secret.png)。
  - 點選「Deploy」按鈕,等待部署完成。
  - 點選「Domains」按鈕,複製應用程式網址,例如「<https://gpt-ai-assistant.vercel.app/>」。
- 回到 [LINE](https://developers.line.biz/) 平台。
  - 進到「My AI Assistant」頻道頁面,點選「Messaging API」頁籤,設置「Webhook URL」,例如「<https://gpt-ai-assistant.vercel.app/webhook>」,點選「Update」按鈕。
  - 點選「Verify」按鈕,驗證是否呼叫成功。
  - 將「Use webhook」功能打開。
  - 將「Auto-reply messages」功能關閉。
  - 將「Greeting messages」功能關閉。
  - 使用 LINE 手機應用程式掃描 QR code,加入好友。
- 開始與你專屬的 AI 助理聊天!

來源連結

原文

專案網址

ChatGPT