File size: 1,616 Bytes
e328f2e
ebb447c
d7e8c26
 
e72eae0
8653d61
e328f2e
 
 
ebb447c
 
cbdaed8
e328f2e
cbdaed8
e328f2e
ebb447c
e328f2e
ebb447c
e328f2e
06a6d14
 
 
 
 
 
 
 
 
 
 
 
b30cab0
ebb447c
e328f2e
ebb447c
 
 
 
 
 
 
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
import logging
import gradio as gr
from utils import pdf_to_text, generate_lesson_from_transcript, refine_with_fine_tuned_model, extract_text_from_pdf
from fine_tuning import fine_tune_model


logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__)

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.")
        processed_text = process_large_text(doc_text)
        
        logger.info("Generating lesson from transcript.")
        generated_text, output_path = generate_lesson_from_transcript_logic(processed_text)

        if output_path:
            logger.info(f"Lesson generated successfully. Output saved to: {output_path}")
            return generated_text, gr.File(output_path)
        else:
            logger.info("Lesson generated successfully, but no output file created.")
            return generated_text, None

    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()