Skip to content

OpenAI + LINE + Google Cloud Run = GPT AI Assistant

License

Notifications You must be signed in to change notification settings

superdev-tech/gpt-ai-assistant

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPT AI Assistant

中文 | English

license Release

升級指南:GPT AI Assistant v2 🔥

GPT AI Assistant is an application that is implemented using the OpenAI API and LINE Messaging API. Through the installation process, you can start chatting with your own AI assistant using the LINE mobile app.

目次

文件

介紹

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

範例

影片教學

安裝步驟

  • 登入 OpenAI 平台,或註冊一個新的帳號。
    • 生成一個 OpenAI 的 API key
  • 登入 LINE 平台,或註冊一個新的帳號。
    • 新增一個提供者(Provider),例如「My Provider」。
    • 在「My Provider」新增一個類型為「Messaging API」的頻道(Channel),例如「My AI Assistant」。
    • 進到「My AI Assistant」頻道頁面,點選「Messaging API」頁籤,生成一個頻道的 channel access token
  • 登入 GitHub 平台,或註冊一個新的帳號。
    • 進到 gpt-ai-assistant 專案頁面。
    • 點選「Star」按鈕,支持這個專案與開發者。
    • 點選「Fork」按鈕,將原始碼複製到自己的儲存庫。
  • 登入 Vercel 平台,或註冊一個新的帳號。
    • 點選「Create a New Project」按鈕,建立一個新專案。
    • 點選「Import」按鈕,將 gpt-ai-assistant 專案匯入。
    • 點選「Environment Variables」頁籤,新增以下環境變數:
    • 點選「Deploy」按鈕,等待部署完成。
    • 回到專案首頁,複製應用程式網址(Domains),例如「https://gpt-ai-assistant.vercel.app/」。
  • 回到 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,加入好友。
  • 開始與你專屬的 AI 助理聊天!

程式更新

進到自己的 gpt-ai-assistant 專案頁面,點選「Sync fork」選單,再點選「Update branch」或「Discard commit」按鈕,以同步最新的程式碼到自己的儲存庫。

當 Vercel 機器人偵測到程式碼有變更,將會自動重新部署。

指令

在 LINE 手機應用程式輸入指令,以執行特定功能。

一般指令

指令 別名 說明
請問 /talk 與 AI 助理對話。
請畫 /draw 請 AI 助理生成圖像。
繼續 /continue 請 AI 助理繼續回覆。
開啟自動回覆 /activate 開啟 AI 自動回覆,須設置 VERCEL_ACCESS_TOKEN 環境變數。
關閉自動回覆 /deactivate 關閉 AI 自動回覆,須設置 VERCEL_ACCESS_TOKEN 環境變數。
重試 /retry 重新發送對話。

系統指令

指令 別名 說明
指令 /command 取得指令資訊。
版本 /version 取得版本資訊。
文件 /doc 取得文件資訊。
回報問題 /report 回報問題。
重新啟動 /restart 重新部署應用程式,須設置 VERCEL_DEPLOY_HOOK_URL 環境變數。

總結指令

指令 別名 說明
總結 /sum 請 AI 助理做出「總結」總結。
建議 /advise 請 AI 助理做出「建議」總結。
道歉 /apologize 請 AI 助理做出「道歉」總結。
譴責 /blame 請 AI 助理做出「譴責」總結。
安慰 /comfort 請 AI 助理做出「安慰」總結。
抱怨 /complain 請 AI 助理做出「抱怨」總結。
鼓勵 /encourage 請 AI 助理做出「鼓勵」總結。
嘲諷 /laugh 請 AI 助理做出「嘲諷」總結。

分析指令

指令 別名 說明
分析 /analyze 請 AI 助理分析。
文學分析 /analyze-literarily 請 AI 助理以文學角度分析。
數學分析 /analyze-mathematically 請 AI 助理以數學角度分析。
命理學分析 /analyze-numerologically 請 AI 助理以命理學角度分析。
哲學分析 /analyze-philosophically 請 AI 助理以哲學角度分析。
心理學分析 /analyze-psychologically 請 AI 助理以心理學角度分析。

翻譯指令

指令 別名 說明
翻成英文 /translate-to-en 請 AI 助理將文字翻譯成英文。
翻成日文 /translate-to-ja 請 AI 助理將文字翻譯成日文。

環境變數

在 Vercel 平台設置環境變數,以變更程式設定。

