File size: 1,555 Bytes
fbe3ac4
d859c3e
d8d8be1
 
d859c3e
d8d8be1
 
7bf65ec
d8d8be1
318ff7b
d8d8be1
 
 
 
 
 
 
 
adbd41e
d8d8be1
 
 
 
 
 
 
 
 
d93fe74
318ff7b
 
ee9ba92
d8d8be1
fbe3ac4
 
318ff7b
 
d8d8be1
 
fbe3ac4
ee9ba92
d8d8be1
318ff7b
 
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
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()