--- 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 ```bash pip install torch sentence-transformers huggingface-hub ``` Si usarás el código de este proyecto para inferencia local: ```bash pip install -r requirements.txt ``` ### 2) Descargar artefactos desde Hugging Face ```python 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 ```python 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): ```json { "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: ```bash 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.