Spaces:
Runtime error
Runtime error
File size: 3,200 Bytes
64c0a70 163cb0f 35afe03 ce8e249 64c0a70 163cb0f 35afe03 163cb0f ce8e249 8d65670 ce8e249 a332ad5 ce8e249 64c0a70 d5cafb1 6ce83a3 560beaa d460d4c 560beaa 6ce83a3 560beaa 6ce83a3 0304d73 6ce83a3 0304d73 33b63e4 6ce83a3 64c0a70 f330131 64c0a70 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
import gradio as gr
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
import torch
import transformers
from transformers import pipeline
import re
# import HTML
from pypdf import PdfReader
def remove_references(text):
text = re.sub(r'\[\d+\]', '', text) ##[ref]
text = re.sub(r'\[https?://[^\[\]]+\s[^\[\]]+\]', '', text) ##hyperlink with text
text = re.sub(r'\[https?://[^\[\]]+\]', '', text) ##just the hyperlink
# text = html.unescape(text)
text = re.sub(r'\s+', ' ', text).strip() ##clear out the white spaces
return text
def extract_text_from_pdf(file_path):
reader = PdfReader(file_path)
text = ""
for page in reader.pages[2:]:
text += page.extract_text() + "\n"
return text
def model(model_name):
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForQuestionAnswering.from_pretrained(model_name,return_dict = False)
model_pipeline = pipeline(
"question-answering",
model = model,
tokenizer = tokenizer
)
return model_pipeline
def qa_result(context, question, file_path):
model_name = "timpal0l/mdeberta-v3-base-squad2"
pipe = model(model_name)
if file_path is not None:
context = extract_text_from_pdf(file_path)
result = pipe(question=question, context=context)
answered = result['answer']
text = remove_references(answered)
elif len(context) == 0 and len(question) == 0:
text = "Որպեսզի ես կարողանամ քեզ օգնել, ինձ պիտի տրամադրես համապատասխան տեքստն ու հարցերը։"
elif len(context) == 0:
text = "Ես չեմ կարողանամ քեզ օգնել եթե ինձ չտրամադրես տեքստը"
elif len(question) == 0:
text = "Ես չեմ կարողանամ քեզ օգնել եթե ինձ չտաս հարցդ"
else:
# if file_path is not None:
# # File was uploaded, extract text from the file
# context = extract_text_from_pdf(file_path)
# else: No file uploaded, use the provided context as is
result = pipe(question=question, context=context)
answered = result['answer']
text = remove_references(answered)
text = text.replace('(', '', 1)
text = text.replace(',', '', len(text)-1)
return text.capitalize()
theme = gr.themes.Soft().set(
body_background_fill='*background_fill_secondary',
body_text_color_subdued='*body_text_color',
body_text_color_subdued_dark='*chatbot_code_background_color'
)
def add_file(history, file):
history = history + [((file.name,), None)]
return history
app = gr.Interface(
fn=qa_result,
btn=gr.UploadButton("📁", file_types=[".pdf", ".csv", ".doc"], ),
inputs=['textbox', 'text', 'file'],
outputs='textbox',
title='Ողջու՛յն։ Ես քո արհեստական բանականությամբ օգնականն եմ',
theme=theme,
description='Տու՛ր ինձ տեքստ, ու տեքստին վերաբերող հարցեր, ու ես կօգնեմ քեզ պատասխանել հարցերին'
)
app.launch(inline=False) |