The endpoints documented here form the back-office API for Signia’s machine learning pipeline and sign video library. They sit under theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/jtapieromalambo-ctrl/Signia/llms.txt
Use this file to discover all available pages before exploring further.
/reconocimientos/admin-videos/ URL prefix and are intended for use from the admin panel UI. All endpoints are decorated with @csrf_exempt and follow a consistent {"ok": true/false, ...} JSON envelope.
Recognition Video Endpoints
These endpoints manage the raw training video library (VideoSeña model). Videos uploaded here are consumed by the training job — after a successful training run, all processed videos are automatically deleted from the database and disk.
Upload a recognition video
/reconocimientos/admin-videos/reconocimiento/subir//reconocimientos/admin-videos/entrenar/.
Request body — multipart/form-data
The sign gloss this video represents (e.g.
"HOLA", "GRACIAS"). Used as the class label during model training. Case is preserved but should be uppercase for consistency.The video file containing the sign demonstration. Common formats (MP4, WebM, AVI) are supported. Files are stored under the
media/ directory.true on success.| Status | Condition |
|---|---|
400 | label or video field is missing from the request |
Update a recognition video label
/reconocimientos/admin-videos/reconocimiento/editar/{video_id}/Primary key of the
VideoSeña record to update.application/json or application/x-www-form-urlencoded
The new sign gloss label. Must be a non-empty string.
true on success.The updated label as stored in the database.
| Status | Condition |
|---|---|
400 | label is empty or missing |
404 | No VideoSeña record with the given video_id |
Delete a recognition video
/reconocimientos/admin-videos/reconocimiento/eliminar/{video_id}/Primary key of the
VideoSeña record to delete.true on success.| Status | Condition |
|---|---|
404 | No VideoSeña record with the given video_id |
Translator Video Endpoints
These endpoints manage the sign video library that powers the text-to-LSC translator (VideoTraductor model). Unlike recognition videos, translator videos persist indefinitely and are looked up by nombre at translation time.
Upload a translator video
/reconocimientos/admin-videos/traductor/crear/nombre field is the token that the LSC grammar layer will look up when translating Spanish text containing that sign.
Request body — multipart/form-data
The token name for this sign (e.g.
"HOLA", "POR_FAVOR"). Must be unique (case-insensitive). Duplicate names are rejected with HTTP 400.The sign demonstration video file. Stored under
media/ and served via the video_url field.true on success.| Status | Condition |
|---|---|
400 | nombre or video is missing, or a video with the same nombre already exists |
Update a translator video
/reconocimientos/admin-videos/traductor/editar/{video_id}/nombre, the video file, or both for an existing translator video. Fields that are omitted from the request body are left unchanged.
Path parameters
Primary key of the
VideoTraductor record to update.multipart/form-data
New token name. Optional — omit to leave the current name unchanged.
Replacement video file. Optional — omit to keep the existing file. When provided, the old file is deleted from disk before the new one is saved.
true on success.| Status | Condition |
|---|---|
404 | No VideoTraductor record with the given video_id |
Delete a translator video
/reconocimientos/admin-videos/traductor/eliminar/{video_id}/Primary key of the
VideoTraductor record to delete.true on success.| Status | Condition |
|---|---|
404 | No VideoTraductor record with the given video_id |
Model Training Endpoints
These endpoints control the RandomForest classifier that powers live sign recognition. Training is computationally intensive: it extracts MediaPipe landmarks from every queuedVideoSeña record, generates up to 8 augmented variations per sample (noise, scale, speed, horizontal mirror, translation, etc.), then fits a 500-tree RandomForest with balanced class weights. The trained model and accumulated dataset are persisted to .pkl and .npy files on disk.
Trigger model training
/reconocimientos/admin-videos/entrenar//reconocimientos/admin-videos/entrenar/estado/ to track progress.
Request body
No body required.
Response
true when training was successfully started; false if a job is already running.Present only when
ok is false. Describes why the request was rejected.Poll training status
/reconocimientos/admin-videos/entrenar/estado/true while training is in progress; false when idle (whether training has never started, completed, or failed).List trained signs
/reconocimientos/admin-videos/senas-entrenadas/true when a trained model is loaded; false when no model exists.Array of sign objects, sorted by
efectividad descending.Remove a sign from the model
/reconocimientos/admin-videos/sena/eliminar/{nombre}/.npy dataset, then synchronously retrains the RandomForest on the remaining data and saves the updated model. Unlike /entrenar/, this operation is not asynchronous — the response is returned only after the retrain completes.
If removing the sign would leave no samples at all, the model, encoder, and dataset files are deleted entirely and the in-memory model is reset to None.
Path parameters
The exact sign gloss to remove (e.g.
"HOLA"). Must match a label present in the accumulated dataset.true on success.Alphabetically sorted list of the sign glosses that remain in the retrained model.
| Status | Condition |
|---|---|
404 | The named sign was not found in the accumulated dataset, or no dataset files exist |
500 | Unhandled exception during retraining |