from transformers import AutoModelForSequenceClassification, AutoTokenizer, TextClassificationPipeline import gradio as gr import random model_id = "hedtorresca/Multilingual-MiniLM-L12-H384-fine-tunning2" model = AutoModelForSequenceClassification.from_pretrained(model_id) tokenizer = AutoTokenizer.from_pretrained(model_id, return_dict=True ) pipe = TextClassificationPipeline(model=model, tokenizer=tokenizer, add_special_tokens=True, max_length= 512, truncation= True) # Definir la función de inferencia def classify_message(ues_detallada, medio_de_comunicacion, asunto_o_copy): combined = f"{ues_detallada.upper()} por {medio_de_comunicacion}. {asunto_o_copy}" prediction = pipe(combined) return "Comercial" if prediction[0]['label'] == 'LABEL_0' else "Informativo" # Crear la interfaz de Gradio iface = gr.Interface( fn=classify_message, inputs=[ gr.Textbox(lines=1, placeholder="Escribe la UES aquí.", label="UES"), gr.Radio(["EMAIL", "SMS", "WHATSAPP"], label="Canal de Comunicación"), gr.Textbox(lines=2, placeholder="Escribe el asunto o copy del mensaje aquí.", label="Asunto o Copy") ], outputs= gr.Label( label="Tipo de Campaña"), title="Clasificador de Campañas", description="Describe la unidad de negocio, el canal de comunicación y el copy de la campaña para clasificar si es comercial o informativo." ) import os colsubsidio = os.getenv("colsubsidio") # Lanzar la interfaz iface.launch(share = True, auth=("colsubsidio", colsubsidio))