Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import AutoModelForCausalLM, AutoTokenizer | |
import fitz # PyMuPDF | |
# Carregar o tokenizer e o modelo | |
tokenizer = AutoTokenizer.from_pretrained("Locutusque/gpt2-xl-conversational") | |
model = AutoModelForCausalLM.from_pretrained("Locutusque/gpt2-xl-conversational") | |
# Função para ler o PDF | |
def read_pdf(file_path): | |
doc = fitz.open(file_path) | |
text = "" | |
for page_num in range(len(doc)): | |
page = doc.load_page(page_num) | |
text += page.get_text() | |
return text | |
# Função para gerar respostas a partir do texto do PDF | |
def generate_response_from_pdf(pdf_file, max_length=200, temperature=0.7, top_k=50, top_p=0.95): | |
# Lê o conteúdo do PDF | |
pdf_text = read_pdf(pdf_file.name) | |
# Gerar prompt em português | |
prompt = f"Texto do PDF: {pdf_text}\nResposta em português:" | |
# Gera a resposta usando o texto do PDF como prompt | |
inputs = tokenizer(prompt, return_tensors="pt") | |
outputs = model.generate( | |
inputs.input_ids, | |
max_length=max_length, | |
temperature=temperature, | |
top_k=top_k, | |
top_p=top_p, | |
num_return_sequences=1 | |
) | |
response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
return response | |
# Interface do Gradio | |
iface = gr.Interface( | |
fn=generate_response_from_pdf, | |
inputs=gr.inputs.File(label="Carregue um PDF"), | |
outputs="text", | |
title="GPT-2 Conversational com PDF em Português" | |
) | |
if __name__ == "__main__": | |
iface.launch() | |