Spaces:
Sleeping
Sleeping
File size: 1,819 Bytes
9d4d16d 259fbba 9d4d16d e24b2e8 d8fabd6 ddc39bb 9d4d16d 5c59d4c 9d4d16d 2a72467 e24b2e8 2a72467 e24b2e8 9d4d16d 2a72467 9d4d16d 259fbba 2a72467 e24b2e8 9d4d16d e24b2e8 9d4d16d 2a72467 e24b2e8 259fbba 9d4d16d 2a72467 9d4d16d 259fbba 9d4d16d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
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")
summarizer = pipeline("summarization", model="ptt5-base-portuguese-vocab-finetuned-summarization-V2")
# 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=512, 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()
|