Přídán prahacode
This commit is contained in:
130
main.py
130
main.py
@@ -8,21 +8,30 @@ from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
|
||||
API_KEY = os.getenv("API_KEY")
|
||||
CZCHAN_LLM_KEY = os.getenv("CZCHAN_LLM_KEY")
|
||||
|
||||
bot = telebot.TeleBot(API_KEY)
|
||||
|
||||
print(API_KEY) # testžím
|
||||
|
||||
CHANCE = 1.0
|
||||
|
||||
IMAGE_FOLDER = "obruzky"
|
||||
VIDEO_EXT = (
|
||||
".mp4",
|
||||
".mov",
|
||||
".avi",
|
||||
".mkv",
|
||||
".webm",
|
||||
".3gp",
|
||||
".3gpp",
|
||||
".3g2",
|
||||
) # 3GP JE ŽRÍJSKÉ A SUDETKEŠNÍ, ZRÁDCI POUŽÍVAJÍ MPEG
|
||||
|
||||
files = os.listdir(IMAGE_FOLDER)
|
||||
|
||||
VIDEO_EXT = (".mp4", ".mov", ".avi", ".mkv", ".webm", ".3gp", ".3gpp", ".3g2") #3GP JE ŽRÍJSKÉ A SUDETKEŠNÍ, ZRÁDCI POUŽÍVAJÍ MPEG
|
||||
|
||||
# Tenhle diddy blud skenuje složku vždecke když posílá žlincerald lebkalebkalebka
|
||||
# ANX, ES'T ŽRÍJSKÝ JESENÍKEŠNÍ KÓD PŘE ZRÝDCIJI Z ČIČCICKU
|
||||
@bot.message_handler(commands=['zlincerald'])
|
||||
@bot.message_handler(commands=["zlincerald"])
|
||||
def send_random_image(message):
|
||||
files = os.listdir(IMAGE_FOLDER)
|
||||
chosen = random.choice(files)
|
||||
|
||||
path = os.path.join(IMAGE_FOLDER, chosen)
|
||||
@@ -33,6 +42,31 @@ def send_random_image(message):
|
||||
else:
|
||||
bot.send_photo(message.chat.id, media)
|
||||
|
||||
|
||||
# https://github.com/oobabooga/text-generation-webui/wiki/12-%E2%80%90-OpenAI-API#chat-completions-with-characters
|
||||
def llm_api_call(messages):
|
||||
response = requests.post(
|
||||
"https://llm.czchan.org/v1/chat/completions",
|
||||
headers={"Authorization": f"Bearer {CZCHAN_LLM_KEY}"},
|
||||
json={
|
||||
"messages": messages,
|
||||
"mode": "chat",
|
||||
"character": "David Šlinc",
|
||||
"temperature": 0.6,
|
||||
"top_p": 0.8,
|
||||
"top_k": 20,
|
||||
"min_p": 0.0,
|
||||
"presence_penalty": 1.5,
|
||||
"repetition_penalty": 1.00,
|
||||
"max_tokens": 200,
|
||||
},
|
||||
)
|
||||
|
||||
json = response.json()
|
||||
|
||||
return json["choices"][0]["message"]["content"]
|
||||
|
||||
|
||||
PHRASES_ALL = [
|
||||
"Tak uědlej JINEEJ SKUPINA VOLE TY NUDLE ČÍNSKÁ POSRANA",
|
||||
"TY KURVO POSRANA ČDJ CIGAN Z USTÍ POSEDLÝ KRETEN ZE SLOVENSKO ESL",
|
||||
@@ -59,7 +93,7 @@ PHRASES_ALL = [
|
||||
"I gonna rape you with my slovenian BWC you fucking serbian subhuman",
|
||||
"I have no friends, not online or offline\n\nI am not kidding, i can jump from my window, overdose or hang myself\nI can do it\nI gonna write a suicide note and post it on my main if that happens\nI dont care anymore",
|
||||
"Similliar o algx\nIm not Mario Kart pedo i promise",
|
||||
">Czech kuz?\n<Sort of."
|
||||
">Czech kuz?\n<Sort of.",
|
||||
]
|
||||
|
||||
PHRASES_ZLINC = [
|
||||
@@ -67,7 +101,7 @@ PHRASES_ZLINC = [
|
||||
"Ží přis upřilím",
|
||||
"UPLŽTE ŽRŽIDCE CECETKAKU",
|
||||
"es't faildoxx, ží tům nebylžím",
|
||||
"OBĽÚBENÁ BINCÁ" # nehotovží
|
||||
"OBĽÚBENÁ BINCÁ", # nehotovží
|
||||
]
|
||||
|
||||
PHRASES_SNEED = [
|
||||
@@ -77,7 +111,7 @@ PHRASES_SNEED = [
|
||||
"posedlej",
|
||||
"léky",
|
||||
"Chtěl bych být foidka ale nemůžu doe je to nemorální",
|
||||
"Posedlost s 15 letím klukem btw" # DODĚLŽI
|
||||
"Posedlost s 15 letím klukem btw", # DODĚLŽI
|
||||
]
|
||||
|
||||
PHRASES_BRIMMY = [
|
||||
@@ -87,33 +121,91 @@ PHRASES_BRIMMY = [
|
||||
"posedlej",
|
||||
"I'm not from Nová Vrchoslav 122",
|
||||
"Kek faildox",
|
||||
"Jeden měsíc mám troon arc a tohle jse stane" # taky dodělži
|
||||
"Jeden měsíc mám troon arc a tohle jse stane", # taky dodělži
|
||||
]
|
||||
|
||||
|
||||
# NSA sledovací databáze
|
||||
message_store = {}
|
||||
|
||||
|
||||
def log(message):
|
||||
message_store[message.message_id] = {
|
||||
"user_id": message.from_user.id,
|
||||
"text": message.text or message.caption,
|
||||
"reply_to": (
|
||||
message.reply_to_message.message_id if message.reply_to_message else None
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
def maybe_send(message, phrases):
|
||||
if random.random() < CHANCE:
|
||||
bot.reply_to(message, random.choice(phrases))
|
||||
message = bot.reply_to(message, random.choice(phrases))
|
||||
log(message)
|
||||
|
||||
|
||||
@bot.message_handler(commands=['czchan'])
|
||||
@bot.message_handler(commands=["czchan"])
|
||||
def cmd_czchan(message):
|
||||
maybe_send(message, PHRASES_ALL)
|
||||
|
||||
|
||||
@bot.message_handler(commands=['sneedmaster'])
|
||||
@bot.message_handler(commands=["sneedmaster"])
|
||||
def cmd_sneed(message):
|
||||
maybe_send(message, PHRASES_SNEED)
|
||||
|
||||
|
||||
@bot.message_handler(commands=['heckingemmy'])
|
||||
@bot.message_handler(commands=["heckingemmy"])
|
||||
def cmd_brimmy(message):
|
||||
maybe_send(message, PHRASES_BRIMMY)
|
||||
|
||||
|
||||
@bot.message_handler(func=lambda m: True)
|
||||
def random_reply(message):
|
||||
if random.random() < CHANCE:
|
||||
bot.reply_to(message, random.choice(PHRASES_ALL))
|
||||
@bot.message_handler(commands=["ai"])
|
||||
def cmd_ai(message):
|
||||
actualmessage = " ".join(message.text.split(" ")[1:])
|
||||
messages = [{"role": "user", "content": actualmessage}]
|
||||
|
||||
bot.polling()
|
||||
try:
|
||||
response = llm_api_call(messages)
|
||||
message = bot.reply_to(message, response)
|
||||
log(message)
|
||||
except:
|
||||
print("Kurvá pósetí")
|
||||
|
||||
|
||||
@bot.message_handler(
|
||||
func=lambda m: True,
|
||||
content_types=["text", "photo", "video", "document", "audio", "voice"],
|
||||
)
|
||||
def reply(message):
|
||||
log(message)
|
||||
|
||||
messages = []
|
||||
current_id = message.message_id
|
||||
should_reply = False
|
||||
|
||||
while current_id:
|
||||
data = message_store.get(current_id)
|
||||
|
||||
if not data:
|
||||
break
|
||||
|
||||
if data["user_id"] == bot.user.id:
|
||||
should_reply = True
|
||||
role = "assistant"
|
||||
else:
|
||||
role = "user"
|
||||
|
||||
messages.append({"role": role, "content": data["text"]})
|
||||
|
||||
current_id = data["reply_to"]
|
||||
|
||||
messages.reverse()
|
||||
|
||||
if should_reply:
|
||||
response = llm_api_call(messages)
|
||||
message = bot.reply_to(message, response)
|
||||
log(message)
|
||||
|
||||
|
||||
bot.polling()
|
||||
|
||||
Reference in New Issue
Block a user