This commit is contained in:
+27
-2
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user