Bot_WA / plugins /ia.js
YoBatM's picture
Create ia.js
10e17a7 verified
raw
history blame
3.28 kB
import wweb from 'whatsapp-web.js'
var model ={
chat:process.env.chat_model,
imagine:process.env.imagine_model
}
function buildResponse(message){
return {"messages":[message],
"previewToken":null,
"codeModelMode":true,
"agentMode":{
"mode":true,
"id":model.chat,
"name":"CUSTOM"},
"trendingAgentMode":{},
"isMicMode":false,
"isChromeExt":false,
"githubToken":null,
"clickedAnswer2":false,
"clickedAnswer3":false,
"clickedForceWebSearch":false,
"visitFromDelta":null
}
}
function getMessage(content,special,role){
return {"id":special.generateAlphanumericString(10),
"content":content,
"role":(role==undefined)?"user":role
}
}
async function chat(msg,text,special){
let response=buildResponse(getMessage(text,special))
let r=await fetch("https://blackbox.ai/api/chat",{
method:"post",
headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.3"},
body:JSON.stringify(response)
});
let co=await r.text();
await special.delay(5000);
await msg.reply(co.split("$@$").slice(2).join('$@$'));
}
async function imagine(msg,args,special){
let seed=special.between(1,100000);
let prompt=args.shift();
let negative_prompt=(args.length>0)?args[0]:"";
const sampler="DPM++ 2M Karras";
let params={
new:true,
model: model.imagine,
sampler: sampler,
cfg:13,
steps:20,
seed:seed,
prompt:prompt,
negative_prompt:negative_prompt
};
const url = "https://api.prodia.com/generate?"+new URLSearchParams(params).toString();
let resp=await fetch(url);
let response=await resp.json();
await special.delay(5000);
let r = await fetch("https://api.prodia.com/job/"+response.job);
let s=await r.json();
while(s.status!="succeeded"){
await special.delay(500);
r = await fetch("https://api.prodia.com/job/"+response.job);
s=await r.json();
}
const rurl="https://images.prodia.xyz/"+response.job+".png";
const pic =await wweb.MessageMedia.fromUrl(rurl);
await special.delay(1000);
await msg.reply(pic);
}
export default function(client,_,special){
client.on('message_create',async msg=>{
let texto=msg.body.toString()
if(!texto.startsWith(special.prefix) || !msg.fromMe) return;
let args=texto.slice(special.prefix.length).split(" ");
let command=args.shift();
args=args.join(" ").split("|");
if(command=="ia"){
await chat(msg,args.join('|'),special);
}else if(command=="imagine"){
await imagine(msg,args,special);
}
});
return {name:"IA External",
comandos:[
{name:"ia",description:"Interactua con una ia",args:["[texto]"]},
{name:"imagine",description:"Imagina",args:["[prompt]","(negative prompt)"]}
]}
}