🍳 Promesas

llms
propuestas
ragnar
ellmer

Usando LLMs para entender y comparar las propuestas de los candidatos presidenciales

Autor/a
Afiliación

Recetas Electorales

Análisis independiente

Fecha de publicación

29 de marzo de 2026

Fecha de última modificación

9 de mayo de 2026

¿Qué proponen los candidatos?

Los programas de gobierno son documentos extensos, dispersos, y escritos para que nadie los lea. Cada campaña publica sus propuestas en su propia página, con su propio formato y su propia lógica de navegación. Compararlos requiere leerlos todos, organizarlos mentalmente, y tener buena memoria.

Los LLMs son buenos para esto. Resumen, comparan, y extraen información de textos enormes. El problema es que no tienen acceso a la información que está en las páginas de los candidatos: necesitan que alguien se las dé.

TipUn asistente que leyó todos los programas de gobierno

La app de abajo es un chatbot que usa Retrieval-Augmented Generation (RAG) para responder preguntas sobre los programas de gobierno de los candidatos. Toda la información proviene de los documentos PDF oficiales de cada programa de gobierno y de las páginas web de cada campaña.

Ingredientes

La app fue construida con:

  • ragnar: para crear un store vectorial con el contenido de las páginas web de cada campaña. El store usa DuckDB como base de datos, embeddings de OpenAI (text-embedding-3-small) para la búsqueda semántica, y BM25 para la búsqueda por palabras clave.
  • ellmer: para conectar con un LLM (GPT-4o-mini) que responde las preguntas usando el contexto recuperado del store.
  • shinychat: para la interfaz de chat dentro de una app de Shiny.

El proceso tiene dos pasos:

  1. Ingesta: se procesan los PDFs de los programas de gobierno y se recorren las páginas oficiales de cada candidato. Todo el contenido se divide en fragmentos (chunks), se generan embeddings, y se almacenan en el store.
  2. Consulta: cuando el usuario hace una pregunta, el LLM busca los fragmentos más relevantes en el store y los usa como contexto para generar una respuesta fundamentada.

Fuentes

El store combina dos tipos de fuentes para cada candidato:

  • Programas de gobierno (PDF): los documentos oficiales registrados ante el CNE por cada campaña.
  • Páginas web: el contenido publicado en las páginas oficiales de cada campaña.
Ver código
library(tidyverse)
library(tinytable)

tibble::tibble(
  Candidato = c("Claudia López",
  "Sergio Fajardo",
  "Iván Cepeda",
  "Abelardo de la Espriella",
  "Paloma Valencia"),
  `Programa de gobierno (PDF)` = c(
    "Claudia-lopez-Programa-de-Gobierno.pdf",
    "Programa de gobierno Cambio. Serio. Seguro.pdf",
    "programa-gobierno-2026-2030 (1).pdf",
    "programa-de-gobierno-abelardo-delaspriella-.pdf",
    "Plan-Integrado-de-Gobierno-Final_compressed.pdf"
  ),
  `Página web` = c(
    "claudia-lopez.com",
    "sergiofajardo.com",
    "movimientopactohistorico.co",
    "defensoresdelapatria.com",
    "palomavalencia.com"
  )) |>
    tinytable::tt()
Tabla 1: Fuentes consultadas por candidato
Candidato Programa de gobierno (PDF) Página web
Claudia López Claudia-lopez-Programa-de-Gobierno.pdf claudia-lopez.com
Sergio Fajardo Programa de gobierno Cambio. Serio. Seguro.pdf sergiofajardo.com
Iván Cepeda programa-gobierno-2026-2030 (1).pdf movimientopactohistorico.co
Abelardo de la Espriella programa-de-gobierno-abelardo-delaspriella-.pdf defensoresdelapatria.com
Paloma Valencia Plan-Integrado-de-Gobierno-Final_compressed.pdf palomavalencia.com

La app Promesas


  • El contenido del store refleja lo publicado en las páginas oficiales al 29 de marzo de 2026. Las campañas pueden actualizar sus propuestas después de esa fecha.
  • Algunas páginas tienen contenido dinámico (JavaScript) que puede no capturarse completamente durante la ingesta.
  • El LLM puede cometer errores de interpretación. Siempre es buena idea verificar las respuestas consultando directamente las fuentes.
  • La calidad de las respuestas depende de la calidad del contenido publicado por cada campaña. Si un candidato no publica propuestas detalladas, el asistente no podrá inventarlas.

Cómo citar

BibTeX
@online{recetas_electorales2026,
  author = {{Recetas Electorales}},
  title = {🍳 Promesas},
  date = {2026-03-29},
  url = {https://www.recetas-electorales.com/elecciones/2026-colombia/2026-03-29-promesas/2026-promesas.html},
  langid = {es}
}
Por favor, cita este trabajo como:
Recetas Electorales. 2026. “🍳 Promesas.” March 29. https://www.recetas-electorales.com/elecciones/2026-colombia/2026-03-29-promesas/2026-promesas.html.