Cursos/Claude Code + IA Local/Un chatbot que cita la ley

Un chatbot que responde citando la ley

Una aplicación web sencilla donde escribes una pregunta en lenguaje normal —por ejemplo, “¿cuántos días de permiso por mudanza tengo?”— y un asistente te responde basándose en documentos legales que tú le has dado (leyes, un convenio, un reglamento en PDF), citando el fragmento de donde saca la respuesta. Y lo mejor: la aplicación funciona entera en tu ordenador.

En cristiano: “local” de verdad, con un matiz honesto. La aplicación corre 100% en tu máquina: cuando la usas, ningún documento se envía a ningún servidor. Ahora bien, para construirla usamos Claude Code, que se apoya en la nube durante el desarrollo (lee y escribe archivos en tu equipo, pero razona en servidores externos). En resumen: privacidad total al usar el asistente; durante la construcción, no pegues datos confidenciales en el chat de Claude Code.
Objetivos de aprendizaje
  • Qué es un modelo de lenguaje “local” y por qué te interesa para datos sensibles.
  • Qué es RAG, la técnica que hace que la IA responda con tus documentos y no se los invente.
  • Cómo pedirle a Claude Code que te construya la aplicación paso a paso.
  • Cómo ejecutarla, guardarla y volver a abrirla otro día.

Conceptos clave (en dos minutos)

Antes de teclear nada, entendamos qué estamos montando. Son solo tres ideas.

Modelo de lenguaje local

Un “modelo de lenguaje” es el cerebro que entiende y redacta texto (lo mismo que hay detrás de un chatbot conocido). Local significa que ese cerebro se descarga y se ejecuta en tu propia máquina.

En cristiano: modelo local. Piensa en la diferencia entre ver una película en streaming (necesitas internet y una cuenta) y tenerla descargada en el disco duro (la ves cuando quieras, sin conexión y sin que nadie sepa qué ves). Un modelo local es la versión “descargada” de la IA: privada, gratuita de usar y siempre disponible.
Idea clave. Para un abogado, una gestoría o cualquiera que maneje datos confidenciales, lo local no es un capricho técnico: es que los documentos de tus clientes nunca salen de tu ordenador.

Por qué la IA “se inventa” cosas y cómo evitarlo

Un modelo, por sí solo, responde con lo que “recuerda” de su entrenamiento. A veces acierta y a veces inventa con total seguridad (a esto se le llama alucinación). Para un tema legal, eso es inaceptable.

Cuidado. Esto es una herramienta para buscar y redactar más rápido, no un asesor jurídico. RAG reduce mucho los inventos, pero no los elimina, y citar un fragmento no garantiza que la interpretación sea correcta. Contrasta siempre con la norma vigente y con criterio profesional.

RAG: darle a la IA los documentos correctos

La solución se llama RAG (Retrieval-Augmented Generation, o “generación apoyada en búsqueda”). Funciona en dos tiempos:

  1. Buscar: cuando preguntas algo, el sistema busca en tus documentos los fragmentos más relacionados con tu pregunta.
  2. Responder: le pasa esos fragmentos al modelo y le dice: “responde usando SOLO esto, y cita de dónde lo sacas”.
En cristiano: RAG. Es la diferencia entre un examen “de memoria” y un examen “con apuntes”. RAG le da apuntes a la IA —tus documentos— justo antes de responder. Así contesta con hechos que puedes verificar, no con lo que cree recordar.
Requisitos
Necesitas tres cosas instaladas: Claude Code (para que construya la app), Node.js (motor de apps web, desde nodejs.org, versión LTS) y Ollama (ejecuta modelos en local; lo instalamos en el paso 1). Con un portátil de 8 GB de RAM basta para empezar; con 16 GB irá más holgado.
Privacidad y RGPD
Si indexas expedientes, contratos o datos de clientes, actúas como responsable del tratamiento: necesitas base legal (ejecución de encargo, interés legítimo documentado o consentimiento), informar al interesado y aplicar medidas de seguridad. La IA local ayuda a que los documentos no salgan de tu equipo, pero no sustituye tu responsabilidad profesional ni el deber de secreto profesional del abogado: revisa siempre las respuestas, no subas más datos de los imprescindibles y no uses expedientes reales mientras construyes el proyecto con Claude Code en la nube.

Paso a paso

Paso 1: instala Ollama y descarga un modelo

Ollama es una aplicación gratuita. Descárgala de ollama.com e instálala como cualquier otro programa. Cuando termine, abre la terminal y comprueba que responde:

Terminal
ollama --version

Ahora descarga un modelo. Usaremos una versión pequeña y capaz, que cabe holgada en un portátil de 8 GB:

Terminal
ollama pull qwen3:4b
En cristiano: eso del :4b. El :4b indica el “tamaño” del modelo (unos 4.000 millones de parámetros). Cuanto mayor, más listo pero más lento y más memoria necesita. Empieza por 4b; si tu equipo es potente, más adelante puedes probar variantes mayores.

