Spaces:
Sleeping
Sleeping
Merge remote-tracking branch 'origin/main'
Browse files- USO_DE_IA.md +0 -74
USO_DE_IA.md
DELETED
|
@@ -1,74 +0,0 @@
|
|
| 1 |
-
# Uso de inteligencia artificial en el desarrollo de Morphos
|
| 2 |
-
|
| 3 |
-
## Proyecto final — Curso de Desarrollo Web 2026
|
| 4 |
-
|
| 5 |
-
---
|
| 6 |
-
|
| 7 |
-
## Modelo utilizado
|
| 8 |
-
|
| 9 |
-
Se utilizó Claude Code (Sonnet 4.6) de Anthropic como asistente de desarrollo a lo largo de todo el proyecto y para el despliegue, docker y debug del comportamiento del modelo de IA se utilizó Kimi 2.6 con Open Code CLI.
|
| 10 |
-
|
| 11 |
-
---
|
| 12 |
-
|
| 13 |
-
## Enfoque: Spec Driven Development
|
| 14 |
-
|
| 15 |
-
El uso de IA no consistió en generar código y aceptarlo sin más. Se aplicó un enfoque de desarrollo guiado por especificaciones: en cada paso se definió primero el comportamiento esperado, funciones base, las restricciones de diseño y los criterios de aceptación, y el modelo generó propuestas dentro de ese marco. La arquitectura, la separación de módulos, las decisiones de estructura y el flujo de datos fueron definidos y controlados por mi parte en todo momento gracias a los criterios y conocimientos adquiridos durante el curso.
|
| 16 |
-
|
| 17 |
-
El modelo actuó como ejecutor de decisiones ya tomadas, no como tomador de decisiones.
|
| 18 |
-
|
| 19 |
-
---
|
| 20 |
-
|
| 21 |
-
## Literatura de referencia en patología clínica veterinaria
|
| 22 |
-
|
| 23 |
-
Para el motor de detección de patrones (`analisis.js`) y los datos de referencia (`valores_referencia.json`, `alteraciones.json`), se proporcionó al modelo literatura especializada en patología clínica veterinaria como contexto de generación.
|
| 24 |
-
|
| 25 |
-
Los rangos de referencia por especie, los ajustes por edad, raza y sexo, las descripciones clínicas de cada alteración, y la lógica de clasificación de gravedad fueron **validados gracias a mi formación y experiencia profesional en Medicina Veterinaria**, antes de ser incorporados al código. El modelo fue un medio para estructurar y codificar ese conocimiento, no la fuente del mismo. Se han realizado múltiples pruebas con resultados de laboratorio reales y citologías de pacientes facilitados por otros veterinarios ejercientes.
|
| 26 |
-
|
| 27 |
-
Textos de referencia utilizados:
|
| 28 |
-
|
| 29 |
-
- Thrall, *Veterinary Hematology and Clinical Chemistry*, 3.ª ed. 2022
|
| 30 |
-
- Weiss, — *Schalm's Veterinary Hematology*, 7.ª ed. 2022
|
| 31 |
-
|
| 32 |
-
---
|
| 33 |
-
|
| 34 |
-
## Afinamiento del prompt y control de salidas del modelo de IA
|
| 35 |
-
|
| 36 |
-
Morphos utiliza medGemma como modelo de interpretación clínica. Durante el desarrollo se detectó que el modelo producía salidas con problemas recurrentes:
|
| 37 |
-
|
| 38 |
-
- Respuestas en inglés a pesar de instrucciones en español
|
| 39 |
-
- Tokens de control expuestos en la salida (`<start_of_turn>`, `<unused94>`, `<unused95>`)
|
| 40 |
-
- Bloques de LaTeX embebidos en la respuesta
|
| 41 |
-
- Párrafos repetidos en bucle al acercarse al límite de tokens
|
| 42 |
-
- Prefijos de rol visibles al inicio del texto
|
| 43 |
-
|
| 44 |
-
Se iteró sobre el prompt y se implementó una función de limpieza de salida (`limpiarRespuesta` en `ia.js`) que elimina estos artefactos antes de mostrar el resultado al usuario. El prompt final incluye restricciones explícitas de idioma, alcance clínico y formato de respuesta.
|
| 45 |
-
|
| 46 |
-
---
|
| 47 |
-
|
| 48 |
-
## Caché y optimización de rendimiento
|
| 49 |
-
|
| 50 |
-
Durante las auditorías de rendimiento con Lighthouse se identificó que la carga de fuentes tipográficas locales y librerías (PDF.js) afectaba negativamente las métricas. Se implementaron las siguientes mejoras, asistidas por el modelo:
|
| 51 |
-
|
| 52 |
-
- Directivas `preload` y `preconnect` en el `<head>` para recursos críticos
|
| 53 |
-
- Caché de larga duración para fuentes, CSS y JS en `.htaccess`
|
| 54 |
-
- Caché en disco de 30 minutos para las respuestas de la API de PubMed, evitando llamadas repetidas a la misma consulta
|
| 55 |
-
- Compresión gzip habilitada por tipo de contenido
|
| 56 |
-
|
| 57 |
-
---
|
| 58 |
-
|
| 59 |
-
## Auditoría final de código
|
| 60 |
-
|
| 61 |
-
Al concluir el desarrollo se realizó una auditoría asistida por IA con los siguientes objetivos:
|
| 62 |
-
|
| 63 |
-
**Código muerto**
|
| 64 |
-
|
| 65 |
-
- Identificación y eliminación de exportaciones sin consumidores y código que ya no era necesario o era experimental
|
| 66 |
-
|
| 67 |
-
**Seguridad**
|
| 68 |
-
|
| 69 |
-
- Protección de archivos sensibles (`.env`, `setup.php`) mediante `.htaccess`
|
| 70 |
-
- Sanitización de datos externos de APIs con `textContent` en lugar de `innerHTML`, eliminando el riesgo de XSS
|
| 71 |
-
- Validación de URLs externas antes de usarlas como atributos `href`
|
| 72 |
-
- Separación del nombre de usuario del SVG estático al actualizar el botón de sesión, evitando inyección de HTML desde la base de datos
|
| 73 |
-
|
| 74 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|