gerador-cdu / app.py
itacaiunas's picture
Update app.py
76c9ebd
raw
history blame
1.81 kB
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()