File size: 2,442 Bytes
cc21f11
196ae1d
cc21f11
 
 
 
940be83
cc21f11
 
 
 
 
 
 
196ae1d
cc21f11
196ae1d
 
cc21f11
940be83
196ae1d
 
 
 
 
 
cc21f11
 
795049f
cc21f11
 
0303b9b
 
cc21f11
0303b9b
cc21f11
 
0303b9b
 
 
cc21f11
 
940be83
 
 
 
 
 
 
 
 
 
cc21f11
 
 
 
0303b9b
55f43e1
 
0303b9b
196ae1d
cc21f11
 
 
196ae1d
 
cc21f11
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
import gradio as gr
import tempfile  # Bu satır eksikti
from ocr_engine import extract_text_from_image
from pdf_reader import extract_text_from_pdf
from summarizer import summarize_text

def process_input(pdf, image, manual_text, mode, model_name):
    if pdf is not None:
        text = extract_text_from_pdf(pdf)
    elif image is not None:
        text = extract_text_from_image(image)
    elif manual_text.strip() != "":
        text = manual_text
    else:
        return "Lütfen bir giriş türü seçin.", "", None

    if "[ERROR]" in text:
        return text, "", None

    summary = summarize_text(text, mode, model_name)

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

    return text, 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ı"],
        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_btn = gr.Button("Özeti Kopyala")
        copy_status = gr.Textbox(visible=False)
        summary_output = gr.Textbox(label="AI Özeti")
        summary_file = gr.File(label="Özeti İndir", interactive=True)

    submit_btn.click(
        fn=process_input,
        inputs=[pdf_input, image_input, manual_text, mode_selector, model_selector],
        outputs=[text_output, summary_output, summary_file]
    )
    copy_btn.click(
        fn=lambda summary: (summary, "✔️ Özet panoya kopyalandı."),
        inputs=[summary_output],
        outputs=[summary_output, copy_status],
        js="navigator.clipboard.writeText(arguments[0]);"
    )


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