File size: 3,894 Bytes
8a0bc2e 58c201b 202a93d 58c201b e603607 f82ba90 8a0bc2e 940edd3 54389af 58c201b 8a0bc2e 54389af 58c201b 54389af 8a0bc2e 58c201b 54389af 58c201b 54389af 8a0bc2e 54389af 8a0bc2e 54389af 940edd3 58c201b 8a0bc2e 54389af 58c201b 54389af 7f192d1 e603607 8a0bc2e e603607 54389af 458a3b3 58c201b 8a0bc2e 458a3b3 58c201b 8a0bc2e eab20c1 69f0ed1 202a93d 69f0ed1 202a93d 69f0ed1 202a93d 69f0ed1 8a0bc2e eab20c1 f7d01ae 54389af 8a0bc2e 54389af 8a0bc2e ea3dcdc 08fb6c7 58c201b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
import os
import threading
import discord
import gradio as gr
from audioldm2 import audioldm2_create
from deepfloydif import deepfloydif_stage_1, deepfloydif_stage_2_react_check
from discord import app_commands
from discord.ext import commands
from falcon import continue_falcon, try_falcon
from musicgen import music_create
from codellama import continue_codellama, try_codellama
# HF GUILD SETTINGS
MY_GUILD_ID = 1077674588122648679 if os.getenv("TEST_ENV", False) else 879548962464493619
MY_GUILD = discord.Object(id=MY_GUILD_ID)
DISCORD_TOKEN = os.environ.get("DISCORD_TOKEN", None)
class Bot(commands.Bot):
"""This structure allows slash commands to work instantly."""
def __init__(self):
super().__init__(command_prefix="/", intents=discord.Intents.all())
async def setup_hook(self):
await self.tree.sync(guild=discord.Object(MY_GUILD_ID))
print(f"Synced slash commands for {self.user}.")
client = Bot()
@client.event
async def on_ready():
print(f"Logged in as {client.user} (ID: {client.user.id})")
print("------")
@client.hybrid_command(
name="falcon",
with_app_command=True,
description="Enter some text to chat with the bot! Like this: /falcon Hello, how are you?",
)
@app_commands.guilds(MY_GUILD)
async def falcon(ctx, prompt: str):
"""Command that begins a new conversation with Falcon"""
try:
await try_falcon(ctx, prompt)
except Exception as e:
print(f"Error: {e}")
@client.hybrid_command(
name="codellama",
with_app_command=True,
description="Enter a prompt to generate code!",
)
@app_commands.guilds(MY_GUILD)
async def codellama(ctx, prompt: str):
"""Audioldm2 generation"""
try:
await try_codellama(ctx, prompt)
except Exception as e:
print(f"Error: (app.py){e}")
@client.event
async def on_message(message):
"""Checks channel and continues Falcon conversation if it's the right Discord Thread"""
try:
await continue_falcon(message)
await continue_codellama(message)
except Exception as e:
print(f"Error: {e}")
@client.hybrid_command(
name="deepfloydif",
with_app_command=True,
description="Enter a prompt to generate an image! Can generate realistic text, too!",
)
@app_commands.guilds(MY_GUILD)
async def deepfloydif(ctx, prompt: str):
"""DeepfloydIF stage 1 generation"""
try:
await deepfloydif_stage_1(ctx, prompt, client)
except Exception as e:
print(f"Error: {e}")
@client.hybrid_command(name="musicgen", with_app_command=True, description="Enter a prompt to generate music!")
@app_commands.guilds(MY_GUILD)
async def musicgen(ctx, prompt: str):
"""Generates music based on a prompt"""
try:
await music_create(ctx, prompt)
except Exception as e:
print(f"Error: {e}")
@client.hybrid_command(
name="audioldm2",
with_app_command=True,
description="Enter a prompt to generate music!",
)
@app_commands.guilds(MY_GUILD)
async def audioldm2(ctx, prompt: str):
"""Audioldm2 generation"""
try:
await audioldm2_create(ctx, prompt)
except Exception as e:
print(f"Error: (app.py){e}")
@client.event
async def on_reaction_add(reaction, user):
"""Checks for a reaction in order to call dfif2"""
try:
await deepfloydif_stage_2_react_check(reaction, user)
except Exception as e:
print(f"Error: {e} (known error, does not cause issues, low priority)")
def run_bot():
client.run(DISCORD_TOKEN)
threading.Thread(target=run_bot).start()
"""This allows us to run the Discord bot in a Python thread"""
with gr.Blocks() as demo:
gr.Markdown("""
# Huggingbots Server
This space hosts the huggingbots discord bot.
Currently supported models are Falcon and DeepfloydIF
""")
demo.queue(concurrency_count=100)
demo.queue(max_size=100)
demo.launch()
|