From 4f55dd9dd6cde9b491bcabb44a56eb39889e4a70 Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Sat, 18 Mar 2023 17:48:36 +0100 Subject: [PATCH 1/5] 10% kans op nieuwe GPT --- Chatbot.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/Chatbot.py b/Chatbot.py index dc03b7b..caee4d3 100644 --- a/Chatbot.py +++ b/Chatbot.py @@ -2,6 +2,8 @@ import discord from discord.ext import commands import numpy as np import random +import requests +import asyncio from datetime import datetime import re @@ -283,11 +285,34 @@ class Chatbot(commands.Cog): async def respondToMessage(self, message): wordsToRespondTo = message.content.strip().split() - response = self.getResponseForMessage(wordsToRespondTo) + response = await self.getResponseForMessage(wordsToRespondTo) await message.channel.send(response) #Gets a response - def getResponseForMessage(self, wordsToRespondTo): + async def getResponseForMessage(self, wordsToRespondTo): + if random.random() > 0.9: + try: + # GPT request moet echt even in een non-blocking executortje, anders loopt de hele boel vast + return await self.bot.loop.run_in_executor(None,self.getResponseForMessageOnline, wordsToRespondTo) + except: + pass + else: + return self.getResponseForMessageLocal(wordsToRespondTo) + + def translateTo(self, language, text): + req = requests.post('http://gpt.hoekveen.net/translate', json={"text": text, "source_lang": "auto", "target_lang": language}) + print(req.json()) + return req.json()["translations"][0]["text"] + + def getResponseForMessageOnline(self, wordsToRespondTo): + text = self.translateTo("en", " ".join(wordsToRespondTo)) + req = requests.post('http://gpt.hoekveen.net/complete', json={"prompt": text, "max_tokens": 60}) + print(req.json()) + respons = req.json()["text"] + respons = respons[0:respons.rfind(".")+1] # Alles weg na de laatste punt + return self.translateTo("nl", respons) + + def getResponseForMessageLocal(self, wordsToRespondTo): MAX_N_WORDS = 100 #Don't use more words than this -- 2.52.0 From a80ac831f0b66647b46761fd2c554e9abc10247b Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Sat, 18 Mar 2023 22:48:36 +0100 Subject: [PATCH 2/5] fixes regression for reageer --- Chatbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Chatbot.py b/Chatbot.py index caee4d3..d827bf2 100644 --- a/Chatbot.py +++ b/Chatbot.py @@ -269,7 +269,7 @@ class Chatbot(commands.Cog): except: pass - response = self.getResponseForMessage(wordsToRespondTo) + response = await self.getResponseForMessage(wordsToRespondTo) await ctx.channel.send(response) # Calculate probabilities and pick a next word from a word pair dict: -- 2.52.0 From a142b299f4910c4349d61ebe0b194a571b8292a5 Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Sat, 18 Mar 2023 23:01:11 +0100 Subject: [PATCH 3/5] haal channels uit dotenv --- Chatbot.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Chatbot.py b/Chatbot.py index d827bf2..61c2afa 100644 --- a/Chatbot.py +++ b/Chatbot.py @@ -4,6 +4,7 @@ import numpy as np import random import requests import asyncio +import os from datetime import datetime import re @@ -63,15 +64,13 @@ class Chatbot(commands.Cog): self.pmLast = datetime.now() await self.learnFromMessagesInChannel(message.channel, 1) await self.respondToMessage(message) - elif message.channel.id == self.bot.hdChannels["belangrijk"]: #don't abuse the "belangrijk" channel - pass else: a = random.randint(0,999) # probablity if a < 40: await self.learnFromMessagesInChannel(message.channel, 10) if "stroop" in message.content.lower(): a = a / 20 # significantly increase the chance of responding if somebody talks about him. - if message.channel.id == self.bot.hdChannels["shitpost"] and a < 40: #shitpost channel + if message.channel.id == os.getenv('STROOP_CHANNEL_SHITPOST') and a < 40: #shitpost channel await self.respondToMessage(message) elif a < 10: #all other channels await self.respondToMessage(message) -- 2.52.0 From 301314bec834b88e0d8d77c5245dec816ee1c25c Mon Sep 17 00:00:00 2001 From: Jan-Paul van Osta Date: Sat, 18 Mar 2023 23:25:17 +0100 Subject: [PATCH 4/5] fixes regression for mentions --- Chatbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Chatbot.py b/Chatbot.py index 61c2afa..140a6af 100644 --- a/Chatbot.py +++ b/Chatbot.py @@ -47,7 +47,7 @@ class Chatbot(commands.Cog): "hmm?", "JA WAT?", "Godve...Godver-fucking-domme! Wie de fuck heeft me zojuist gepingt? Wie de fuck heeft de ballen om mij te pingen?! Als ik jou vind hè, ik ram je helemaal de tyfus in. Ik ga je kapot maken. Welke breincel in jouw hoofd dacht dat het grappig was om mij te pingen? Noem jij dat 'grappig'? Ik zal je godverdomme iets laten zien wat grappig is, ja. Ik neuk je moeder zo hard dat ze van me gaat houden, godverdomme. Dat krijg je er van als je me pingt, vuile teringleijer. Jouw soort mag wat mij betreft uitsterven. Weet je, ik ga je helemaal geen aandacht meer geven. Je mag de tering krijgen, en daar blijft het bij. Kutjong.", - self.getResponseForMessage("stroopwafel") + self.getResponseForMessageLocal("stroopwafel") ] try: MENTIONED_RESPONSES.append("Wat mot je, " + random.choice(self.bot.get_cog("Shitpost").insult) + "?") -- 2.52.0 From cf89809c301e6e089d0ec60f564f1cb7d7c6bb60 Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Sat, 18 Mar 2023 23:37:42 +0100 Subject: [PATCH 5/5] fallback to local on error --- Chatbot.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Chatbot.py b/Chatbot.py index 140a6af..7f3b981 100644 --- a/Chatbot.py +++ b/Chatbot.py @@ -294,9 +294,8 @@ class Chatbot(commands.Cog): # GPT request moet echt even in een non-blocking executortje, anders loopt de hele boel vast return await self.bot.loop.run_in_executor(None,self.getResponseForMessageOnline, wordsToRespondTo) except: - pass - else: - return self.getResponseForMessageLocal(wordsToRespondTo) + pass # Door naar local call + return self.getResponseForMessageLocal(wordsToRespondTo) def translateTo(self, language, text): req = requests.post('http://gpt.hoekveen.net/translate', json={"text": text, "source_lang": "auto", "target_lang": language}) -- 2.52.0