aboutsummaryrefslogtreecommitdiffstats
path: root/cogs/ai.py
blob: 80e83902b4a5945f6736ff127be02beb00b83c74 (plain) (blame)
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
import os
import discord
from discord.ext import commands
import logging
import requests
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()

        
        url = "https://openrouter.ai/api/v1/chat/completions"
        headers = {
                "Authorization": f"Bearer {os.getenv('OPENROUTER_API_KEY')}",
                "Content-Type": "application/json",
         }
        payload = {
             "model": "cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
             "messages": [
                 {
                     "role": "system",
                     "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."
                 },
                 {
                     "role": "user",
                     "content": text
                 }
             ],

         }
        response = requests.post(url=url, headers=headers, json=payload)
        response_data = response.json()
        logger.info(response_data)
        if not response_data["choices"]:
            await ctx.send_followup("bot siem zesroł")
        else:
            response_text = response_data["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))