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.ptlabel2id.jsonid2label.jsontrain_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.
scorecorresponde a la probabilidad de la clase predicha por cada tarea.- Para endpoint administrado en HF, se recomienda agregar
handler.pyyrequirements.txtorientados al entorno de despliegue.