Google Apps Script 内部档案分布
我将只会附上 主程式码(doPost) 与 chatGPT_api() 的部分
主程式原始码(doPost)
ChatGPT_ACCESS_TOKEN = // OpenAI 的 API token keysCHANNEL_ACCESS_TOKEN = // 你的 line bot tokenfunction doPost(e) { //从接收到的讯息中取出 replyToken 和发送的讯息文字资讯 var msg = JSON.parse(e.postData.contents); var replyToken = msg.events[0].replyToken; var type = msg.events[0].type; var userid = msg.events[0].source.userId; var groupid = msg.events[0].source.groupId; // 只接收纯文字的讯息 if (type == 'message' && msg.events[0].message.text != null) { var userMessage = msg.events[0].message.text; } else { return 0 } // 帮使用者输入的文字后面加入结束字元 send_msg = userMessage + "###" // 虽然这样会消耗很多的 token 数,但经过我测试,这样比起调高 max_tokens 还可以更快的得到 API 的回覆答案 // 重複的向 GPT API 传送讯息,直到没有接收到任何东西(这样即可突破 4000 token 的限制) do { response = chatGPT_api(send_msg) receive_msg = JSON.parse(response.getContentText())["choices"][0]["text"] send_msg = send_msg + receive_msg check_end = receive_msg.length == 0 console.log(send_msg) } while (!check_end) // 把讯息过筛不需要的换行字元后用LINE传回给使用者 reply = send_msg.replace(userMessage, "").replace("###", "") console.log(reply) while (reply[0] == "\n") { reply = reply.replace("\n", "") } reply_message(replyToken, [{ 'type': 'text', 'text': reply }]) // reply_message(replyToken, reply_flex(reply)) // 预留使用flex传送讯息的程式码}
chatGPT_api()
// 可以自行改动各项参数function chatGPT_api(message) { return UrlFetchApp.fetch('https://api.openai.com/v1/engines/text-davinci-003/completions', { 'method': 'post', 'headers': { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + ChatGPT_ACCESS_TOKEN, }, 'payload': JSON.stringify({ temperature: 0.9, max_tokens: 256, top_p: 1, frequency_penalty: 2, presence_penalty: 0.6, prompt: message, stop: ["###"], }), })}
程式码(网址)
部分简单重複的内容就不在这边说明,但我都放在连结里面https://script.google.com/d/1LdBtvb8nhSLnjpw0Goqr6Zyk4Ixl_QFDU3Hlkw7Z7gAIPEk8eUBaUSY7/edit?usp=sharing
参考资料
全部都是
这光头歪国人他教我的
How to create GPT-3 apps in Google Sheets – Free Tutorial
另外当初在做的时候也有看到其他有趣的创作者,给大家参考
国内大神 memochou1993 做的超强 LINE BOT (这四篇必看)
GPT AI Assistant
[ 分享 ] 如何创建类似 ChatGPT 的 Line Bot 聊天机器人 !
[ 分享 ] 真的是 ChatGPT ! Line Bot 4.0 聊天机器人升级版 !
快速建立AI + LINEBOT 聊天机器人 【GPT + Linebot串接】 [免写程式]国外大神 Debug 神器
ChatGPT Adrenaline无痛使用 ChatGPT (不受 API KEY 限制)
Lightweight version of ChatGPT
C# 无痛使用 ChatGPT其他应用
如何开发一个「LINE Bot 群组聊天摘要生成器」
最后
由于 OpenAI 所开放的 API 在三个月内只有100K的令牌(token)可以使用,又加上我自己玩一玩就已经用掉三分之一了,所以我若大家有想要玩的,可以自己 copy 我的 code 来创作喔!~~ (若以上有任何的错误都欢迎留言跟我说我会非常感谢你的(ノ>ω<)ノ
【GPT-3 LINE BOT】 系列
(1) 介绍 ChatGPT & GPT-3
(2) 玩坏 ChatGPT LINE BOT
(3) 创建属于自己的 ChatGPT LINE BOT
(4) 来人啊~ 上程式码 啦~~
(5) 同场加映:介绍 Hugging Face 及 Meta AI BlenderBot
(6) 同场加映:Hugging Face 串接 LINE BOT
(7) 同场加映:用 Python & Google Apps Script 玩 Hugging Face
接案 (☛´∀`*)☛ LINE ID:albert20699