中文 | English
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」頁籤,新增以下環境變數:
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/」。
- 回到 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 |
是否在標準輸出印出訊息,值必須是 true 或 false 。 |
APP_WEBHOOK_PATH |
/webhook |
客製的 webhook URL 路徑。 |
APP_LANG |
zh |
程式的初始語言,值必須是 zh 、en 或 ja 。 |
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: 你好嗎?
建立 .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」頁面查看發布通知。
- jayer95 - Debugging and testing
- kkdai/LINE-Bot-ChatSummarizer - Idea of "sum" command
- All other contributors