import gradio as gr import fitz # PyMuPDF # import requests # Não precisamos mais do requests from transformers import pipeline # Carrega o modelo de resumo (você vai inserir o nome correto aqui) summarizer = pipeline("summarization", model="stjiris/t5-portuguese-legal-summarization") # Para usar um modelo local (após baixar): # summarizer = pipeline("summarization", model="./pasta_do_modelo") def extract_text_from_pdf(pdf_path): """Extrai o texto do PDF usando PyMuPDF. Recebe o caminho do arquivo (string). """ text = "" with fitz.open(pdf_path) as doc: # Abre o arquivo usando o caminho for page in doc: text += page.get_text() return text def summarize_pdf(pdf_file): # Recebe o objeto gr.File """Faz o upload, extrai o texto e resume o PDF.""" try: if pdf_file is None: # Verifica se um arquivo foi enviado return "Por favor, faça o upload de um arquivo PDF." # text = extract_text_from_pdf(pdf_file) # NÃO - passar o objeto gr.File text = extract_text_from_pdf(pdf_file.name) # Passa o NOME do arquivo temporário # Resume o texto. Ajuste max_length e min_length conforme necessário. summary = summarizer(text, max_length=1028, min_length=50, do_sample=False)[0]["summary_text"] return summary except Exception as e: return f"Erro ao processar o PDF: {e}" # Cria a interface Gradio iface = gr.Interface( fn=summarize_pdf, inputs=gr.File(label="Faça o upload do PDF"), # Botão de upload outputs=gr.Textbox(label="Resumo do PDF"), title="Resumidor de PDF", description="Faça o upload de um PDF para obter um resumo.", ) iface.launch()