0Pricing
AI Prompt Engineering · Lección

Validadores de schemas y reglas

Haga cumplir las restricciones.

Validadores de schemas y reglas es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Prompt Engineering, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Prompt Engineering incluye 4 lecciones en total.

Los validadores hacen cumplir el contrato

Un validador es una barrera de seguridad que comprueba la salida frente a una especificación explícita: un JSON Schema, un conjunto de reglas de negocio o ambos. A diferencia de un clasificador de moderación, un validador es determinista y completamente auditable; la misma entrada siempre produce el mismo veredicto.

Capa de validación de esquemas

El primer validador confirma que la salida cumple el contrato estructural. Recopile todos los errores, no solo el primero, para que la información de reparación sea completa.

import jsonschema
def schema_errors(obj, schema):
    v = jsonschema.Draft202012Validator(schema)
    return [f"{list(e.path) or 'root'}: {e.message}"
            for e in v.iter_errors(obj)]

Más allá del esquema: reglas de negocio

Los esquemas no pueden expresar todo. Un esquema puede indicar que discount es un número, pero no que no debe superar el subtotal. Los validadores de reglas codifican en el código estos invariantes entre campos y del dominio.

RULES = [
  ('discount_le_subtotal', lambda o: o['discount'] <= o['subtotal']),
  ('total_consistent', lambda o: o['total'] == o['subtotal'] - o['discount']),
  ('currency_supported', lambda o: o['currency'] in SUPPORTED)
]
def rule_errors(o):
    return [name for name, fn in RULES if not fn(o)]

Modelos tipados como validadores

Una biblioteca de modelos tipados (por ejemplo, Pydantic) sirve también como generador de esquemas y validador, con validadores personalizados para las reglas. El fallo de parseo es el veredicto.

from pydantic import BaseModel, field_validator

class Order(BaseModel):
    subtotal: float
    discount: float
    total: float

    @field_validator('discount')
    @classmethod
    def discount_ok(cls, v, info):
        if v < 0:
            raise ValueError('discount must be non-negative')
        return v

Validadores de fundamentación y citas

En las salidas de RAG, valide que las afirmaciones estén respaldadas por el contexto proporcionado. Exija que el modelo cite los identificadores de las fuentes y, después, compruebe que exista cada identificador citado y que los fragmentos entrecomillados aparezcan realmente en la fuente. Rechace las respuestas que citen fuentes inexistentes o inventadas.

def citations_valid(answer, sources):
    for cite in answer['citations']:
        if cite['source_id'] not in sources:
            return False
        if cite['quote'] not in sources[cite['source_id']]:
            return False
    return True

Comprobaciones referenciales y entre sistemas

Algunas reglas requieren consultas externas: ¿existe el identificador de pedido referenciado?, ¿el producto está disponible?, ¿la fecha se encuentra dentro de un intervalo válido? Estos validadores consultan sus sistemas. Manténgalos rápidos (con caché y procesamiento por lotes), porque se ejecutan en la ruta de respuesta.

def order_exists(o):
    return db.exists('SELECT 1 FROM orders WHERE id = %s', o['order_id'])

Veredictos etiquetados por gravedad

No todas las infracciones son iguales. Etiquete cada regla con una gravedad para que el flujo pueda elegir la acción adecuada: bloquee por completo las infracciones críticas, regenere la salida cuando haya problemas de calidad y permita continuar con una advertencia en los casos menores.

RULE_SEVERITY = {
  'discount_le_subtotal': 'critical',
  'total_consistent': 'critical',
  'tone_professional': 'warning'
}

Componga los validadores en orden

Ejecute los validadores empezando por los más baratos y detenga el proceso ante fallos críticos: primero el esquema, después las reglas en memoria, luego las consultas externas y, por último, las comprobaciones realizadas por un evaluador basado en modelos. Así se minimiza el coste en la ruta habitual de rechazo.

def validate_all(obj):
    errs = schema_errors(obj, SCHEMA)
    if errs: return Reject(errs, 'critical')
    errs = rule_errors(obj)
    if errs: return Reject(errs, max_severity(errs))
    if not order_exists(obj): return Reject(['order_id'], 'critical')
    return Accept()

Los validadores impulsan la información de reparación

El valor de un validador se multiplica cuando sus mensajes alimentan el bucle de reparación. Emita errores que la máquina pueda procesar, con la ruta del campo, la regla incumplida y el valor problemático, para que el modelo pueda corregirlo con precisión en un solo turno.

{'errors': [
  {'path': 'discount', 'rule': 'discount_le_subtotal',
   'got': 120, 'limit': 100}
]}

Pruebe los propios validadores

Un validador defectuoso puede aprobar silenciosamente una salida incorrecta o bloquear una salida válida. Pruebe cada regla con casos positivos y negativos, y añada pruebas basadas en propiedades para los invariantes numéricos. El conjunto de pruebas del validador es código crítico para producción, no un script.

def test_discount_rule():
    assert rule_errors({'discount':10,'subtotal':100,'total':90}) == []
    assert 'discount_le_subtotal' in rule_errors(
        {'discount':120,'subtotal':100,'total':-20})

Validadores frente a la decodificación restringida

La decodificación restringida evita los errores estructurales durante la generación, pero no puede hacer cumplir la semántica (no conoce sus reglas de negocio). Los validadores detectan las infracciones semánticas después de la generación. Use ambos: decodificación para la estructura, validadores para el significado y el bucle de reparación para conciliarlos.

Comprobación rápida

Un JSON Schema declara que discount y subtotal son números. El modelo devuelve discount 120 y subtotal 100. ¿Qué capa debería detectar esto?

Resumen

Validadores de esquemas y reglas:

  • La validación de esquemas cubre la estructura; los validadores de reglas cubren la semántica.
  • Los modelos tipados generan esquemas y validan en un solo lugar.
  • Añada comprobaciones de fundamentación, citas y referencias para RAG y los flujos de datos.
  • Etiquete la gravedad, componga los validadores empezando por los más baratos y proporcione errores de reparación precisos.
  • Pruebe los validadores como código crítico para producción.

A continuación: validación mediante autocrítica, en la que el modelo comprueba su propia salida.

Preguntas frecuentes

¿La lección «Validadores de schemas y reglas» es gratis?

Sí — el texto completo de «Validadores de schemas y reglas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Prompt Engineering, actualiza a CoddyKit PRO. El curso de AI Prompt Engineering incluye 4 lecciones en total.

¿Qué aprenderé en «Validadores de schemas y reglas»?

Haga cumplir las restricciones. Practicas AI Prompt Engineering con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Prompt Engineering?

No se requiere experiencia previa. AI Prompt Engineering en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Validadores de schemas y reglas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Prompt Engineering?

Sí. Cada lección de AI Prompt Engineering incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Qué son las barreras de seguridad
  2. Filtrado de entradas y salidas
  3. Validadores de schemas y reglas
  4. Validación mediante autocrítica
← Volver a AI Prompt Engineering