Spaces:
Runtime error
Runtime error
import tensorflow as tf | |
import gradio as gr | |
## importing necessary libraries | |
from transformers import AutoTokenizer, TFAutoModelForQuestionAnswering | |
tokenizer = AutoTokenizer.from_pretrained("bert-large-uncased-whole-word-masking-finetuned-squad") | |
model = TFAutoModelForQuestionAnswering.from_pretrained("bert-large-uncased-whole-word-masking-finetuned-squad",return_dict=False) | |
from transformers import pipeline | |
nlp = pipeline("question-answering", model=model, tokenizer=tokenizer) | |
context = "My name is Hema Raikhola, i am a data scientist and machine learning engineer." | |
question = "what is my profession ?" | |
result = nlp(question = question, context=context) | |
print(f"QUESTION: {question}") | |
print(f"ANSWER: {result['answer']}") | |
# creating the function | |
def func(context, question): | |
result = nlp(question = question, context=context) | |
return result['answer'] | |
example_1 = "(1) Kanisha,Preeti,Hema and Shaksham are the team members.They are working on a science project" | |
qst_1 = "who are the team members?" | |
example_2 = "(2) Natural Language Processing (NLP) allows machines to break down and interpret human language. It's at the core of tools we use every day – from translation software, chatbots, spam filters, and search engines, to grammar correction software, voice assistants, and social media monitoring tools." | |
qst_2 = "What is NLP used for?" | |
# for visual QA | |
from transformers import ViltProcessor, ViltForQuestionAnswering | |
def getResult(query, image): | |
# prepare image + question | |
#image = Image.open(BytesIO(base64.b64decode(base64_encoded_image))) | |
text = query | |
processor = ViltProcessor.from_pretrained( | |
"dandelin/vilt-b32-finetuned-vqa") | |
model = ViltForQuestionAnswering.from_pretrained( | |
"dandelin/vilt-b32-finetuned-vqa") | |
# prepare inputs | |
encoding = processor(image, text, return_tensors="pt") | |
## forward pass | |
outputs = model(**encoding) | |
logits = outputs.logits | |
idx = logits.argmax(-1).item() | |
print("Predicted answer:", model.config.id2label[idx]) | |
return model.config.id2label[idx] | |
#for youtube video summarization | |
from transformers import pipeline | |
from youtube_transcript_api import YouTubeTranscriptApi | |
import gradio as gr | |
def summarize(Youtube_Video_Link): | |
video_id = Youtube_Video_Link.split("=")[1] | |
try: | |
transcript = YouTubeTranscriptApi.get_transcript(video_id) | |
summarizer = pipeline('summarization',model='facebook/bart-large-cnn') | |
input_text = "" | |
for i in transcript: | |
input_text += ' ' + i['text'] | |
num_iters = int(len(input_text)/1000) | |
summarized_text = [] | |
for i in range(0, num_iters + 1): | |
start = 0 | |
start = i * 1000 | |
end = (i + 1) * 1000 | |
print("input text \n" + input_text[start:end]) | |
out = summarizer(input_text[start:end]) | |
out = out[0] | |
out = out['summary_text'] | |
print("Summarized text\n"+out) | |
summarized_text.append(out) | |
output_text=' '.join(summarized_text) | |
return output_text | |
except: | |
return "Some Error has occurred either with Video link passed is invalid or No Captions present for this video" | |
title = "YouTube Live Video Summarization" | |
examples = [("https://www.youtube.com/watch?v=zKvd1JwJ4Po"),("https://www.youtube.com/watch?v=9izcbNYmP8M"),] | |
description = "Get YouTube Video Summarization. Just Enter the YouTube Video link below. Make sure Video has Captions and it is not very long as Model Computation time will Increase." | |
Youtube_Video_Link = gr.Textbox("Input YouTube Link here (Note: This will take time if passed a long video)", show_label=False) | |
App= gr.Interface(fn=summarize, inputs=Youtube_Video_Link, outputs="text", examples=examples,description=description, title=title,) | |
## finished youtube video summarization | |
# creating the interface | |
iface = gr.Interface(fn=getResult, inputs=[ | |
"text", gr.Image(type="pil")], outputs="text") | |
# creating the interface | |
app = gr.Interface(fn=func, | |
inputs = ['textbox', 'text'], | |
outputs = gr.Textbox( lines=10), | |
title = 'Question Answering bot', | |
description = 'Input context and question, then get answers!', | |
examples = [[example_1, qst_1], | |
[example_2, qst_2]], | |
theme = "darkhuggingface", | |
Timeout =120, | |
allow_flagging="manual", | |
flagging_options=["incorrect", "ambiguous", "offensive", "other"], | |
).queue() | |
# launching the apps | |
gr.TabbedInterface([iface,app,App],["Visual QA","Text QA","Video Summarization"]).launch() | |