print("Started.")
import json
import os
import re
from threading import Thread
import discord
from colorama import Fore, Style
import random
from huggingface_hub import InferenceClient, login
from PIL import Image
import math
import streamlit as st
import asyncio
HF_TOKEN = os.environ["HF_TOKEN"]
login(HF_TOKEN)
SD = InferenceClient(model="stabilityai/stable-diffusion-2-1")
LLM = InferenceClient(model="openchat/openchat-3.5-0106")
def ec(x, fd="", sd=""):
matches = re.findall(re.escape(fd) + "(.*?)" + re.escape(sd), x)
matches = matches if matches else [""]
return matches
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"Logged in as {client.user}")
@client.event
async def on_message(message):
for user in message.mentions:
message.content = message.content.replace(f"<@{user.id}>",
f"@{str(user)}")
try:
msgchannel = message.channel
try:
msgchannel_name = msgchannel.name
guild = message.guild
guild_name = guild.name
except:
guild_name = "Direct"
msgchannel_name = message.author.display_name
s = f":green[{message.author}]: :white[{message.content}] :blue[{msgchannel_name}] :purple[{guild_name}]"
st.markdown(s)
if message.author == client.user:
return
sysp = """You are Lyre, a helpful discord chatbot. Respond in markdown. Your username is lyre#9828."""
try:
os.mkdir(guild_name)
with open(f"{guild_name}/{msgchannel_name}", "w") as f:
f.write(
f"GPT4 Correct system: {sysp}<|end_of_turn|>\nGPT4 Correct {message.author}: {message.content}<|end_of_turn|>"
)
except:
with open(f"{guild_name}/{msgchannel_name}", "a") as f:
n = "\n"
f.write(
f"""GPT4 Correct {message.author.name}: {message.content.strip(n)}<|end_of_turn|>"""
)
finally:
with open(f"{guild_name}/{msgchannel_name}", "r") as f:
context = f.read()
context += f"GPT4 Correct Assistant: {message.content}<|end_of_turn|>\n"
title = ec(context, "
", "")[0]
output = LLM.text_generation(context,
stop_sequences=["<|end_of_turn|>"],
max_new_tokens=4096)
with open(f"{guild_name}/{msgchannel_name}", "a") as f:
f.write(f"GPT4 Correct Assistant: {output}<|end_of_turn|>")
words = output.split()
embed = discord.Embed(title=title,
description=" ".join(words[:i * 10]).replace(
f"{title}", ""),
color=0x1E81B0)
embed.set_footer(
text=
"""Information or code generated by Lyre may not always be correct. Lyre was made by Araeyn."""
)
e = await message.reply(embed=embed)
except Exception as e:
print(Fore.RED)
print(e)
print(Style.RESET_ALL)
token = os.environ["TOKEN"]
client.run(token)