10% kans op nieuwe GPT #24
+27
-2
@@ -2,6 +2,8 @@ import discord
|
|||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import random
|
import random
|
||||||
|
import requests
|
||||||
|
import asyncio
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import re
|
import re
|
||||||
|
|
||||||
@@ -283,11 +285,34 @@ class Chatbot(commands.Cog):
|
|||||||
async def respondToMessage(self, message):
|
async def respondToMessage(self, message):
|
||||||
wordsToRespondTo = message.content.strip().split()
|
wordsToRespondTo = message.content.strip().split()
|
||||||
|
|
||||||
response = self.getResponseForMessage(wordsToRespondTo)
|
response = await self.getResponseForMessage(wordsToRespondTo)
|
||||||
await message.channel.send(response)
|
await message.channel.send(response)
|
||||||
|
|
||||||
#Gets a 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
|
MAX_N_WORDS = 100 #Don't use more words than this
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user