From 797d350e64d317c5aca5009c1b153ebb9ec0fdbd Mon Sep 17 00:00:00 2001 From: Tuxedoun <163103023+Tuxedoun@users.noreply.github.com> Date: Wed, 20 Mar 2024 22:19:00 +0800 Subject: [PATCH] Update ai.js --- scripts/cmds/ai.js | 123 +++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 59 deletions(-) diff --git a/scripts/cmds/ai.js b/scripts/cmds/ai.js index a5b28818..e83235d1 100644 --- a/scripts/cmds/ai.js +++ b/scripts/cmds/ai.js @@ -1,61 +1,66 @@ -const axios = require('axios'); - -const GPT_API_URL = 'https://sandipapi.onrender.com/gpt'; -const PREFIXES = ['ai']; -const horizontalLine = "━━━━━━━━━━━━━━━"; - -module.exports = { - config: { - name: "ai", - version: 1.0, - author: "OtinXSandip", - longDescription: "AI", - category: "ai", - guide: { - en: "{p} questions", - }, - }, - onStart: async function () { - // Initialization logic if needed - }, - onChat: async function ({ api, event, args, message }) { - try { - const prefix = PREFIXES.find((p) => event.body && event.body.toLowerCase().startsWith(p)); - - if (!prefix) { - return; // Invalid prefix, ignore the command - } - - const prompt = event.body.substring(prefix.length).trim(); - - if (!prompt) { - const defaultMessage = getCenteredHeader("") + "\n" + horizontalLine + "\nProvide a Question\n" + horizontalLine; - await message.reply(defaultMessage); - return; - } - - const answer = await getGPTResponse(prompt); - - // Adding header and horizontal lines to the answer - const answerWithHeader = getCenteredHeader("") + "\n" + horizontalLine + "\n" + answer + "\n" + horizontalLine; - - await message.reply(answerWithHeader); - } catch (error) { - console.error("Error:", error.message); - // Additional error handling if needed - } - } -}; - -function getCenteredHeader(header) { - const totalWidth = 32; // Adjust the total width as needed - const padding = Math.max(0, Math.floor((totalWidth - header.length) / 2)); - return " ".repeat(padding) + header; +const { getPrefix, getStreamFromURL, uploadImgbb } = global.utils; +async function ai({ message: m, event: e, args: a, usersData: u }) { + var p = [`${await getPrefix(e.threadID)}${this.config.name}`, +`${this.config.name}` +/*"ai","Athena" +*you can add more prefix here +*/ +]; + if (p.some(b => a[0].toLowerCase().startsWith(b))) { +try { +let prompt = ""; +if (e.type === "message_reply" && e.messageReply.attachments && e.messageReply.attachments[0]?.type === "photo") { + const b = await uploadImgbb(e.messageReply.attachments[0].url); +prompt = a.slice(1).join(" ") + ' ' + b.image.url; +} else { + prompt = a.slice(1).join(" "); } - -async function getGPTResponse(prompt) { - // Implement caching logic here - - const response = await axios.get(`${GPT_API_URL}?prompt=${encodeURIComponent(prompt)}`); - return response.data.answer; + var __ = [{ id: e.senderID, tag: await u.getName(e.senderID) }]; + const r = await require("axios").post(`https://test-ai-ihc6.onrender.com/api`, { + prompt: prompt, + apikey: "GayKey-oWHmMb1t8ASljhpgSSUI", + name: __[0]['tag'], + id: __[0]['id'], + }); +var _ = r.data.result.replace(/{name}/g, __[0]['tag']).replace(/{pn}/g, p[0]); + if (r.data.av) { + if (Array.isArray(r.data.av)) { + const avs = r.data.av.map(url => getStreamFromURL(url)); + const avss = await Promise.all(avs); + m.reply({ + body: _, + mentions: __, + attachment: avss + }); + } else { + m.reply({ + body: _, + mentions: __, +attachment: await getStreamFromURL(r.data.av) + }); + } + } else { +m.reply({ +body: _, +mentions: __ + }); + } + } catch (error) { + m.reply("Error " + error); + } + } } +module.exports = { +config: { + name: "ai", +aliases: ["Athena"], +version: 1.6, +author: "Jun", +role: 0, + shortDescription: "An AI that can do various tasks", + guide: "{pn} ", + category: "AI", + }, + onStart: function() {}, + onChat: ai +};