File size: 2,601 Bytes
cc21f11
a8d7146
cc21f11
a8d7146
cc21f11
 
940be83
cc21f11
a8d7146
 
 
cc21f11
 
a8d7146
 
 
cc21f11
a8d7146
cc21f11
196ae1d
cc21f11
a8d7146
 
cc21f11
a8d7146
 
 
 
 
196ae1d
 
a8d7146
196ae1d
 
a8d7146
cc21f11
 
795049f
cc21f11
 
0303b9b
 
cc21f11
0303b9b
cc21f11
 
96bc60c
 
 
 
 
 
 
 
 
 
 
 
cc21f11
940be83
 
 
 
 
 
 
 
 
 
cc21f11
 
 
 
0303b9b
55f43e1
31ecf39
196ae1d
cc21f11
 
 
e997719
196ae1d
cc21f11
245e92a
55f43e1
cc21f11
 
0303b9b
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
89
import gradio as gr
import tempfile  
from ocr_engine import extract_text_from_image
from pdf_reader import extract_text_chunks_from_pdf
from summarizer import summarize_text

def process_input(pdf, image, manual_text, mode, model_name):
    if pdf is not None:
        text_chunks = extract_text_chunks_from_pdf(pdf)
        if any("[ERROR]" in chunk for chunk in text_chunks):
            return text_chunks[0], "", None
    elif image is not None:
        text = extract_text_from_image(image)
        if "[ERROR]" in text:
            return text, "", None
        text_chunks = [text]
    elif manual_text.strip() != "":
        text_chunks = [manual_text]
    else:
        return "Lütfen bir giriş türü seçin.", "", None

    all_text = "\n\n".join(text_chunks)
    summaries = []

    for chunk in text_chunks:
        summary = summarize_text(chunk, mode, model_name)
        summaries.append(summary)

    full_summary = "\n\n".join(summaries)

    temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".txt", mode='w', encoding='utf-8')
    temp_file.write(full_summary)
    temp_file.close()

    return all_text, full_summary, temp_file.name

with gr.Blocks() as demo:
    gr.Markdown("## VizSum")

    with gr.Row():
        pdf_input = gr.File(label="PDF Yükle", file_types=[".pdf"])
        image_input = gr.Image(type="filepath", label="Görsel Yükle")

    manual_input = gr.Textbox(lines=5, label="Metni Manuel Gir")

    mode_selector = gr.Dropdown(
    choices=[
        "Teknik Özet",
        "Sade Anlatım",
        "Eleştir ve Değerlendir",
        "Başlık Çıkar",
        "Not Formatı",
        "Karma Özet"  # 🔥 Yeni mod
    ],
    label="Özetleme Modu",
    value="Teknik Özet"
)


    model_selector = gr.Dropdown(
        choices=[
            "anthropic/claude-3-haiku",
            "openai/gpt-3.5-turbo",
            "mistralai/mistral-7b-instruct"
        ],
        label="Dil Modeli",
        value="anthropic/claude-3-haiku"
    )

    with gr.Row():
        submit_btn = gr.Button("Özetle")

    with gr.Row():
        text_output = gr.Textbox(label="Giriş Metni")
        copy_status = gr.Textbox(visible=False)
        summary_output = gr.Textbox(label="AI Özeti", lines=10, show_copy_button=True)
        summary_file = gr.File(label="Özeti İndir", interactive=True)

    submit_btn.click(
        fn=process_input,
        inputs=[pdf_input, image_input, manual_input, mode_selector, model_selector],
        outputs=[text_output, summary_output, summary_file]
    )



if __name__ == "__main__":
    demo.launch(share=True)