1- # GPT-Linebot using python flask on vercel
1+ # GPT-Linebot using python flask on vercel
2+
3+ * last updated: 2022/12/14
24
35本文同步更新至我的個人網站:[ 【Side Project】(全圖文教學) 用 Python flask 實作類似 ChatGPT 的 Linebot,並部屬至 vercel 上] ( https://www.wongwonggoods.com/portfolio/personal_project/gpt-linebot-python-flask-for-vercel/ )
46
1517>
1618> 而非 ChatGPT 使用的 GPT-3.5
1719
18- # TODO List
19-
20- > 目前基本功能都已經有了,然後我比較忙可能沒空一直更新QQ
21- >
22- > ` 還有很多可以優化的地方,歡迎提供 PR! `
23-
24- - [x] (已調整完成) 回復文字感覺不是很順 (可能需要研究一下 API 使用方法)
25- - [x] (已調整完成) 記憶功能
26- ...
27-
28- > 目前算法是「` 紀錄使用者與 AI 的前20句對話 ` 」,嘗試推論出下一句話應該要說什麼。以達成延續話題的效果。
29-
3020# 安裝步驟
3121
3222主要會有四個地方要去:(` 這部份不看也沒關係,以下照著做就可以了! ` )
@@ -200,6 +190,8 @@ Import Git Repository,選擇你剛剛 fork 的專案 import
200190[ ![ ] ( https://www.wongwonggoods.com/wp-content/uploads/2022/12/截圖-2022-12-12-下午11.21.45.png )] ( https://www.wongwonggoods.com/?attachment_id=8018 )
201191
202192
193+
194+
203195# 此 linebot 的其他一些內建功能
204196
205197## 機器人「說話開關」
@@ -208,24 +200,38 @@ Import Git Repository,選擇你剛剛 fork 的專案 import
208200意外得到好評,所以這個功能就被保留下來
209201
210202* 輸入「說話」:機器人開啟說話模式,預設是開啟的
211- * 輸入「閉嘴」:機器人暫停說話模式 (` 但一段時間會自動再起動 ` ),閉嘴後將不會對任何對話有反應。
203+ * 輸入「閉嘴」:機器人暫停說話模式 (` 但一段時間會自動再起動 ` ),閉嘴後將不會對任何對話有反應。輸入「說話」可再次開啟對話。
212204
213205## 其他環境參數功能
214206
215- 參考自[ memochou1993/gpt-ai-assistant] ( https://github.com/memochou1993/gpt-ai-assistant?fbclid=IwAR25uqLdKoDKEQd591fSjyM2sDJJR3Xb-VgcXDIFV_7i3RMWWv2oiyG26RQ ) 的作法,下列參數可藉由設定vercel的環境變數來作調控 。
207+ 參考自 [ memochou1993/gpt-ai-assistant] ( https://github.com/memochou1993/gpt-ai-assistant?fbclid=IwAR25uqLdKoDKEQd591fSjyM2sDJJR3Xb-VgcXDIFV_7i3RMWWv2oiyG26RQ ) 的作法,下列參數也可藉由設定 vercel 的環境變數來作調控 。
216208
217209| 環境變數名稱 | 預設值 | 說明 |
218210| ------------------------| --------------- | -----|
219- | OPENAI_MODEL | text-davinci-003| 請參考OpenAI對 [ model] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-model ) 的敘述|
220- | OPENAI_TEMPERATURE | 0 | 請參考OpenAI對 [ temperature] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-temperature ) 的敘述|
221- | OPENAI_FREQUENCY_PENALTY| 0 | 請參考OpenAI對 [ frequency_penalty] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-frequency_penalty ) 的敘述|
222- | OPENAI_PRESENCE_PENALTY | 0.6 | 請參考OpenAI對 [ presence_penalty] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-presence_penalty ) 的敘述|
223- | OPENAI_MAX_TOKENS | 240 | 請參考OpenAI對 [ max_tokens] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-max_tokens ) 的敘述|
224- | MSG_LIST_LIMIT | 20 | prompt參數往回參照的句數 |
225- | INIT_LANGUAGE | zh | 決定初始語言,可設置為 zh 或 en |
211+ | OPENAI_MODEL | text-davinci-003| 請參考 OpenAI 對 [ model] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-model ) 的敘述|
212+ | OPENAI_TEMPERATURE | 0 | 請參考 OpenAI 對 [ temperature] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-temperature ) 的敘述|
213+ | OPENAI_FREQUENCY_PENALTY| 0 | 請參考 OpenAI 對 [ frequency_penalty] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-frequency_penalty ) 的敘述|
214+ | OPENAI_PRESENCE_PENALTY | 0.6 | 請參考 OpenAI 對 [ presence_penalty] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-presence_penalty ) 的敘述|
215+ | OPENAI_MAX_TOKENS | 240 | 請參考 OpenAI 對 [ max_tokens] ( https://beta.openai.com/docs/api-reference/completions/create#completions/create-max_tokens ) 的敘述|
216+ | MSG_LIST_LIMIT | 20 | prompt 參數往回參照的句數 |
217+ | INIT_LANGUAGE | zh | 決定初始語言,可設置為 "zh" 或 "en" |
226218
227219
228220
221+ # TODO List & Future Work
222+
223+
224+ > 目前基本功能都已經有了,然後我比較忙可能沒空一直更新QQ
225+ >
226+ > ` 還有很多可以優化的地方,歡迎提供 PR! `
227+
228+ - [x] (已調整完成) 回復文字感覺不是很順 (可能需要研究一下 API 使用方法)
229+ - [x] (已調整完成) 記憶功能
230+ ...
231+
232+ > 目前算法是「` 紀錄使用者與 AI 的前20句對話 ` 」,嘗試推論出下一句話應該要說什麼。以達成延續話題的效果。
233+
234+
229235# 靈感來源
230236
231237* 感謝 [ memochou1993/gpt-ai-assistant] ( https://github.com/memochou1993/gpt-ai-assistant?fbclid=IwAR25uqLdKoDKEQd591fSjyM2sDJJR3Xb-VgcXDIFV_7i3RMWWv2oiyG26RQ ) 提供的 node.js 版本串接 vercel 示範,讓我有了想把 python linebot 也串進 vercel 的靈感,(目前感覺下來,免費又好用(?))
@@ -234,5 +240,5 @@ Import Git Repository,選擇你剛剛 fork 的專案 import
234240# 參考資料
235241
236242* Line 官方提供的 python flask 製作 linebot 的 sample code [ line/line-bot-sdk-python] ( https://github.com/line/line-bot-sdk-python )
237- * Openai 官方提供的 python runtime Flask 範例 [ Deploy an example with Flask] ( https://vercel.com/docs/concepts/functions/serverless-functions/runtimes/python#python-version )
243+ * Vercel 官方提供的 python runtime Flask 範例 [ Deploy an example with Flask] ( https://vercel.com/docs/concepts/functions/serverless-functions/runtimes/python#python-version )
238244
0 commit comments