10% kans op nieuwe GPT
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-03-18 17:48:36 +01:00
parent 2baa32055d
commit 4f55dd9dd6
+27 -2
View File
@@ -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