10% kans op nieuwe GPT #24
+30
-7
@@ -2,6 +2,9 @@ import discord
|
||||
from discord.ext import commands
|
||||
import numpy as np
|
||||
import random
|
||||
import requests
|
||||
import asyncio
|
||||
import os
|
||||
from datetime import datetime
|
||||
import re
|
||||
|
||||
@@ -44,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) + "?")
|
||||
@@ -61,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)
|
||||
@@ -267,7 +268,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:
|
||||
@@ -283,11 +284,33 @@ 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 # 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})
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user