Spaces:
Sleeping
Sleeping
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() | |