También necesitamos un modelo “de embeddings”, que es el que sabe buscar fragmentos parecidos:

Terminal
ollama pull nomic-embed-text
En cristiano: embeddings. Un “embedding” convierte un trozo de texto en una lista de números que representa su significado. Dos textos que hablan de lo mismo tendrán números parecidos. Gracias a eso, el sistema encuentra el fragmento de la ley que significa lo que preguntaste, aunque no uses las mismas palabras.
Comprueba que funciona. Escribe ollama list y deberías ver qwen3:4b y nomic-embed-text. Eso confirma que están descargados. Para confirmar que Ollama funciona, prueba: ollama run qwen3:4b "hola" y verifica que te contesta.
Cuidado. Ollama tiene que estar en marcha para que la app funcione. En Mac y Windows, al instalarlo se abre solo y deja un icono en la barra. Si lo cerraste, ábrelo de nuevo antes de arrancar la aplicación.

Paso 2: crea la carpeta del proyecto

Terminal
mkdir chatbot-legal
cd chatbot-legal

Paso 3: pídele a Claude Code que construya la app

No vas a escribir el programa a mano. Vas a describir lo que quieres y Claude Code lo construirá. Arranca Claude Code dentro de la carpeta con claude y pégale esta petición:

Escribe esto a Claude Code
Crea una aplicación web sencilla de chat con RAG que funcione 100% en local. Requisitos: - Usa Ollama con el modelo "qwen3:4b" para responder y "nomic-embed-text" para los embeddings. - Debe leer los PDF que yo ponga en una carpeta "documentos/": extraer su texto, trocearlo, calcular embeddings y guardar ese índice en local para no recalcularlo cada vez. - Que haya un comando para reindexar cuando añada PDF nuevos. - Cuando responda, debe CITAR el fragmento y el archivo del que ha sacado la información. - Interfaz web mínima: un cuadro de texto y las respuestas debajo. - Explícame en un README cómo arrancarla y cómo añadir mis PDF. Hazlo paso a paso y explícame qué archivos creas.
Idea clave. Fíjate en cómo está escrita la petición: dice qué queremos, con qué herramientas y cómo debe comportarse (¡que cite!). Un buen encargo produce un buen resultado; es la receta de cuatro partes del capítulo “Escribir buenos encargos”.

Paso 4: añade tus documentos

Copia dentro de la carpeta documentos/ los PDF que quieras consultar: un convenio colectivo, el Estatuto de los Trabajadores, un reglamento interno... Puedes arrastrarlos ahí con el explorador de archivos.

Cuidado. Empieza con pocos documentos (uno o dos) para tu primera prueba. Así verificas que todo funciona antes de meterle cientos de páginas.
Idea clave. La primera vez que añades PDF, la app los indexa: los trocea y calcula sus embeddings. Eso puede tardar y es normal —solo pasa una vez por documento—. Cada vez que añadas PDF nuevos, ejecuta el comando de reindexar del README; si no, la app no “verá” los documentos recién copiados.

Ejecutar en tu ordenador

Con los documentos en su sitio, arranca la aplicación (el README te dirá el comando exacto):

Terminal
npm install
npm run dev
En cristiano: npm install / npm run dev. npm install descarga las piezas que la aplicación necesita (se hace una sola vez). npm run dev enciende la aplicación en tu ordenador en “modo desarrollo”, para que puedas probarla.

En la terminal verás una dirección local, parecida a http://localhost:3000. Ábrela en tu navegador, escribe una pregunta sobre tus documentos y pulsa Enter.

Comprueba que funciona. La respuesta debería aparecer acompañada de una cita: el trozo de texto y el nombre del PDF de donde salió. Si ves la respuesta y su fuente, ¡lo has conseguido! Tienes un asistente legal privado funcionando en tu máquina.
Guardar y reabrir el proyecto.
Tu proyecto es la carpeta chatbot-legal. Para cerrar hoy: pulsa Ctrl + C en la terminal donde corre la app y cierra la ventana. Para volver otro día: abre la terminal, entra con cd chatbot-legal y arranca con npm run dev (el npm install no hace falta repetirlo). Abre otra vez http://localhost:3000.

Si algo falla

  • “command not found: ollama” — Ollama no está instalado o hay que reabrir la terminal.
  • Error de conexión — asegúrate de que Ollama está en marcha (icono en la barra). Comprueba con ollama list.
  • Responde muy lento — normal en la primera pregunta. Si tu equipo es modesto, prueba ollama pull qwen3:4b y pídele a Claude Code que lo use.
  • No cita bien o mezcla documentos — empieza con menos PDF y preguntas más concretas.

Reto para practicar

Pídele a Claude Code que añada un botón para borrar la conversación, que muestre la fecha de la ley junto a cada cita, y prueba un modelo más potente si tu equipo lo permite.