File size: 1,617 Bytes
1b999bf
7f96312
d8d8be1
d859c3e
1b999bf
 
 
 
 
 
7bf65ec
7f96312
318ff7b
d8d8be1
 
 
 
 
 
1b999bf
adbd41e
7f96312
d8d8be1
 
1b999bf
 
 
 
 
 
d8d8be1
 
d93fe74
318ff7b
 
ee9ba92
7f96312
fbe3ac4
 
318ff7b
 
1b999bf
 
fbe3ac4
ee9ba92
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
46
47
48
from transformers import pipeline, AutoModelForQuestionAnswering, AutoTokenizer
import gradio as gr
from PyPDF2 import PdfReader

# Modell und Tokenizer für Fragebeantwortung laden
model_name = "deepset/roberta-base-squad2"
model = AutoModelForQuestionAnswering.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

qa_pipeline = pipeline("question-answering", model=model, tokenizer=tokenizer)

# Funktion zum Extrahieren von Text aus der PDF
def extract_text_from_pdf(pdf_path):
    reader = PdfReader(pdf_path)
    text = ""
    for page in reader.pages:
        text += page.extract_text()
    return text

# Funktion für die Fragebeantwortung
def chatbot_response(pdf_path, question):
    # PDF-Text extrahieren
    context = extract_text_from_pdf(pdf_path)
    
    # Frage beantworten
    try:
        result = qa_pipeline(question=question, context=context)
        return result['answer']
    except Exception as e:
        return f"Fehler bei der Beantwortung: {e}"

# 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
interface = gr.Interface(
    fn=chatbot_response,
    inputs=[pdf_input, question_input],
    outputs=response_output,
    title="PDF-Fragebeantwortung auf Deutsch",
    description="Lade eine PDF-Datei hoch und stelle Fragen zu ihrem Inhalt. Antworten basieren nur auf den PDF-Inhalten."
)

if __name__ == "__main__":
    interface.launch()