Spaces:
Runtime error
Runtime error
import discord | |
# from transformers import AutoModelForQuestionAnswering, AutoTokenizer, pipeline | |
from transformers import AutoModelForCausalLM, AutoTokenizer | |
# from transformers import pipeline | |
import os | |
from dotenv import load_dotenv | |
# Lite mode | |
# from transformers import AutoTokenizer, AutoModelForQuestionAnswering | |
# model_name = "deepset/roberta-base-squad2" | |
# nlp = pipeline('question-answering', model=model_name, tokenizer=model_name) | |
# tokenizer = AutoTokenizer.from_pretrained(name,) | |
# model = AutoModelForQuestionAnswering.from_pretrained(name) | |
# nlp = pipeline('question-answering', model=model_name, tokenizer=model_name) | |
#load_dotenv() | |
# TODO | |
# Add chat history to DialoGPT for context | |
## Initialize models | |
# Question Answering | |
# model_name = "deepset/roberta-base-squad2" | |
# nlp = pipeline('question-answering', model=model_name, tokenizer=model_name) | |
# Conversational | |
convo_tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-large") | |
convo_model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-large") | |
# Summarizer | |
# summarizer = pipeline("summarization", model="facebook/bart-large-cnn") | |
print('Models and tokenizers successfully loaded') | |
# Get Discord client | |
client = discord.Client() | |
## Event Handlers | |
async def on_ready(): | |
print('We have logged in as {0.user}'.format(client)) | |
status = "We have logged in" | |
async def on_message(message): | |
if message.author == client.user: | |
return | |
if message.content.startswith('$ping'): | |
await message.channel.send('pong') | |
print(message.author) | |
print(message.author.name) | |
print(message.author.avatar) | |
if message.content.startswith('$help'): | |
await message.channel.send('List of stable commands: ') | |
await message.channel.send('COMMANDS') | |
await message.channel.send('List of nightly commands: ') | |
await message.channel.send('COMMANDS') | |
if message.content.startswith('$q'): | |
question = message.content[4::] | |
if(len(question) == 0): | |
await message.channel.send("I didn't get that.") | |
return | |
else: | |
print(question) | |
QA_input = { | |
'question': 'Why is model conversion important?', | |
'context': 'The option to convert models between FARM and transformers gives freedom to the user and let people easily switch between frameworks.' | |
} | |
res = nlp(QA_input) | |
ans = res['answer'] | |
score = res['score'] | |
await message.channel.send(ans) | |
await message.channel.send('score: ' + score) | |
# if message.content.startswith('$q'): | |
# question = message.content[4::] | |
# if(len(question) == 0): | |
# await message.channel.send("I didn't get that.") | |
# return | |
# else: | |
# print(question) | |
# QA_input = { | |
# 'question': 'Why is model conversion important?', | |
# 'context': 'The option to convert models between FARM and transformers gives freedom to the user and let people easily switch between frameworks.' | |
# } | |
# res = nlp(QA_input) | |
# ans = res['answer'] | |
# score = res['score'] | |
# await message.channel.send(ans) | |
# await message.channel.send('score: ' + score) | |
# if message.content.startswith('$TLDR'): | |
# query = message.content[6::] | |
# if(len(query) < 2): | |
# messages = [message.content async for message in message.channel.history(limit=30)] | |
# messages_str = ".".join(messages) | |
# summary = summarizer(messages_str, max_length=130, min_length=30, do_sample=False) | |
# await message.channel.send('Summary: ' + summary[0]['summary_text']) | |
# elif(len(query) < 35): | |
# await message.channel.send('Too short to summarize.') | |
# else: | |
# summary = summarizer(query, max_length=130, min_length=30, do_sample=False) | |
# await message.channel.send('Summary: ' + summary[0]['summary_text']) | |
# if message.content.startswith('$talk'): | |
# chat = message.content[6::] | |
# if(len(chat) == 0): | |
# await message.channel.send("I didn't get that.") | |
# return | |
# else: | |
# print(chat) | |
# input_ids = convo_tokenizer.encode(chat + convo_tokenizer.eos_token, return_tensors='pt') | |
# return_ids = convo_model.generate(input_ids, max_length=1000, pad_token_id=convo_tokenizer.eos_token_id) | |
# response = "{}".format(convo_tokenizer.decode(return_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True)) | |
# await message.channel.send(response) | |
client.run(str(os.environ.get('TOKEN'))) | |
# client.run(str(os.getenv('TOKEN'))) |