Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -2,42 +2,57 @@ import gradio as gr
|
|
2 |
from text_analysis import generate_lesson_from_transcript as generate_lesson_from_transcript_logic
|
3 |
from utils import process_large_text
|
4 |
from pdfminer.high_level import extract_text # PDF'den metne dönüştürme
|
|
|
|
|
5 |
|
6 |
def clean_text_for_education(text):
|
7 |
-
"""Metni temizler (
|
8 |
return text.strip()
|
9 |
|
10 |
def pdf_to_text(pdf_path):
|
11 |
-
"""PDF'
|
12 |
-
extracted_text = extract_text(pdf_path.name) # .name kullanmak yerine
|
13 |
cleaned_text = clean_text_for_education(extracted_text) # Metni temizle
|
14 |
return cleaned_text
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
def generate_lesson(doc_text=None, pdf_file=None):
|
17 |
try:
|
18 |
if pdf_file:
|
19 |
# PDF dosyasından metni al
|
20 |
doc_text = pdf_to_text(pdf_file)
|
21 |
|
22 |
-
# Metni
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
-
#
|
26 |
-
|
27 |
|
28 |
# Eğitim materyali olarak bir dosya oluştur
|
29 |
lesson_file_name = "lesson_output.txt"
|
30 |
with open(lesson_file_name, "w") as file:
|
31 |
-
file.write(
|
32 |
|
33 |
# Metin ve dosya çıktısı döndürüyoruz
|
34 |
-
return
|
35 |
|
36 |
except Exception as e:
|
37 |
return f"Error occurred: {str(e)}", None
|
38 |
|
39 |
gr.Interface(
|
40 |
fn=generate_lesson,
|
41 |
-
inputs=[gr.Textbox(label="Input Text"), gr.File(label="Upload PDF")],
|
42 |
outputs=[gr.Textbox(), gr.File()],
|
43 |
).launch()
|
|
|
2 |
from text_analysis import generate_lesson_from_transcript as generate_lesson_from_transcript_logic
|
3 |
from utils import process_large_text
|
4 |
from pdfminer.high_level import extract_text # PDF'den metne dönüştürme
|
5 |
+
import nltk
|
6 |
+
from nltk.tokenize import word_tokenize
|
7 |
|
8 |
def clean_text_for_education(text):
|
9 |
+
"""Metni temizler (gereksiz boşluklar vb.)"""
|
10 |
return text.strip()
|
11 |
|
12 |
def pdf_to_text(pdf_path):
|
13 |
+
"""PDF'den metne dönüştürür ve temizler"""
|
14 |
+
extracted_text = extract_text(pdf_path.name) # .name kullanmak yerine dosya yolunu alacak şekilde düzelt
|
15 |
cleaned_text = clean_text_for_education(extracted_text) # Metni temizle
|
16 |
return cleaned_text
|
17 |
|
18 |
+
def chunk_text(text, max_chunk_size=512):
|
19 |
+
"""Metni belirli bir uzunluğa (token sayısı) göre parçalara ayırır"""
|
20 |
+
tokens = word_tokenize(text)
|
21 |
+
chunks = [tokens[i:i + max_chunk_size] for i in range(0, len(tokens), max_chunk_size)]
|
22 |
+
return [' '.join(chunk) for chunk in chunks]
|
23 |
+
|
24 |
def generate_lesson(doc_text=None, pdf_file=None):
|
25 |
try:
|
26 |
if pdf_file:
|
27 |
# PDF dosyasından metni al
|
28 |
doc_text = pdf_to_text(pdf_file)
|
29 |
|
30 |
+
# Metni parçalara ayır
|
31 |
+
text_chunks = chunk_text(doc_text)
|
32 |
+
|
33 |
+
# Eğitim materyali oluşturmak için her bir parça üzerinde işlem yap
|
34 |
+
all_generated_text = []
|
35 |
+
for chunk in text_chunks:
|
36 |
+
processed_text = process_large_text(chunk)
|
37 |
+
generated_text = generate_lesson_from_transcript_logic(processed_text)
|
38 |
+
all_generated_text.append(generated_text)
|
39 |
|
40 |
+
# Tüm parçaları birleştir
|
41 |
+
final_generated_text = '\n'.join(all_generated_text)
|
42 |
|
43 |
# Eğitim materyali olarak bir dosya oluştur
|
44 |
lesson_file_name = "lesson_output.txt"
|
45 |
with open(lesson_file_name, "w") as file:
|
46 |
+
file.write(final_generated_text)
|
47 |
|
48 |
# Metin ve dosya çıktısı döndürüyoruz
|
49 |
+
return final_generated_text, lesson_file_name
|
50 |
|
51 |
except Exception as e:
|
52 |
return f"Error occurred: {str(e)}", None
|
53 |
|
54 |
gr.Interface(
|
55 |
fn=generate_lesson,
|
56 |
+
inputs=[gr.Textbox(label="Input Text", max_length=1024), gr.File(label="Upload PDF")],
|
57 |
outputs=[gr.Textbox(), gr.File()],
|
58 |
).launch()
|