Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import pipeline | |
from PyPDF2 import PdfReader | |
import os | |
# Setze das T5-small Modell für die Frage-Antwort-Pipeline | |
qa_model = pipeline("question-answering", model="t5-small") | |
# Funktion zur Extraktion von Text aus einer PDF-Datei | |
def extract_text_from_pdf(pdf_path): | |
# Lade die PDF und extrahiere den Text | |
reader = PdfReader(pdf_path) | |
text = "" | |
for page in reader.pages: | |
text += page.extract_text() | |
return text | |
# Funktion zur Beantwortung der Frage basierend auf dem extrahierten PDF-Text | |
def chatbot_response(pdf_path, question): | |
# Extrahiere den Text aus der PDF | |
context = extract_text_from_pdf(pdf_path) | |
# Generiere eine Antwort basierend auf der Frage und dem extrahierten Kontext | |
result = qa_model(question=question, context=context) | |
return result['answer'] | |
# Gradio-Interface erstellen | |
pdf_input = gr.File(label="PDF-Datei hochladen", type="filepath") | |
question_input = gr.Textbox(label="Frage eingeben", placeholder="Stelle eine Frage zu dem PDF-Dokument") | |
response_output = gr.Textbox(label="Antwort") | |
# Gradio-Interface für die Benutzeroberfläche | |
interface = gr.Interface( | |
fn=chatbot_response, | |
inputs=[pdf_input, question_input], | |
outputs=response_output, | |
title="PDF-Fragebeantwortung mit T5 und Transformers", | |
description="Lade eine PDF-Datei hoch und stelle Fragen zu ihrem Inhalt. Das System verwendet T5, um die passende Antwort zu finden." | |
) | |
# Gradio-Interface starten | |
if __name__ == "__main__": | |
interface.launch() | |