Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import pipeline
|
2 |
+
import gradio as gr
|
3 |
+
from transformers.utils import logging
|
4 |
+
logging.set_verbosity_error()
|
5 |
+
|
6 |
+
|
7 |
+
pipe = pipeline(
|
8 |
+
"zero-shot-classification",
|
9 |
+
model="MoritzLaurer/xtremedistil-l6-h256-mnli-fever-anli-ling-binary"
|
10 |
+
)
|
11 |
+
|
12 |
+
# Etiquetas fijas (rubros de consultas bancarias)
|
13 |
+
etiquetas = [
|
14 |
+
"Pr茅stamos",
|
15 |
+
"Tarjetas",
|
16 |
+
"Transferencias",
|
17 |
+
"Atenci贸n al cliente",
|
18 |
+
"Cuentas",
|
19 |
+
"Inversiones",
|
20 |
+
"Seguros",
|
21 |
+
"Home Banking",
|
22 |
+
"Cajeros autom谩ticos",
|
23 |
+
"Clave o token",
|
24 |
+
"Reclamos",
|
25 |
+
"Beneficios y promociones",
|
26 |
+
"Cheques",
|
27 |
+
"Problemas con la app"
|
28 |
+
]
|
29 |
+
|
30 |
+
|
31 |
+
# Funci贸n principal para clasificar texto
|
32 |
+
def clasificar_consulta(texto):
|
33 |
+
resultado = pipe(texto, candidate_labels=etiquetas)
|
34 |
+
# Ordenar y mostrar resultados
|
35 |
+
salida = "\n".join(
|
36 |
+
[f"{label}: {round(score * 100, 2)}%" for label, score in zip(resultado["etiquetas"], resultado["scores"])]
|
37 |
+
)
|
38 |
+
return salida
|
39 |
+
|
40 |
+
# Interfaz con Gradio
|
41 |
+
iface = gr.Interface(
|
42 |
+
fn=clasificar_consulta,
|
43 |
+
inputs=gr.Textbox(label="Consulta del cliente"),
|
44 |
+
outputs=gr.Textbox(label="Clasificaci贸n de la consulta por rubro"),
|
45 |
+
title="Clasificaci贸n de consultas hecha por clientes a su entidad financiera",
|
46 |
+
description="Clasific谩 una consulta o reclamo y el modelo asignar谩 un rubro."
|
47 |
+
)
|
48 |
+
|
49 |
+
iface.launch()
|