Membuat chatbot whatsapp terintegrasi dengan Chat GPT dan Google Gemini
link chatgpt : https://chatgpt.com/
link google gemini : https://gemini.google.com/app
link api key chatgpt : https://platform.openai.com/settings/profile?tab=api-keys
link api key google gemini : https://aistudio.google.com/app/apikey
tool :
wa api gateway : https://whacenter.com
google script : https://script.google.com
appscript :
function doPost(e) {
var data = JSON.parse(e.postData.contents);
var number = data.from;
var message = data.message.toLowerCase();
if(message.includes("chatgpt")){
var results = getChatGPTResponse(message);
sendWaText(number,results);
} else if(message.includes("gemini")) {
var results = getGeminiResponse(message);
sendWaText(number,results);
} else {
null
}
return true
}
var idDevice = "xxx";
function sendWaText(number,message){
var formdata = {
"device_id" : ""+idDevice,
"number" : ""+number,
"message" : ""+message
}
var requestOptions = {
method: 'POST',
'contentType':'application/json',
'payload':JSON.stringify(formdata),
redirect: 'follow'
};
var response = UrlFetchApp.fetch("https://app.whacenter.com/api/send", requestOptions);
Logger.log(response)
}
function getGeminiResponse(prompt) {
if (!prompt) {
return "No prompt provided.";
}
const apiUrl = "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=xxx"; // Ganti dengan API Key Gemini kamu
const payload = { contents: [{ parts: [{ text: prompt }] }] };
const options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload),
'muteHttpExceptions': true
};
try {
const response = UrlFetchApp.fetch(apiUrl, options);
const json = JSON.parse(response.getContentText());
if (json.error) {
Logger.log("Error: " + json.error.message);
return "Error from Google Gemini: " + json.error.message;
}
const chatResponse = json.candidates[0].content.parts[0].text;
return chatResponse;
} catch (error) {
Logger.log("Error: " + error.message);
return "There was an error";
}
}
const OPENAI_API_KEY = 'xxx'; // Ganti dengan API Key OPEN AI kamu
function getChatGPTResponse(prompt) {
if (!prompt) {
return "No prompt provided.";
}
const apiUrl = 'https://api.openai.com/v1/chat/completions';
const payload = {
"model": "gpt-3.5-turbo",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
],
"max_tokens": 150
};
const options = {
'method': 'post',
'contentType': 'application/json',
'headers': {
'Authorization': 'Bearer ' + OPENAI_API_KEY
},
'payload': JSON.stringify(payload),
'muteHttpExceptions': true
};
try {
const response = UrlFetchApp.fetch(apiUrl, options);
const json = JSON.parse(response.getContentText());
if (json.error) {
Logger.log("Error: " + json.error.message);
return "Error from OpenAI: " + json.error.message;
}
const chatResponse = json.choices[0].message.content.trim();
return chatResponse;
} catch (error) {
Logger.log("Error: " + error.message);
return "There was an error contacting the OpenAI API.";
}
}