IA con conocimiento anatómico real.
● en vivo
Mistral 24B + Llama 4 Scout + Gemma 3
Prompt anatómico
Feature extraction
Anti-rotación
Qué cambia respecto a CODETEX
- Conocimiento anatómico fundamentado: el system prompt está construido a partir de Gray's Anatomy 41ed (Standring, 2016), Atlas de Netter, Borges (1973) sobre Langer lines, Blume-Peytavi (2008) sobre tricología y Bharti et al. (2015) sobre fossae lumbales laterales (hoyuelos de Venus).
- Razonamiento estructurado en 4 pasos: extracción de features → consideración de la trampa de rotación → scoring con pesos → veredicto. Cada modelo enumera qué ve antes de decidir.
- Detección explícita de features: la API devuelve booleanos por hoyuelo de Venus, olécranon, triángulo de Hueter, queratinización, hiperpigmentación, topología cóncava/convexa, patrón del vello, etc. La UI los muestra como chips → puedes auditar el razonamiento.
- Anti-rotación: si el modelo solo ve "una rajita" sin más contexto, marca
rotation_unclear: true y baja la confianza. Una raja vertical podría ser un culo en orientación normal, pero también un codo girado 90°.
- Scoring con pesos derivados de literatura: hoyuelo de Venus = +30 culo (rotation-invariant, 100% específico), olécranon visible = +30 codo, queratinización = +15 codo, etc. Sin más adivinanza autoreporte.
- Hallazgo anatómico real: el vello del codo crece asimétrico — más denso del lado medial (cubital) que del lateral (radial), por la inervación del nervio cutáneo medial. El prompt usa esta señal para distinguir codos de glúteos en zooms extremos.
- Benchmark sintético ampliado a 35 imágenes (antes 15): añade culos rotados 90°/45°, simulación de hoyuelos de Venus, vello asimétrico medial>lateral, parches de hiperpigmentación, distractores (rodillas, espaldas).
Investigación que llevó a esta versión
- Juan observó que su codo derecho tiene más pelo en un lado que en el otro de la rajita — y eso resultó ser un patrón anatómico documentado (territorio del nervio cutáneo medial del antebrazo).
- Un agente de investigación profundizó en literatura anatómica: el cleft glúteo es cóncavo entre dos masas convexas; el codo es lo opuesto, una prominencia convexa sobre superficie plana. Esa topología, no la orientación, es la señal robusta.
- Los hoyuelos de Venus (presentes en 20-40% de la población) son rotation-invariant: si los ves, es un culo. No hay análogo en codo.
Tres modelos votan; el consenso decide.
Mistral 24B + Llama 4 Scout + Gemma 3
Multi-LLM voting
Consenso server-side
Few-shot ready
Qué cambia respecto a MOFLETE
- 3 modelos en paralelo en lugar de 1: Mistral 24B + Llama 4 Scout 17B + Gemma 3 12B. Cada uno se equivoca en cosas distintas — el consenso de 3 supera al mejor individual.
- Consensus voting en server-side: el endpoint cuenta votos y devuelve
unanimous, majority o split. Si los tres discrepan, la app reconoce que la imagen es genuinamente ambigua en lugar de inventarse un veredicto.
- Confianza basada en grado de acuerdo, no en lo que dice cada modelo: 95 % si los 3 coinciden, ~70 % si 2/3, ~35 % si discrepan.
- Infraestructura few-shot lista: el endpoint puede inyectar imágenes de referencia anatómicas en el prompt (preparado en
functions/_shared/few-shot.js). Pendiente de poblar con imágenes CC.
- Benchmark medible: nueva página /benchmark que ejecuta un dataset etiquetado contra v1, v2 y v3 y muestra precisión real. El dataset empieza vacío y se rellena con material curado de quizzes ingleses + clips de El Hormiguero (uso evaluativo).
- UI con votos individuales: en cada clasificación ves cómo votó cada uno de los 3 modelos, su confianza individual y razonamiento.
El coste real
- 3 llamadas en paralelo ≈ 12-18 K neuronas por clasificación (vs ~5-8 K en MOFLETE).
- Free tier de Cloudflare Workers AI: ~10 K/día → menos clasificaciones gratis al día.
- A cambio: precisión real superior y honesto cuando duda.
Razona antes de decidir.
Mistral Small 3.1 24B
2 pasadas
JSON estructurado
1024 px
Qué cambia respecto a CULIBARA
- Modelo 3,4× más grande: pasamos de LLaVA 1.5 (7 B parámetros) a Mistral Small 3.1 (24 B), francés y sin restricciones en la UE.
- Prompt comparativo: ya no le pedimos elegir A/B/C a ciegas. Le obligamos a enumerar evidencia anatómica concreta para cada opción (cleft glúteo, olécranon, dirección del vello, textura de piel) antes de decidir.
- Salida JSON estructurada: scores 0-100 por cada clase, con razonamiento en español. Permite mostrar las tres barras de confianza al usuario.
- Doble pasada con prompt alternativo: si la confianza de la primera pasada es < 65 %, lanza una segunda con prompt distinto (focado en pelo y forma del pliegue) y promedia los scores.
- Razonamiento visible: el usuario ve la justificación de la IA en la propia tarjeta del resultado.
- Cadena de fallback de 4 modelos: si Mistral falla, prueba Llama 4 Scout → Gemma 3 → LLaVA hasta que alguno responda.
- Imagen a 1024 px (antes 768): los pelos finos y poros pequeños se pierden por debajo de los 1000 px.
- Parser JSON robusto: 5 estrategias de reparación para casos donde el modelo devuelve markdown con escapes raros (
\_, comas finales, comillas mixtas).
La primera generación que funcionó: pequeñita y honesta.
LLaVA 1.5 7B
1 pasada
Prompt A/B/C
768 px
Qué la hace simple
- Un único modelo de 7 B parámetros, sin fallback.
- Prompt directo: "elige A, B o C". Sin razonamiento intermedio.
- Una sola llamada al modelo por imagen → barata y rápida.
- Sin parsing JSON: deduce el veredicto buscando palabras clave en la respuesta.
Por qué fallaba en casos difíciles
- En primeros planos extremos (solo se ve la "rajita" y los pelos), el modelo pequeño no tiene suficiente capacidad para distinguir cleft glúteo (vertical, simétrico, profundo) de pliegue del codo (horizontal o con olécranon).
- Sin razonamiento explícito, el modelo "saltaba" al veredicto por intuición visual y se equivocaba.
- Una sola pasada → cuando la confianza es baja, no tiene segunda oportunidad.