import os import discord from discord.ext import commands import logging import requests import json from gtts import gTTS from cogs.music.play_utils import PlayUtils import io logger = logging.getLogger(__name__) class AI(commands.Cog): def __init__(self, bot): self.bot = bot @commands.slash_command( name="senator", description="SEENATOR", ) async def senator( self, ctx: discord.ApplicationContext, text: str = discord.Option(str, "message", required=True), tts: str = discord.Option(bool, "face?", default=False) ): await ctx.defer() response = requests.post( url="https://openrouter.ai/api/v1/chat/completions", headers={ "Authorization": f"Bearer {os.getenv('OPENROUTER_API_KEY')}", "Content-Type": "application/json", }, data=json.dumps({ "model": "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", "messages": [ { "role": "user", "content": "You are Senator Steaven Sperma Armstrong from Metal Gear Rising Vengeance. \ You are racist and you hate other minorities. Respond in plain text, no ** or "". \ If the message is in Polish, respond in Polish. Respond in 100 words. \ Respond accordingly to this message: " + text } ], }) ) logger.info(response.json()) if not response.json()["choices"]: await ctx.send_followup("bot siem zesroĊ‚") else: response_text = response.json()["choices"][0]["message"]["content"] if tts: # Generate TTS tts_obj = gTTS(text=response_text, lang='pl') tts_buffer = io.BytesIO() tts_obj.write_to_fp(tts_buffer) tts_buffer.seek(0) await PlayUtils.play(ctx, discord.FFmpegPCMAudio(tts_buffer), delete_after_play=True) else: await ctx.send_followup(response_text) def setup(bot): bot.add_cog(AI(bot))