import gradio as gr from extraction_preprocessing import extract_and_preprocess from nlp_processing import process_text_for_kpis def process_document(file_obj): try: # Se o arquivo for PDF, extraímos tanto as sentenças quanto as tabelas sentences, tables = extract_and_preprocess(file_obj.name) # Junta as sentenças em um único texto para a extração de KPIs full_text = " ".join([s["text"] for s in sentences]) result = process_text_for_kpis(full_text) return result except Exception as e: return {"error": f"Erro ao processar o documento: {e}"} demo = gr.Interface( fn=process_document, inputs=gr.File(label="Carregue seu documento (PDF)"), outputs="json", title="Textract - Processamento de Documentos", description="Faça o upload de um documento PDF para extrair KPIs utilizando o modelo fine-tuned." ) if __name__ == "__main__": demo.launch()