Spaces:
Sleeping
Sleeping
import gradio as gr | |
import PyPDF2 | |
import re | |
def extrair_texto_pdf(): | |
with open("dados-cdu.pdf", "rb") as pdf_file: | |
pdf_reader = PyPDF2.PdfReader(pdf_file) | |
text = "" | |
for page in pdf_reader.pages: | |
text += page.extract_text() | |
return text | |
def consultar_cdu(palavra_chave): | |
texto_base = extrair_texto_pdf() | |
palavras_chave_encontradas = [] | |
linhas = texto_base.split("\n") | |
for linha in linhas: | |
if palavra_chave.lower() in linha.lower(): | |
palavras_chave_encontradas.append(linha) | |
return palavras_chave_encontradas | |
def gerar_cdu(palavras_chave): | |
palavras_chave = [palavra.strip() for palavra in palavras_chave.split(",")] | |
resultados = {} | |
for palavra_chave in palavras_chave: | |
cdu_encontrada = consultar_cdu(palavra_chave) | |
cdu_formatada = [re.search(r"\[(.*?)\]", cdu).group(1) for cdu in cdu_encontrada] | |
resultados[palavra_chave] = cdu_formatada | |
return resultados | |
# Interface Gradio | |
input_text = gr.inputs.Textbox(label="Inserir palavras-chave separadas por vírgulas") | |
button_label = "Gerar CDU" | |
output_text = gr.outputs.Textbox(label="Resultado") | |
def generate_cdu(palavras_chave): | |
if palavras_chave: | |
resultados = gerar_cdu(palavras_chave) | |
formatted_resultados = {} | |
for palavra_chave, cdu_encontrada in resultados.items(): | |
formatted_resultados[palavra_chave] = "\n".join(["CDU: " + cdu for cdu in cdu_encontrada]) | |
return formatted_resultados | |
else: | |
return {} | |
title = "Gerador de CDU" | |
description = "Insira palavras-chave separadas por vírgulas e clique em 'Gerar CDU' para obter a classificação relacionada." | |
gr.Interface(fn=generate_cdu, inputs=input_text, outputs=output_text, title=title, description=description).launch() | |