Thiagovpds's picture
Update app.py
40c2cdb verified
import gradio as gr
import pandas as pd
from sentence_transformers import SentenceTransformer
# Função para processar a planilha
def processar_planilha(planilha_caminho):
try:
# Carregar a planilha Excel
df = pd.read_excel(planilha_caminho)
# Verificar se a coluna IA Analysis existe
if "IA Analysis" not in df.columns:
return "Erro: A coluna 'IA Analysis' não foi encontrada na planilha."
# Extrair as frases da coluna e remover valores nulos
frases = df["IA Analysis"].dropna().tolist()
if not frases:
return "Erro: A coluna 'IA Analysis' está vazia."
# Vetorizar as frases usando SentenceTransformer
modelo = SentenceTransformer('all-MiniLM-L6-v2')
vetores = modelo.encode(frases)
# Adicionar os vetores à planilha como uma nova coluna
df["Vetores"] = [str(vetor.tolist()) for vetor in vetores]
# Salvar a nova planilha
output_path = "planilha_processada.xlsx"
df.to_excel(output_path, index=False)
return f"Processamento concluído! Foram analisadas {len(frases)} frases.", output_path
except Exception as e:
return f"Erro ao processar a planilha: {str(e)}", None
# Interface gráfica
with gr.Blocks() as demo:
# Entrada de arquivo
planilha_input = gr.File(label="Carregar Planilha (Excel)", type="filepath")
# Botão para enviar
submit_button = gr.Button("Enviar")
# Botão para limpar
clear_button = gr.Button("Limpar")
# Saída de texto
output_message = gr.Textbox(label="Mensagem de Status")
# Botão para download da planilha processada
download_button = gr.File(label="Baixar Planilha Processada")
# Ação do botão Enviar
def process_and_return(planilha_caminho):
mensagem, output_path = processar_planilha(planilha_caminho)
if output_path:
return mensagem, output_path
return mensagem, None
submit_button.click(
fn=process_and_return,
inputs=[planilha_input],
outputs=[output_message, download_button],
)
# Ação do botão Limpar
clear_button.click(
fn=lambda: ("", None),
inputs=[],
outputs=[output_message, download_button],
)
# Executa a interface
if __name__ == "__main__":
demo.launch()