Cursos/Claude Code + IA Local/Pregúntale a tus PDF

Pregúntale a tus PDF

Una aplicación donde sueltas cualquier PDF —un manual, un contrato, un artículo, los apuntes de una asignatura— y le haces preguntas en lenguaje normal. Te responde y te dice en qué página lo ha encontrado. Es el capítulo anterior llevado a cualquier documento, no solo legal.

Objetivos de aprendizaje
  • Extraer y consultar el contenido de PDF con IA local.
  • Pedir resúmenes, tablas y respuestas con referencia a la página.
  • Reutilizar la técnica RAG que ya conoces en un caso nuevo.

Conceptos clave

Aquí aplicamos lo mismo del chatbot legal: RAG (buscar en tus documentos y responder con esos fragmentos). Lo nuevo es que un PDF no siempre es texto limpio.

En cristiano: PDF “de texto” vs. PDF “escaneado”. Un PDF normal lleva el texto dentro y se puede leer directamente. Un PDF escaneado es en realidad una foto de cada página: para leerlo hay que aplicarle OCR (reconocimiento óptico de caracteres), que convierte la imagen en texto. Si tu documento es un escaneo, pídele a Claude Code que añada OCR.
Requisitos
Los mismos que ya tienes: Claude Code, Node.js y Ollama con qwen3:4b y nomic-embed-text descargados (capítulo de IA local).

Paso a paso

Crea el proyecto y arranca Claude Code:

Terminal
cd ~/proyectos-ia
mkdir pregunta-pdf
cd pregunta-pdf
claude

Pégale este encargo:

Escribe esto a Claude Code
Crea una app web local para preguntar a mis PDF con RAG. Requisitos: - Ollama con "qwen3:4b" (respuestas) y "nomic-embed-text". - Puedo subir un PDF desde el navegador o dejarlo en "docs/". - Extrae el texto; si el PDF es escaneado, aplica OCR. - Trocea, calcula embeddings y guarda el índice en local. - Al responder, indica el archivo y la página de la cita. - Botones para: resumir el documento y extraer sus tablas. - README con instrucciones de arranque y reindexado.
Idea clave. Un mismo patrón —RAG— resuelve muchísimos problemas: consultar leyes, manuales, historiales, documentación técnica... Domínalo una vez y lo reutilizas toda la vida.

Ejecutar en tu ordenador

Terminal
npm install
npm run dev

Abre la dirección local, sube un PDF y pregunta algo concreto que sepas que está en el documento.

Comprueba que funciona. Sube un PDF corto, pregúntale por un dato que contenga y comprueba que la respuesta cita la página correcta. Prueba también el botón de resumen.
Cuidado. Si responde “no encuentro nada” con un PDF que sí tiene la información, casi siempre es que era un escaneo sin OCR o que no reindexaste tras subirlo. Revisa esas dos cosas primero.
Guardar y reabrir el proyecto.
Tu proyecto es la carpeta pregunta-pdf. Para cerrarlo: Ctrl + C. Para volver otro día: cd ~/proyectos-ia/pregunta-pdf y npm run dev. Recuerda hacer un commit de Git cuando funcione.

Una prueba guiada de principio a fin

Para comprobar que todo funciona sin depender de tus propios archivos, usa un PDF público del BOE. Descarga la Constitución Española (dominio público) y colócala en la carpeta docs/ de tu proyecto:

Terminal
mkdir -p docs
curl -L -o docs/constitucion.pdf \
  "https://www.boe.es/buscar/pdf/1978/BOE-A-1978-31229-consolidado.pdf"
npm run dev

Abre la app, sube (o reindexa) constitucion.pdf y escribe esta pregunta exacta:

¿Qué establece el artículo 14 de la Constitución Española sobre la igualdad ante la ley?

Qué deberías ver: una respuesta que cite el artículo 14 y mencione que los españoles son iguales ante la ley, sin discriminación por nacimiento, raza, sexo, religión, opinión u otra condición personal o social. La app debe indicar el archivo (constitucion.pdf) y una página. Si responde con contenido inventado o sin cita, reindexa el PDF y vuelve a preguntar.

Comprueba que funciona. Si la respuesta reproduce la idea del artículo 14 y señala página y archivo correctos, tu lector de PDF está funcionando de verdad.

Si algo falla

  • Texto vacío al indexar — PDF escaneado: activa OCR.
  • Respuestas lentas — normal en documentos largos; prueba un modelo más pequeño o reduce cuántos fragmentos usa por respuesta.
  • Cita la página equivocada — pide a Claude Code trozos más pequeños al indexar.

Reto para practicar

Pídele a Claude Code que añada un modo “compara dos PDF” (por ejemplo dos versiones de un contrato) y que te señale las diferencias importantes.