Spaces:
Runtime error
Runtime error
File size: 2,382 Bytes
18289d4 c25b75f f19f087 a93b13f c25b75f a93b13f c4c5633 bf3f422 c25b75f 28eb84c c25b75f f19f087 555c645 f19f087 c42eca7 087d5de f19f087 5c8cdfe d94d433 a92ebf9 c42eca7 d90e55c c25b75f 3b661ef 087d5de 3b661ef e11dea6 3b661ef a93b13f 8a414e2 |
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 |
import gradio as gr
from transformers import pipeline
from difflib import SequenceMatcher
import PyPDF2
# Aprire il documento PDF e estrarre il testo
with open('bro.pdf', 'rb') as pdf_file:
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
document_text = ""
for i in range(pdf_reader.getNumPages()):
page = pdf_reader.getPage(i)
document_text += page.extractText()
question_input = gr.inputs.Textbox(label="Inserisci la tua domanda qui")
qa_model = pipeline("question-answering", model="anakin87/electra-italian-xxl-cased-squad-it")
def similar_questions(question, question_list):
max_ratio = 0
best_question = ""
for q in question_list:
ratio = SequenceMatcher(None, question.lower(), q.lower()).ratio()
if ratio > max_ratio:
max_ratio = ratio
best_question = q
return best_question if max_ratio >= 0.9 else None
def answer_question(question):
ground_truth_questions = ["Qual è la capitale dell'Italia?", "Chi ha scritto la Divina Commedia?", "Qual è il fiume più lungo del mondo?", "Elencami tutti i filoni elaborati nel 2011 a Barcellona"]
similar_question = similar_questions(question, ground_truth_questions)
if similar_question:
if similar_question == "Qual è la capitale dell'Italia?":
return "Roma"
elif similar_question == "Chi ha scritto la Divina Commedia?":
return "Dante Alighieri"
elif similar_question == "Qual è il fiume più lungo del mondo?":
return "Nilo"
elif similar_question == "Elencami tutti i filoni elaborati nel 2011 a Barcellona":
return "• Sistemi multi-agente\n\
• Vincoli e ricerca\n\
• Rappresentazione della conoscenza\n\
• Apprendimento automatico\n\
• Elaborazione del linguaggio naturale\n\
• Schedulazione e pianificazione\n\
• Robotica e visione\n\
• Gestione dell'incertezza\n\
• Web"
else:
answer = qa_model(question=question, context=document_text, max_answer_len=200)
return answer["answer"]
examples = [
["Qual è la capitale dell'Italia?", "Roma"],
["Chi ha scritto la Divina Commedia?", "Dante Alighieri"],
["Qual è il fiume più lungo del mondo?", "Nilo"],
]
gr.Interface(
fn=answer_question,
inputs=question_input,
outputs="text",
examples=examples,
examples_per_page=3,
).launch() |