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))
|