|
Download docs/API.es.md from devrup404/SignalMod: direct link, hf CLI and curl.
- Browser
- Download file 2.55 kB
-
https://huggingface.co/spaces/devrup404/SignalMod/resolve/21e8095f146314dd87fce3a1f63b090cf54ec99d/docs/API.es.md
- Command line
-
hf download hf://spaces/devrup404/SignalMod@21e8095f146314dd87fce3a1f63b090cf54ec99d/docs/API.es.md
-
curl -L -o API.es.md https://huggingface.co/spaces/devrup404/SignalMod/resolve/21e8095f146314dd87fce3a1f63b090cf54ec99d/docs/API.es.md
2.55 kB
| # Referencia API (FastAPI) | |
| URL base (local): `http://localhost:8000` | |
| Documentación interactiva: `/docs`, `/redoc` | |
| Implementación: [`src/api/main.py`](../src/api/main.py) | |
| --- | |
| ## Endpoints | |
| | Método | Ruta | Descripción | | |
| |--------|------|-------------| | |
| | `GET` | `/` | Estado del servicio y modelo activo | | |
| | `GET` | `/model-info` | Metadatos del modelo cargado | | |
| | `GET` | `/models` | Modelos disponibles y activo | | |
| | `PUT` | `/model/{model_name}` | Cambiar modelo activo | | |
| | `POST` | `/predict` | Clasificar un comentario | | |
| | `POST` | `/predict-batch` | Hasta 100 comentarios | | |
| | `POST` | `/predict-video` | Comentarios de un vídeo de YouTube | | |
| --- | |
| ## `POST /predict` | |
| **Cuerpo** | |
| ```json | |
| { | |
| "text": "Texto del comentario", | |
| "threshold": 0.5 | |
| } | |
| ``` | |
| **Respuesta** | |
| ```json | |
| { | |
| "text": "Texto del comentario", | |
| "is_toxic": false, | |
| "probability": 0.08, | |
| "labels": [], | |
| "model_used": "Meta-Feature Stacking (Production)", | |
| "latency_ms": 15.2 | |
| } | |
| ``` | |
| - `is_toxic`: `true` = **Tóxico**, `false` = **Seguro** | |
| - `probability`: probabilidad de clase tóxica (0–1) | |
| **curl** | |
| ```bash | |
| curl -s -X POST http://localhost:8000/predict \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"text": "¡Gran vídeo, gracias!", "threshold": 0.5}' | |
| ``` | |
| --- | |
| ## `POST /predict-batch` | |
| ```bash | |
| curl -s -X POST http://localhost:8000/predict-batch \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"texts": ["Comentario seguro", "Eres un idiota"], "threshold": 0.5}' | |
| ``` | |
| --- | |
| ## `POST /predict-video` | |
| Requiere `YOUTUBE_API_KEY` en `.env` para comentarios reales. | |
| ```json | |
| { | |
| "url": "https://www.youtube.com/watch?v=VIDEO_ID", | |
| "max_comments": 50, | |
| "threshold": 0.5 | |
| } | |
| ``` | |
| --- | |
| ## Modelos del demo | |
| [`configs/model_catalog.yaml`](../configs/model_catalog.yaml) · métricas baselines: [`models/baseline/manifest.json`](../models/baseline/manifest.json) | |
| | Nombre | Artefacto / pesos | | |
| |--------|-------------------| | |
| | `Meta-Feature Stacking (Production)` | `models/production_final/meta_stack_final.joblib` | | |
| | `LR + TF-IDF (Baseline)` | `models/baseline/lr_tfidf.joblib` | | |
| | `Frozen Toxic-BERT (Baseline)` | Hugging Face `unitary/toxic-bert` | | |
| ```bash | |
| curl -s -X POST http://localhost:8000/models/select \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"model_name": "LR + TF-IDF (Baseline)"}' | |
| ``` | |
| --- | |
| ## Variables de entorno | |
| | Variable | Descripción | | |
| |----------|-------------| | |
| | `MODEL_NAME` | Por defecto: Meta-Feature Stacking (Production) | | |
| | `YOUTUBE_API_KEY` | API de YouTube para `/predict-video` | | |
| Ver [`.env.example`](../.env.example). | |