| 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)"]} |
| ]} |
| } |