Yeda AI Tips · #128

English

Regex primero, el modelo para los bordes

No envíes cada línea de texto estructurado a un modelo de lenguaje. Las regex resuelven la mayor parte a una fracción del costo. Para texto de formato consistente — formularios, cuestionarios, facturas, logs — un conjunto de patrones bien ajustado resuelve aproximadamente el 95–98% de los casos de forma determinista, y los equipos suelen reportar un costo por registro de un orden de magnitud (~20×) menor que un pipeline basado solo en LLM. El modelo se gana su lugar en el 2–5% que las regex no pueden manejar.

Por qué "todo al LLM" es el default equivocado

Una llamada al LLM por un campo que podrías capturar con \d{2}/\d{2}/\d{4} te compra tres desventajas a la vez:

El pipeline híbrido

Parsea primero con regex. Asigna una puntuación de confianza a cada extracción. Envía al modelo solo las de baja confianza. Todo lo demás sale directo de la regex.

import re

AMOUNT = re.compile(r"(?i)total[:\s]*\$?(\d{1,3}(?:,\d{3})*(?:\.\d{2})?)")

def extract(line: str) -> dict:
    m = AMOUNT.search(line)
    if m:
        return {"amount": m.group(1), "confidence": 1.0, "source": "regex"}
    # No match, ambiguous match, or failed validation -> queue for the LLM
    return {"amount": None, "confidence": 0.0, "source": "llm_queue"}

results = [extract(line) for line in lines]
edge_cases = [r for r in results if r["confidence"] < 0.8]
# Only edge_cases go to the model — typically ~2–5% of records.

Para la parte del LLM, pide una respuesta restringida por un esquema JSON (structured outputs) para que los casos corregidos se fusionen con la misma forma que la salida de tu regex.

Reglas prácticas

SituaciónRuta
El formato se repite de forma consistente (formularios, facturas, logs)Regex, siempre
Campo con match que pasa la validación (checksum, rango, la fecha parsea)Envíalo — sin llamada al modelo
Sin match, matches en conflicto, o falla la validaciónMándalo al LLM
Prosa libre, sin estructura repetitivaLLM desde el inicio — la regex no es la herramienta
Casos borde que toleran latenciaAgrúpalos: la Batch API de OpenAI cuesta 50% menos, entrega en ≤24h

Movidas de usuario avanzado

Recursos

Read this article in English

¿Construyendo una funcionalidad con AI? Yeda AI diseña, audita y entrega sistemas LLM de producción.

Habla con nosotros · Lee el blog