case_study / app.py
GurgenGulay's picture
Update app.py
249f6d5 verified
raw
history blame
1.9 kB
import logging
import gradio as gr
from utils import process_large_text, generate_lesson_from_transcript as generate_lesson_from_transcript_logic
from pdfminer.high_level import extract_text
# Logging Ayarları
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__)
def pdf_to_text(pdf_path):
try:
logger.info(f"Extracting text from PDF: {pdf_path}")
return extract_text(pdf_path)
except Exception as e:
logger.error(f"Error while extracting text from PDF: {str(e)}")
raise ValueError(f"PDF extraction error: {str(e)}")
def generate_lesson(doc_text=None, pdf_file=None):
try:
if pdf_file and doc_text:
logger.warning("Both text and PDF file provided. Ignoring text input.")
return "Please provide either a text input or a PDF file, not both.", None
if pdf_file:
logger.info(f"Processing uploaded PDF file: {pdf_file.name}")
doc_text = pdf_to_text(pdf_file.name)
logger.info("Processing the document text with general model.")
general_model_output = process_large_text(doc_text)
logger.info("Refining the output with fine-tuned model.")
refined_output = refine_with_fine_tuned_model(general_model_output)
output_path = "/tmp/refined_output.txt"
with open(output_path, "w") as file:
file.write(refined_output)
logger.info(f"Lesson generated successfully. Output saved to: {output_path}")
return refined_output, gr.File(output_path)
except Exception as e:
logger.error(f"Error occurred while generating lesson: {str(e)}")
return f"Error occurred: {str(e)}", None
gr.Interface(
fn=generate_lesson,
inputs=[gr.Textbox(label="Input Text"), gr.File(label="Upload PDF")],
outputs=["text", "file"],
).launch()