ai-bot/aibot.py
insert username here df5d850e6d
lets start slashing!
2022-04-23 20:25:26 -04:00

139 lines
5 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from textgenrnn import textgenrnn
import disnake
from disnake.ext import commands
import regex as re
import functools
from aitextgen import aitextgen
import subprocess
from chatterbot import ChatBot
textgen = textgenrnn('insert3_weights.hdf5')
ai = aitextgen()
bot = ChatBot(
'insert3',
storage_adapter='chatterbot.storage.SQLStorageAdapter',
logic_adapters=[
'chatterbot.logic.BestMatch'
],
database_uri='sqlite:///database.sqlite3'
)
client = commands.Bot(command_prefix='.', test_guilds=[732793772697583623])
boton = True
def add_to_train(clean_content):
with open("train.txt", "a") as train:
train.write(f"{clean_content} \n")
@client.event
async def on_message(message):
await client.process_commands(message)
urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*(),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',message.content.lower())
if not message.attachments:
if boton:
if message.content.lower().startswith("$"):
pass
elif urls:
pass
elif message.author.bot:
pass
elif message.content.lower().startswith("p!"):
pass
elif message.content.lower().startswith("_"):
pass
elif message.channel.id == 817397092376117248:
pass
elif message.channel.id == 779060858449821716:
pass
elif message.content.lower().startswith("."):
pass
elif message.content.lower().startswith("?"):
pass
elif message.content.lower().startswith("!"):
pass
elif message.content.lower().startswith(""):
pass
elif message.content.lower().startswith("--"):
pass
else:
writing_function = functools.partial(add_to_train, message.clean_content)
await client.loop.run_in_executor(None, writing_function)
if message.channel.id == 934533774249713664:
bot_response = bot.get_response(message.clean_content)
await message.channel.send(bot_response)
@client.slash_command(description="get a quote from the ai")
async def aiquote(inter):
await inter.response.defer()
try:
textgen.generate_to_file('insert3.txt', n=1)
with open("insert3.txt") as f:
quote = f.read()
await inter.response.send_message(content=f"{quote}")
except:
textgen.generate_to_file('insert3.txt', n=1)
with open("insert3.txt") as f:
quote = f.read()
await inter.edit_original_message(content=f"{quote}")
@client.slash_command(description="give the ai a prompt to finish off")
async def aiprompt(inter, prompt: str):
await inter.response.defer()
endmsg = subprocess.check_output(['python3','promptai.py',f'{prompt}'])
non = endmsg.replace("%1B[1m".encode(), "**".encode())
nona = non.replace("%1B[0m".encode(), "**".encode())
nor = nona.replace("".encode(), "".encode())
nora = nor.replace("".encode(), "".encode())
norx = nora.replace("\x1b[1m".encode(), "".encode())
nore = norx.replace("\\x1b[1m".encode(), "".encode())
nor1 = nore.replace("\x1b[0m".encode(), "".encode())
nor2 = nor1.replace("\\x1b[0m".encode(), "".encode())
finalmsg = nor2.decode("utf-8")
print(finalmsg)
await inter.edit_original_message(content=f"{finalmsg}")
@client.command()
async def aiquote(ctx):
try:
textgen.generate_to_file('insert3.txt', n=1)
with open("insert3.txt") as f:
quote = f.read()
await ctx.send(quote)
except:
textgen.generate_to_file('insert3.txt', n=1)
with open("insert3.txt") as f:
quote = f.read()
await ctx.send(quote)
@client.command()
async def aiprompt(ctx):
prompt = ctx.message.content[10:]
endmsg = subprocess.check_output(['python3','promptai.py',f'{prompt}'])
non = endmsg.replace("%1B[1m".encode(), "**".encode())
nona = non.replace("%1B[0m".encode(), "**".encode())
nor = nona.replace("".encode(), "".encode())
nora = nor.replace("".encode(), "".encode())
norx = nora.replace("\x1b[1m".encode(), "".encode())
nore = norx.replace("\\x1b[1m".encode(), "".encode())
nor1 = nore.replace("\x1b[0m".encode(), "".encode())
nor2 = nor1.replace("\\x1b[0m".encode(), "".encode())
finalmsg = nor2.decode("utf-8")
print(finalmsg)
await ctx.send(finalmsg)
@client.command()
async def aidel(ctx):
await ctx.message.delete()
try:
textgen.generate_to_file('insert3.txt', n=1)
with open("insert3.txt") as f:
quote = f.read()
await ctx.send(quote)
except:
textgen.generate_to_file('insert3.txt', n=1)
with open("insert3.txt") as f:
quote = f.read()
await ctx.send(quote)
client.run('bottoken')