Preparación de cuestionarios y todo tipo de exámenes.
IA Creditscargando...
Publicidad
Placeholder 728x90 (banner superior)
📊 Estadísticas del sitio
Cargando estadísticas...
Selecciona un examen
ℹ️ Información del examen
Selecciona un examen del panel izquierdo
Cargando chat global…
Cargando reportes…
Control de logsDesplegar
Cargando errores de usuarios…
Rescate de examen huérfanoDesplegar
Busca por nombre para localizar preguntas ocultas/no visibles.
Unir exámenes en unoDesplegar
Cargando exámenes…
Seleccionados: 0
Selecciona los exámenes origen y define el nombre final para fusionarlos.
DuplicadosDesplegar
Pulsa Analizar para detectar duplicados reales en la base de datos.
Limpieza de citas en feedback/pistaDesplegar
Detecta y elimina textos tipo [cite: ...] en feedback (f) y pista (pista).
Pulsa Analizar cites para ver vista previa antes/después.
Corrección de espacios tras puntuaciónDesplegar
Detecta y corrige casos como texto.Palabra en feedback (f) y pista (pista).
Pulsa Analizar puntuación para ver vista previa antes/después.
Eliminar prefijo duplicado en feedbackDesplegar
Corrige casos tipo La respuesta correcta es X. La respuesta correcta es ... dejando solo la primera, y uniendo el resto con coma + espacio.
Pulsa Analizar prefijo duplicado para ver vista previa antes/después.
Prefijo multi_test (múltiples correctas)Desplegar
Detecta y corrige feedbacks de tipo multi_test cuyo prefijo no refleja todas las letras correctas.
Pulsa Analizar multi-correcta para ver vista previa antes/después.
🔤 Abreviaciones FPDesplegar
Lista las asignaturas de FP con su abreviación nueva y antigua.
Puedes pedir sugerencias a la IA para las que faltan, revisarlas y editarlas antes de guardar.
Obligatorio. Agrupa las preguntas bajo un examen concreto.
💡 Si no seleccionas categoría/rama/asignatura arriba, la IA clasificará automáticamente basándose en esto.
Solo se mostrará en la pregunta si se adjunta imagen.
Se aplicará a todas las preguntas del tema seleccionado.
Recomendado: usar Google Drive/Slides para archivos pesados (ej. 16MB+) y carga fluida en el visor.
Usa preferiblemente Google Drive con acceso por enlace para PNG/JPG/WebP pesados y que se abra en el mismo visor embebido.
Crear tema solo con material
Úsalo solo cuando no exista examen. Se creará un registro interno para que el tema aparezca en la web, pero no entrará en práctica.
Opcional. Puedes elegir un centro existente o escribir uno nuevo.
Autenticidad del examen importado
`Oficial` mantiene el comportamiento actual. `Generado por IA` lo etiqueta aparte. El check de respuestas verificadas se conserva.
Clasificación (se aplica a todas las preguntas importadas)
Procesando…
⚠️
Preguntas con respuestas inciertas
Guía rápida (paso a paso)
Abre una IA que permita leer PDF (ChatGPT, Claude, Gemini, etc.).
Adjunta tu PDF del examen (y plantilla de respuestas si la tienes).
Pulsa Copiar prompt en TesIA y pégalo en esa IA.
Pide que te devuelva solo JSON válido (sin markdown).
Guarda ese resultado en un archivo .json.
Vuelve aquí, selecciona el archivo y pulsa Importar desde JSON.
Si la IA se salta preguntas, inventa opciones o lee mal una revisión, prueba estas alternativas: el PDF exportado directamente desde la web, el PDF generado con Imprimir → Guardar como PDF y, en ocasiones, guardar la página como HTML y pasar ese archivo a la IA. A veces una de estas versiones se interpreta mucho mejor que las otras.
Prompt para convertir PDF a JSON
Ver prompt completo
Convierte este PDF de examen a JSON para TesIA EXAM. Actúa como experto docente.
Devuelve SOLO JSON válido: empieza por [ o {"preguntas":[...]} y termina al cerrar ese JSON. Sin markdown, sin ```json, sin comentarios ni texto extra.
REGLAS:
1) Convierte TODAS las preguntas, en el mismo orden, incluyendo reserva/anuladas. No entregues muestras parciales.
2) Copia preguntas y respuestas EXACTAMENTE como aparecen. No corrijas, resumas ni reescribas. Solo puedes escapar caracteres para que el JSON sea válido.
3) NO inventes nada: no añadas opciones, respuestas, letras A/B/C/D, apartados ni estructuras no visibles en el documento.
4) Conserva el número original en "num" y al inicio de "p" con formato obligatorio "NUM. texto...". Nunca "Pregunta X." ni "Q X.".
5) Si solo hay un cuadro/campo/espacio de respuesta libre y no hay opciones explícitas, usa "tipoPregunta":"texto". No la conviertas en test/multi_test ni inventes opciones. Solo usa test/multi_test si las opciones se ven claramente.
5.1) Si el PDF es una "revisión del intento" de Moodle/Campus, interpreta literalmente su formato visual: "Respuesta:" + caja de texto = pregunta de tipo "texto"; "Seleccione una:" + opciones visibles = "test"; "Verdadero/Falso" visibles = "test" con esas dos opciones exactas, sin inventar otras.
5.2) Si una pregunta está cortada, borrosa, incompleta o no se ven todas sus opciones, NO la reconstruyas por conocimiento propio y NO completes lo que falta. Pide al usuario otro PDF o una captura mejor antes de generar el JSON.
6) Debe parsear con JSON.parse(): claves y strings con comillas dobles, comillas internas como \", barras como \\, \n para saltos de línea, sin comas finales, true/false/null sin comillas, números sin comillas en num, c, cMulti y paresCorrectos.
7) Si hay código o HTML, conserva el texto exacto y escapa todas las comillas dobles internas, por ejemplo document.getElementById(\"id\").
8) Revisa al final que no quede ninguna comilla doble sin escapar y que no haya comas finales antes de } o ].
9) "f" debe ser claro, correcto, útil y completo, con mínimo 4 frases. En test/multi_test debe empezar una sola vez por "La respuesta correcta es ..." e incluir el motivo principal y al menos un descarte.
NOTA: La categoría, asignatura y tema se asignan desde la interfaz de importación de TesIA — NO los incluyas en el JSON.
CADA PREGUNTA DEBE INCLUIR:
- tipoPregunta: "test" | "multi_test" | "texto" | "relacionar_4x4"
- num, reserva, p, b, f, pista, examenId
POR TIPO:
- test: "o" y "c"
- multi_test: "o" y "cMulti"
- texto: "respuestaTexto"
- relacionar_4x4: "opcionesFijas", "opcionesRelacion" y "paresCorrectos"
Entrega el JSON final listo para guardar como .json e importar.
Formato JSON
Ver estructura y requisitos
🤖 Clasificación Inteligente con IA
Solo necesitas especificar asignatura en el JSON.
La IA determinará automáticamente la categoría y rama correcta.
Si la asignatura no existe, se agregará dinámicamente a la estructura.
[
{
"tipoPregunta": "multi_test",
"num": 1,
"reserva": false,
"p": "1. ¿Qué protocolos son de capa de aplicación?",
"o": ["HTTP", "TCP", "DNS", "IP"],
"cMulti": [0, 2],
"f": "La respuesta correcta es A y C. HTTP y DNS trabajan en capa de aplicación porque ofrecen servicios directos a programas de usuario.\nTCP e IP pertenecen a capas inferiores (transporte y red), por eso no se marcan aquí.",
"pista": "Piensa en protocolos usados directamente por servicios del usuario.",
"b": "Categoría Libre",
"examenId": "FP Redes 2024"
},
{
"tipoPregunta": "test",
"num": 2,
"reserva": false,
"p": "2. ¿Qué es el DOM en desarrollo web?",
"o": ["Document Object Model", "Data Object Management", "Digital Output Module", "Dynamic Offline Mode"],
"c": 0,
"f": "La respuesta correcta es A. DOM significa Document Object Model y representa el documento HTML como un árbol de nodos.\nEsto permite leer y modificar contenido, atributos y estructura con JavaScript.",
"pista": "Relaciona el árbol HTML con una representación manipulable por JavaScript.",
"b": "Categoría Libre",
"examenId": "FP DWEC 2024"
},
{
"tipoPregunta": "texto",
"num": 3,
"reserva": false,
"p": "3. Escribe la palabra reservada para definir una función en Python",
"respuestaTexto": ["def"],
"f": "La respuesta correcta es def. Es la palabra reservada que inicia la definición de funciones en Python.\nSin 'def' no se crea formalmente el bloque de función reutilizable.",
"pista": "Empieza por de y se usa antes del nombre de la función.",
"b": "Categoría Libre",
"examenId": "FP Programación 2024"
},
{
"tipoPregunta": "relacionar_4x4",
"num": 4,
"reserva": false,
"p": "4. Relaciona cada concepto con su definición",
"opcionesFijas": ["CPU", "RAM", "ROM", "GPU", "NIC"],
"opcionesRelacion": ["Memoria volátil", "Procesador", "Memoria no volátil", "Procesador gráfico"],
"paresCorrectos": [1, 0, 2, 3, 3],
"f": "La respuesta correcta es la relación exacta entre cada elemento y su definición.\nCada concepto se empareja por su función específica en arquitectura de computadores.",
"pista": "CPU calcula, RAM es temporal, ROM persiste y GPU acelera gráficos.",
"b": "Categoría Libre",
"examenId": "FP Sistemas 2024"
},
{
"tipoPregunta": "test",
"num": 5,
"reserva": false,
"p": "5. ¿Cuántos bits tiene un byte?",
"o": ["4", "8", "16", "32"],
"c": 1,
"f": "La respuesta correcta es B. Un byte equivale a 8 bits, unidad fundamental de almacenamiento digital.\nEsta equivalencia es estándar en todos los sistemas informáticos modernos.",
"pista": "Piensa en la unidad mínima completa de información en un ordenador.",
"b": "Categoría Libre",
"examenId": "FP Sistemas 2024 Examen Final"
},
{
"tipoPregunta": "test",
"num": 6,
"reserva": false,
"p": "6. ¿Cuál instrucción accede al campo con id=\"apellidos\" de un formulario?",
"o": [
"document.forms[\"contactar\"].elements[\"apellidos\"]",
"document.getElementById(\"apellidos\")",
"document.getElementByTagName(\"apellidos\")",
"document.querySelector(\"#contactar #apellidos\")"
],
"c": 1,
"f": "La respuesta correcta es B. document.getElementById(\"apellidos\") localiza directamente el elemento por su atributo id, que es único en el documento. No es necesario referenciar el formulario contenedor si ya se conoce el id del campo. Las demás opciones usan métodos incorrectos o inexistentes para este caso.",
"pista": "El id es único en el documento, no hace falta mencionar el formulario.",
"b": "Categoría Libre",
"examenId": "FP DWEC 2024"
}
⚠️ ESCAPE OBLIGATORIO: cualquier " dentro de un string debe ser \". Ejemplos:
MAL: "document.getElementById("id")" ← rompe el JSON
BIEN: "document.getElementById(\"id\")" ← correcto
MAL: "document.forms["nombre"].length" ← rompe el JSON
BIEN: "document.forms[\"nombre\"].length" ← correcto
]
• tipoPregunta: test | multi_test | texto | relacionar_4x4 (si falta, se asume test)• num: Número original (obligatorio, entero > 0)• reserva: true/false (obligatorio)• p: Texto de la pregunta con numeración (obligatorio)• test: requiere o (2..10) y c• multi_test: requiere o (2..10) y cMulti (array de índices válidos)• texto: requiere respuestaTexto (string o array de strings)• relacionar_4x4: requiere opcionesFijas[1..10], opcionesRelacion[1..10], paresCorrectos (mismo tamaño que fijas, desbalanceado permitido)• b: Bloque temático (obligatorio)• f: Feedback de calidad, normalmente 2-3 líneas, iniciando por "La respuesta correcta es..." en test/multi_test (obligatorio)• pista: Pista breve y completa (obligatoria)• Categoría, asignatura y tema: se asignan desde los selectores de la interfaz de importación, no van en el JSON.• examenId: Nombre del examen (obligatorio, o se solicitará al importar)
Formato principal: array de preguntas. También se admite { "preguntas": [...] }.
IA sin comprobar
Describe la convocatoria y el contenido general. Si seleccionas la clasificación abajo, la IA no necesitará inferirla.
Clasificación (se aplica a todas las preguntas extraídas)
Opcional. Si lo rellenas, se aplicará a todas las preguntas extraídas del PDF.
Si no hay plantilla, la IA buscará las respuestas en el propio examen.
Tutor y consultas usan siempre Lite.
Autenticidad del examen importado
`Oficial` mantiene el comportamiento actual. `Generado por IA` lo etiqueta aparte. El check de respuestas verificadas se conserva.
⚠️ Máximo 40 preguntas por proceso. El rango se ajustará automáticamente.
Distribución de bloques en el examen (ayuda a la IA a clasificar)
Indica qué rango de preguntas corresponde a cada bloque en este examen concreto.
La IA usará esta información como guía de clasificación. Los valores por defecto son los típicos de esta oposición
(pueden variar entre convocatorias — ajústalos si conoces la distribución exacta).
* Las preguntas de reserva (81-85) se clasifican por contenido, no por posición.
Procesando…
Revisión antes de guardar
📂
Clasificación VFS
›››
Ruta VFS:/general/...
Ver respuesta completa de IA
📋
Migración de estado
Abrir
Marca todas las preguntas existentes (sin campo estado) como "publicadas" para que sigan siendo visibles en los tests.
🧹
Reparar explicaciones IA
Abrir
Corrige textos ya guardados con errores de codificación (por ejemplo, caracteres rotos como "L��nea").
📂
Migración VFS (asignatura)
Abrir
Asigna automáticamente el campo "asignatura" a preguntas que ya tienen categoría y rama pero no asignatura. Se asigna la primera asignatura de cada rama.
🏫
Centros por lotes
Abrir
Asigna el campo "centro" a varios exámenes ya subidos. Puedes filtrar, seleccionar varios y aplicar un mismo centro a todas sus preguntas.
Cargando exámenes…
⚠️
Preguntas sin examen detectadas
Se encontraron 0 preguntas que no pertenecen a ningún examen. Asígnalas a uno para mantener la base de datos ordenada.
✅
Todo en orden
Todas las preguntas pertenecen a un examen.
Analizando base de datos…
📊 Estadísticas del sitio
Cargando estadísticas...
🎓
FP
...
exámenes
...
preguntas
🏛️
UNIVERSIDAD
...
exámenes
...
preguntas
🛡️
OPOSICIONES
...
exámenes
...
preguntas
📁
OTROS
...
exámenes
...
preguntas
🎯 Exámenes del tema
Selecciona un tema con varios exámenes para filtrar qué exámenes del tema quieres incluir.
PanelGuardados
Inicia sesión para guardar asignaturas y temas favoritos.
Inicia sesión para ver tus últimas sesiones.
Inicia sesión para repasar tus fallos.
Inicia sesión para ver tu progreso.
ℹ️ Información del examen
Preguntasaleatorias
Fijo
Respuestasdesordenadas
Fijo
Publicidad
Placeholder 728x90 (banner inferior)
Aciertos 0%
Esta pregunta tiene un archivo adjunto. Revísalo antes de responder.
Información de la pregunta
Adjunto de la pregunta
¡Hola! Soy tu tutor IA. ¿Que duda tienes sobre esta pregunta?