本專案會利用 Whisper + GPT-3.5 + Google Text-To-Speech 打造一個 AI 英文家教老師,而老師也會去記錄學生的學習狀況,並定期的反思學生學習狀態,並給予較是適當的回饋與回覆給學生。
- 取得 OpenAI 給的 API Key
- OpenAI 平台中註冊/登入帳號
- 右上方有一個頭像,點入後選擇
View API keys
- 點選中間的
Create new secret key
-> 生成後即為OPENAI_API_KEY
(稍晚會用到)
- 注意:每隻 API 有免費額度,也有其限制,詳情請看 OpenAI Pricing
- 取得 LINE Token:
- 登入 LINE Developer
- 創建機器人:
- 創建
Provider
-> 按下Create
- 創建
Channel
-> 選擇Create a Messaging API channel
- 輸入完必填的基本資料
- 輸入完成後,在
Basic Settings
下方,有一個Channel Secret
-> 按下Issue
,生成後即為LINE_CHANNEL_SECRET
(稍晚會用到) - 在
Messaging API
下方,有一個Channel access token
-> 按下Issue
,生成後即為LINE_CHANNEL_ACCESS_TOKEN
(稍晚會用到)
- 創建
- 取得 Google Text-To-Speech API
- 註冊/登入 Google Cloud Platform
- 登入後點擊左上方
下拉式選項
,並點擊新增專案
。 - 輸入完
專案名稱
、選擇完機構
後,就可以按下建立
- 上方搜尋列表輸入
Cloud Text-To-Speech API
,選擇下方MARKETPLACE
的Cloud Text-To-Speech API
-> 點擊啟用
- 上方搜尋列表輸入
IAM
,選擇IAM 與管理
- 左邊選擇
服務帳戶
,右邊選擇建立服務帳戶
- 任意輸入完帳號後,點擊
完成
- 建立完成後,在該帳號後面的 ... 點擊後,選擇
管理金鑰
- 進入後,上方
金鑰
的地方,下方選擇建立新的金鑰
- 選擇
JSON
格式,並點擊建立
-> 此時會下載一份credential.json
請保存好,稍待會會用到。
- Fork Github 專案:
- 註冊/登入 GitHub
- 進入 ChatGPT-AI-English-Tutor
- 點選
Star
支持開發者 - 點選
Fork
複製全部的程式碼到自己的倉庫
- 部署(免費空間):
-
環境變數設定
- 接續上一步
Fork
完成後在Replit
的專案管理頁面左下方Tools
點擊Secrets
。 - 右方按下
Open raw editor
,此時可以直接新增 json 格式進去,請直接複製剛剛的crenditial.json
例如:{ "type": "service_account", "project_id": "ai-english-tutor", "private_key_id": "2f79XXXXXXXXXXXXXbd2", "private_key": "-----BEGIN PRIVATE KEY---- XXXXXXX", "client_email": "[email protected]", "client_id": "115XXXXXXXXXXX20", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.gooXXXXX", "client_x509_cert_url": "https://www.gooXXXXXXX" }
- 再新增另外四個環境變數,需新增:
- 欲選擇的模型:
- key:
OPENAI_API_KEY
- value:
[由步驟一取得]
- key:
- Line Channel Secret:
- key:
LINE_CHANNEL_SECRET
- value:
[由步驟一取得]
- key:
- Line Channel Access Token:
- key:
LINE_CHANNEL_ACCESS_TOKEN
- value:
[由步驟一取得]
- key:
- Server URL
- key:
SERVER_URL
- value:
[程式執行後,上方的網址,例如:https://ChatGPT-AI-English-Tutor.explainthis.repl.co/]
- key:
- 欲選擇的模型:
- 接續上一步
-
開始執行
- 點擊上方的
Run
- 成功後右邊畫面會顯示
Hello World
,並將畫面中上方的網址複製下來 - 回到 Line Developer,在
Messaging API
下方的Webhook URL
江上方網址貼過來,並加上/callback
例如:https://ChatGPT-AI-English-Tutor.explainthis.repl.co/callback
- 打開下方的
Use webhook
- 將下方
Auto-reply messages
關閉
- 注意:若一小時內沒有任何請求,則程式會中斷,因此需要下步驟
- 點擊上方的
-
CronJob 定時發送請求
- 註冊/登入 cron-job.org
- 進入後面板右上方選擇
CREATE CRONJOB
Title
輸入ChatGPT-AI-English-Tutor
,網址輸入上一步驟的網址,例如:https://ChatGPT-AI-English-Tutor.explainthis.repl.co/
- 下方則每
5 分鐘
打一次 - 按下
CREATE
main.py
中第 86 - 96 行的提示詞,用途是針對學生的問題,要怎麼去回應,可以依據不同的情境去做設定,像是某部分的學生很常用中文問問題,有部分的學生可能很需要老師修改他的英文文法等,大家可以自行嘗試不同的提示詞,可能會有不同效果。main.py
中第 59 - 73 行的提示詞,用途在於老師會每 10 次回覆後做一次反思,反思這個學生是否有進步,以及反思自己是否有給出好的引導與回應,並適時地做調整,大家可以自行嘗試不同的提示詞,可能會有不同的效果。
如果你喜歡這個專案,願意支持我們,可以請我們喝一杯咖啡,這會成為我們繼續前進的動力!