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 def pdf_to_text(pdf_path): try: return extract_text(pdf_path) except Exception as 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: return "Please provide either a text input or a PDF file, not both.", None if pdf_file: doc_text = pdf_to_text(pdf_file.name) processed_text = process_large_text(doc_text) generated_text, output_path = generate_lesson_from_transcript_logic(processed_text) return (generated_text, gr.File(output_path)) if output_path else (generated_text, None) except Exception as 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()