pibot-intent-router / README.md
smenaaliaga's picture
Upload multitask artifacts
114862d verified
metadata
language:
  - es
license: mit
library_name: pytorch
tags:
  - text-classification
  - multitask-learning
  - sentence-transformers
  - spanish
  - intent-classification
pipeline_tag: text-classification

PIBot Intent Router (Multitarea)

Modelo multitarea para clasificación de texto en español usando un encoder compartido (sentence-transformers) y 3 cabezas clasificadoras:

  • macro: "1" o "0"
  • intent: "value" , "method", "other"
  • context: "standalone" o "followup"

Este repositorio contiene artefactos de inferencia:

  • encoder/
  • heads.pt
  • label2id.json
  • id2label.json
  • train_config.json

Uso rápido

1) Instalar dependencias

pip install torch sentence-transformers huggingface-hub

Si usarás el código de este proyecto para inferencia local:

pip install -r requirements.txt

2) Descargar artefactos desde Hugging Face

from huggingface_hub import snapshot_download

artifact_dir = snapshot_download(repo_id="TU_USUARIO/TU_REPO")
print(artifact_dir)

3) Inferencia con el código del proyecto

from pathlib import Path

from src.serialization.artifacts import load_artifacts
from src.infer.predict import predict_all_tasks

artifact_dir = Path("RUTA_DESCARGADA_DESDE_SNAPSHOT")
encoder, multitask_model, _, id2label = load_artifacts(artifact_dir, device="cpu")

text = "quiero pagar mi factura"
output = predict_all_tasks(
    text=text,
    encoder=encoder,
    multitask_model=multitask_model,
    id2label=id2label,
    device="cpu",
)
print(output)

Salida esperada (ejemplo):

{
  "macro": {"label": "1", "score": 0.97},
  "intent": {"label": "method", "score": 0.92},
  "context": {"label": "standalone", "score": 0.88}
}

Uso por CLI

Con este proyecto clonado, también puedes probar:

python -m src.main test --artifact-dir models/artifacts --text "quiero pagar mi factura" --device cpu

Notas

  • El modelo está diseñado para inferencia de 3 tareas simultáneas.
  • score corresponde a la probabilidad de la clase predicha por cada tarea.
  • Para endpoint administrado en HF, se recomienda agregar handler.py y requirements.txt orientados al entorno de despliegue.