srochaeduardo's picture
Update app.py
d61301d verified
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()