ModeloRecorte / app.py
desarrolloasesoreslocales's picture
Update app.py
23d75e8
raw
history blame
1.46 kB
import gradio as gr
from setfit import SetFitModel
def cortar_en_bloques(texto, longitud_bloque):
palabras = texto.split()
bloques = []
bloque_actual = []
for palabra in palabras:
bloque_actual.append(palabra)
if len(bloque_actual) == longitud_bloque:
bloques.append(" ".join(bloque_actual))
bloque_actual = []
# Si queda un bloque parcial al final, agregarlo
if bloque_actual:
bloques.append(" ".join(bloque_actual))
return bloques
# Cargar el modelo
model = SetFitModel.from_pretrained("desarrolloasesoreslocales/SetFitPruebaRecorte")
# Mapear las etiquetas
# Definir la funci贸n de predicci贸n
def predict(payload):
recorte_general = ""
for chunk in cortar_en_bloques(s, 90):
if model.predict([chunk]).item() == 1:
recorte_general += chunk + " "
recorte_final = ""
for chunk in cortar_en_bloques(recorte_general, 84):
if model.predict([chunk]).item() == 1:
recorte_final += chunk + " "
# results = model.predict_proba([payload])[0]
# return "\n".join([f"Label: {id2label[i]}, Score: {round(result.item()*100, 2)} %" for i, result in enumerate(results)])
return recorte_final
# Crear una interfaz Gradio
iface = gr.Interface(
fn=predict,
inputs=gr.Textbox(),
outputs=gr.Textbox(),
live=False,
title="Recortador de Texto"
)
# Iniciar la interfaz Gradio
iface.launch()