Bigcode
— Caso · 02 · GovTech

Licitaciones AI.

Análisis automatizado de licitaciones del Mercado Público de Chile con Llama 3.3 vía Groq. De horas de revisión manual a minutos.

Sector
GovTech
Mercado Público
Tipo
IA aplicada
+ filtrado RAG
Año
2025
Estado
En producción
licitaciones.bigcode.cl

Cientos de licitaciones diarias, horas humanas para filtrar.

El portal Mercado Público de ChileCompra publica cientos de licitaciones nuevas cada día. Para una empresa proveedora del Estado, identificar cuáles son relevantes para su rubro requiere leer bases técnicas, requisitos administrativos, montos referenciales y plazos en cada licitación.

El proceso manual consumía varias horas diarias de un analista comercial revisando publicaciones, cruzando criterios y descartando las que no aplicaban. La operación era propensa a perder licitaciones relevantes por fatiga, y a invertir tiempo en ofertar a las que estaban fuera de alcance.

Las herramientas existentes (alertas por palabra clave, filtros básicos del portal) no entendían matices: "servicios de mantenimiento" incluye decenas de subcategorías que un humano descarta intuitivamente pero un filtro lexical no.

IA para leer y filtrar como lo haría un analista.

Construimos un pipeline que (1) ingesta licitaciones nuevas desde la API pública de Mercado Público, (2) las clasifica con un LLM contra los criterios del cliente, (3) resume bases técnicas y requisitos en lenguaje natural, y (4) entrega un dashboard priorizado con las relevantes del día.

Tres fases de implementación

Fase 1 — Ingesta: conexión a la API de Mercado Público, normalización de datos, almacenamiento en SQLite con índices optimizados. Fase 2 — Clasificación: prompts especializados sobre Llama 3.3 70B vía Groq para evaluar match con criterios definidos por el cliente (rubro, monto, ubicación, requisitos). Fase 3 — Análisis profundo: resumen automatizado de bases técnicas y extracción estructurada de requisitos clave (garantías, plazos, montos).

Dashboard en tiempo cuasi-real

Frontend React + TypeScript con tabla priorizada por score de relevancia, filtros guardados, alertas configurables por monto/rubro/región y export a Excel para el equipo comercial. Cada licitación tiene su análisis IA visible al hacer click — trazabilidad completa.

Por qué Groq.

La elección de modelo y proveedor no es trivial. Groq nos da Llama 3.3 70B con latencia subsegundo y costo unitario que hace viable procesar cientos de licitaciones/día sin reventar el presupuesto.

IA / LLM

GroqLlama 3.3 70BMixtral 8x7B Prompt engineeringFew-shot

Backend

FastAPIPython 3.11SQLAlchemy APSchedulerPydantic

Frontend

ReactTypeScriptVite TanStack Query

Datos

SQLiteWAL modeFTS5Backups automáticos

Por qué SQLite en producción

Volumen real del cliente cabe holgadamente en SQLite con WAL. Sin overhead de PostgreSQL ni costo de hosting separado. Backups vía dump simple. Migraciones triviales. Hay un patrón emergente (Litestream, rqlite) que valida SQLite para producción cuando las cargas no requieren múltiples writers concurrentes — y este caso no lo requiere.

Métricas defendibles.

~93%
Precisión
en filtrado
8h → 30min
Tiempo de revisión
diaria
<3s
Latencia
análisis IA
3
Fases
en producción

Precisión del filtrado: validamos contra un set de licitaciones etiquetadas manualmente por el cliente. El modelo identifica correctamente las relevantes con precisión cercana al 93% — comparable a un analista junior con menor variabilidad entre días.

Tiempo de revisión: el analista comercial pasó de revisar todas las licitaciones del día a validar solo las que el sistema marcó como relevantes. La revisión profunda quedó concentrada en menos de una hora diaria.

Latencia: Groq entrega Llama 3.3 con latencia que hace viable mostrar el análisis bajo demanda en el dashboard sin frustrar al usuario. Procesamiento batch nocturno cubre la cobertura completa del día.

Antes leíamos cientos de licitaciones para descartar el 95%. Ahora leemos veinte y ofertamos a la mitad.

Lo que aprendimos.

Prompt engineering es ingeniería

El primer prompt clasificó al 70%. Después de iteración con casos reales etiquetados (few-shot, formato JSON estructurado, reglas explícitas para casos límite) llegamos a 93%. La diferencia entre demo y producción es esa iteración invisible.

El humano sigue en el loop

El sistema no decide a qué ofertar — propone. El analista valida y enriquece con conocimiento de mercado que el modelo no tiene (relación con organismo, capacidad operativa, márgenes esperados). IA aumenta al humano, no lo reemplaza.

Costo unitario define viabilidad

Si cada análisis costara USD 0.50 con GPT-4, serían USD 150/día — inviable para un volumen rutinario. Con Groq + Llama 3.3 70B el costo unitario es una fracción y permite ejecutar cobertura completa diaria. La elección de proveedor no es estética: es lo que hace al proyecto viable o inviable.

Más trabajo en producción.