作者注:本专案因为作者我的免费API 额度已经用完了,然后我现在使用的是
ChatGPT Plus
,如果之后要我本人更新可能要等我哪天改用ChatGPT API 了...
现在最新的版本感谢网友@willismax 提供的PR:#17
但同样的因为我没有ChatGPT API 的额度了... 所以也没办法测就直接merge 了,
如果不能动再请大家帮忙发个Issues/PR,感谢大大们
本篇教學無經驗的新手也可學習,無須寫任何程式。
无经验预计15 ~ 20 分钟都可以完成。老手最快可能5 分钟就搞定
不需寫code
,只需去网页设定一些内容,新手15 分钟内也能建立自己的ChatGPT-Linebot免費
! ! !免费额度就很够一般使用,是heroku 不再免费后的好选择
注:ChatGPT 与gpt 是同样任务的模型,而目前透过API 只能使用到GPT-3 (本程式使用的方法)
而非ChatGPT 使用的GPT-3.5已经改为GPT-4,与最新的ChatGPT 相同,只是改为使用OpenAI API 的方式实现
主要会有四个地方要去:(這部份不看也沒關係,以下照著做就可以了!
)
去我这个专案的github repo
按下面的按钮, fork 一份档案到自己的帐号底下,等等我们会使用到
可以的話,旁邊的Star 也幫我按一下,是對創作者最大的鼓勵!
可以直接去这里,一直往下拉,找到这个按钮,并生成一个API KEY
请务必复制下来,这个KEY 我们取名为
OPENAI_API_KEY
这边熟悉的人动作应该超快,可以略过,
以下教学是针对完全没经验的新手
我们先到line developer 的首页注册一下, 注册完后,点选Messaging API。
第一次使用要创建一个新的provider 与channel, 一个provider 可以有很多channel, 「而一個channel 對應的就是一個chatbot
」, 这边以下都照自己想要的名字跟事实填就好。
在Basic Settings 的分页,往下找到channel secret
请务必复制下来,这个KEY 我们取名为
LINE_CHANNEL_SECRET
再来我们去上方,选择Messaging API 的分页, 我们先关闭一些可能会吵的东西(预设的自动回复之类的),
這邊可以順便掃一下QR code 或透過line ID ,加機器人的line 好友!
我自己是设定如下:
自動回復訊息必關!!!
」,那是line 的自动回复,不是我们要的最后,在Messaging API 的分页的最下面, 找到channel access token,点选右边发行,并把他记下来。
请务必复制下来,这个KEY 我们取名为
LINE_CHANNEL_ACCESS_TOKEN
请不要把这金钥分享给别人,别人可能会拿去作坏事! ! !
然後這邊網頁先不要關,等等還會用到!!!!
去vercel 首页,add new project
Import Git Repository,选择你刚刚fork 的专案import
选择「Environment Variables」,把我们刚刚纪录的OPENAI_API_KEY、LINE_CHANNEL_SECRET、LINE_CHANNEL_ACCESS_TOKEN 都设定至环境变数, 按下Deploy 等待一下就完成啰!
去部属完成的vercel 页面,红框处可以拿到我们要用的网址,
把這個網址複製下來,等等要用
这个网址我们也可以点开,应该会出现我们在程式预先写好的Hello, World! (应该是一个只有Hello, World! 的网页) 我们可以借此确定程式有正常的被Deploy
回到line developer 的Messaging API 分页, 将刚刚step 4-3. 的网址填入,并在后面加上「/webhook」,例如下图可以用Verify 看看有没有问题,通常应该会是写「Success 」
記得開啟下面的使用Use webhook
」这个本来是我除错用的,因为有时候回复一些怪东西会很吵, 意外得到好评,所以这个功能就被保留下来
但一段時間會自動再起動
),闭嘴后将不会对任何对话有反应。输入「说话」可再次开启对话。 参考自memochou1993/gpt-ai-assistant 的作法,下列参数也可藉由设定vercel 的环境变数来作调控。
环境变数名称 | 默认值 | 说明 |
---|---|---|
OPENAI_MODEL | text-davinci-003 | 请参考OpenAI 对model 的叙述 |
OPENAI_TEMPERATURE | 0 | 请参考OpenAI 对temperature 的叙述 |
OPENAI_FREQUENCY_PENALTY | 0 | 请参考OpenAI 对frequency_penalty 的叙述 |
OPENAI_PRESENCE_PENALTY | 0.6 | 请参考OpenAI 对presence_penalty 的叙述 |
OPENAI_MAX_TOKENS | 240 | 请参考OpenAI 对max_tokens 的叙述 |
MSG_LIST_LIMIT | 20 | prompt 参数往回参照的句数 |
INIT_LANGUAGE | zh | 决定初始语言,可设置为"zh" 或"en" |
目前基本功能都已经有了,然后我比较忙可能没空一直更新QQ
還有很多可以優化的地方,歡迎提供PR!
目前算法是「
紀錄使用者與AI 的前20句對話
」,尝试推论出下一句话应该要说什么。以达成延续话题的效果。