名稱 預設值 說明
APP_DEBUG false 是否在標準輸出印出訊息,值必須是 truefalse
APP_WEBHOOK_PATH /webhook 客製的 webhook URL 路徑。
APP_LANG zh 程式的初始語言,值必須是 zhenja
APP_MAX_GROUPS 1 群組數量上限,須搭配 VERCEL_ACCESS_TOKEN 環境變數。
APP_MAX_USERS 5 用戶數量上限,須搭配 VERCEL_ACCESS_TOKEN 環境變數。
BOT_NAME AI AI 助理的名字,在關閉自動回覆時用來呼叫。
VERCEL_TIMEOUT 9000 呼叫 Vercel API 的超時時間。
VERCEL_PROJECT_NAME gpt-ai-assistant Vercel 的專案名稱。當 Vercel 的專案名稱與 GitHub 的專案名稱不一樣時,可以使用此環境變數指定。
VERCEL_ACCESS_TOKEN null Vercel 的 access token
VERCEL_DEPLOY_HOOK_URL null Vercel 的 deploy hook URL
OPENAI_TIMEOUT 9000 呼叫 OpenAI API 的超時時間。
OPENAI_API_KEY null OpenAI 的 API key
OPENAI_COMPLETION_MODEL text-davinci-003 詳見 model 參數說明。
OPENAI_COMPLETION_TEMPERATURE 0.9 詳見 temperature 參數說明。
OPENAI_COMPLETION_MAX_TOKENS 160 詳見 max_tokens 參數說明。
OPENAI_COMPLETION_FREQUENCY_PENALTY 0 詳見 frequency_penalty 參數說明。
OPENAI_COMPLETION_PRESENCE_PENALTY 0.6 詳見 presence_penalty 參數說明。
OPENAI_IMAGE_GENERATION_SIZE 256x256 詳見 size 參數說明。
LINE_TIMEOUT 9000 呼叫 LINE Messaging API 的超時時間。
LINE_CHANNEL_ACCESS_TOKEN null LINE 的 channel access token
LINE_CHANNEL_SECRET null LINE 的 channel secret

點選「Redeploy」按鈕,以重新部署。

除錯

請在 Vercel 平台檢查專案的環境變數是否填寫正確。

如果有變更,點選「Redeploy」按鈕,以重新部署。

或者,在專案首頁點選「View Function Logs」按鈕。

查看應用程式的錯誤訊息。

常見問題

  • 遇到「403 Forbidden」的問題,請檢查環境變數是否設置正確。
  • 遇到「404 Not Found」的問題,請檢查 webhook URL 是否設置正確。
  • 遇到「429 Too Many Requests」的問題,請檢查 OpenAI 的使用額度。

錯誤回報

請到「Issues」頁面,點選「New issue」按鈕,描述你的問題,並附上螢幕截圖。

功能建議

請到「Issues」頁面,點選「New issue」按鈕,描述你的功能建議。

開發

下載專案。

git clone git@github.com:memochou1993/gpt-ai-assistant.git

進到專案目錄。

cd gpt-ai-assistant

安裝依賴套件。

npm ci

執行測試

建立 .env.test 檔。

cp .env.example .env.test

在終端機使用以下指令,運行測試。

npm run test

查看結果。

> gpt-ai-assistant@0.0.0 test
> jest

  console.info
    === 000001 ===

    Human: 嗨!
    AI: 好的!

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1 s

使用代理伺服器

建立 .env 檔。

cp .env.example .env

設置環境變數如下:

APP_DEBUG=true
APP_PORT=3000

VERCEL_PROJECT_NAME=gpt-ai-assistant
VERCEL_ACCESS_TOKEN=<your_vercel_access_token>

OPENAI_API_KEY=<your_openai_api_key>

LINE_CHANNEL_ACCESS_TOKEN=<your_line_channel_access_token>
LINE_CHANNEL_SECRET=<your_line_channel_secret>

在終端機使用以下指令,啟動一個本地伺服器。

npm run dev

在另一個終端機使用以下指令,啟動一個代理伺服器。

ngrok http 3000

回到 LINE 平台,修改「Webhook URL」,例如「https://0000-0000-0000.jp.ngrok.io/webhook」,點選「Update」按鈕。

使用 LINE 手機應用程式發送訊息。

查看結果。

> gpt-ai-assistant@0.0.0 dev
> node api/index.js

=== 0x1234 ===

Memo: 嗨
AI: 你好嗎?

使用 Docker 容器

建立 .env 檔。

cp .env.example .env

設置環境變數如下:

APP_DEBUG=true
APP_PORT=3000

VERCEL_PROJECT_NAME=gpt-ai-assistant
VERCEL_ACCESS_TOKEN=<your_vercel_access_token>

OPENAI_API_KEY=<your_openai_api_key>

LINE_CHANNEL_ACCESS_TOKEN=<your_line_channel_access_token>
LINE_CHANNEL_SECRET=<your_line_channel_secret>

在終端機使用以下指令,啟動一個本地伺服器。

docker-compose up -d

更新日誌

請到「Releases」頁面查看發布通知。

貢獻者

相關專案

授權條款

MIT

About

OpenAI + LINE + Google Cloud Run = GPT AI Assistant

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 98.9%
  • Other 1.1%