2023-02-16
以下用問 ChatGPT 寫的
問 ChatGPT:
Google Apps Script 使用 telegram bot 連接 ChatGPT API 回應至 telegram 房間
ChatGPT 回:
#1 要使用 Google Apps Script 连接 ChatGPT API 并将回复发送到 Telegram 群组,您需要完成以下步骤:
#2 创建一个 Telegram bot 并获取 bot 的 token。
#3 在 Google Apps Script 编辑器中创建一个新项目,并将项目命名为您喜欢的名称。
在代码编辑器中添加以下代码,以使用 Telegram bot API 进行身份验证并从 Telegram 群组接收消息:
var token = 'YOUR_TELEGRAM_BOT_TOKEN';
var telegramUrl = 'https://api.telegram.org/bot' + token;
function getUpdates() {
var url = telegramUrl + '/getUpdates';
var response = UrlFetchApp.fetch(url);
var content = JSON.parse(response.getContentText());
if (content.ok == true) {
var message = content.result[content.result.length-1].message;
var chat_id = message.chat.id;
var text = message.text;
if (text) {
return {text: text, chat_id: chat_id};
}
}
return null;
}
#4 添加以下代码以连接到 ChatGPT API 并获取 ChatGPT 的回复:
function getResponse(text) {
var url = 'https://api.openai.com/v1/engine/your_engine_name/completions';
var apiKey = 'YOUR_OPENAI_API_KEY';
var prompt = text + '\nGPT Response:';
var data = {
"prompt": prompt,
"temperature": 0.7,
"max_tokens": 100,
"top_p": 1,
"frequency_penalty": 0,
"presence_penalty": 0
};
var options = {
'method': 'post',
'headers': {
'Authorization': 'Bearer ' + apiKey,
'Content-Type': 'application/json'
},
'payload': JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url, options);
var content = JSON.parse(response.getContentText());
return content.choices[0].text.trim();
}
这将使用 OpenAI 的 API 进行自然语言处理,并返回 ChatGPT 的响应
#5 最后,添加以下代码以向 Telegram 群组发送 ChatGPT 的回复:
function sendResponse(text, chat_id) {
var url = telegramUrl + '/sendMessage?chat_id=' + chat_id + '&text=' + text;
var response = UrlFetchApp.fetch(url);
return response;
}
这将使用 Telegram bot API 向特定的 Telegram 群组发送回复。
#6. 为了使脚本定期检查是否有新的消息需要回复,您可以使用 setInterval() 函数,例如:
function start() {
setInterval(function() {
var updates = getUpdates();
if (updates) {
var response = getResponse(updates.text);
sendResponse(response, updates.chat_id);
}
}, 1000);
}
此函数将每隔 1 秒钟检查是否有新的消息,并自动回复。您可以根据需要更改此间隔时间。
#7. 最后,单击“运行”按钮以启动您的脚本,并确保您已将其部署为 Web 应用程序(选择“发布”>“部署为 Web 应用程序”)。这将为您提供一个 URL,
這邊我加上改一下 (用房間號與前導來判斷)
function doPost(e) {
var token = '1272333:AAH6d_w1222OtqZsdddZQ1Sh_vbj840';
var chat_id = '-31712236';
var chat = JSON.parse(e.postData.contents);
// 是文字格式時
if(chat.message) {
// 房間號的正確時處理
if (chat.message.chat.id == chat_id){
// 切割字串
var message = chat.message.text;
var messageArray = new Array();
var messageArray = message.split(" ");
// 前個為 /hi 時處理
if (messageArray[0] == "/hi") {
var msg = "收到訊息查詢第 : "+messageArray[1];
}
}
}
}
自己組…. 這不寫了