Ir al contenido

IDP Build Classifier

Tipo: idp-build-classifier  ·  Paquete: IDP Activities v1.18.0  ·  Salida: object

Construye el esquema con el que se identifica de qué tipo es un documento, a partir de la lista de taxonomías que conoces. Lo pasas por AI Extract antes de extraer, y el playbook decide si sigue.

Porque IDP Ground no cubre este caso, y conviene entender por qué.

El grounding verifica “este texto está escrito en el documento”. No verifica “este documento es del tipo que yo creo”. Si le pasas una factura a la taxonomía de una hoja de vida:

  • Si tienes suerte, el modelo devuelve null en todo y el documento entero va a revisión. Sale caro (una persona lo mira) pero no se guarda nada malo.
  • Si no la tienes, la factura lleva un número que parece un número de serie. El modelo lo pone. Y el grounding lo confirma, porque ese texto sí está en el documento. Confianza alta, aceptado automáticamente, dato incorrecto guardado sin que nadie lo vea.

Ese segundo caso es el que justifica clasificar antes.

ParámetroEditorDescripción
taxonomieslistaLas taxonomías entre las que elegir: rutas de .json o los objetos. Una sola también vale.

Devuelve un object con el JSON Schema, listo para pasárselo a AI Extract. El resultado del modelo trae dos campos:

CampoQué es
documentTypeUno de los documentType de tus taxonomías, o "unknown".
reasonQué del documento le hizo decidir eso.

La lista de tipos sale de las propias taxonomías, así que no se desincroniza: añades un tipo nuevo al proyecto y el clasificador lo conoce sin que toques nada. La description de cada taxonomía se le pasa al modelo como contexto para distinguirlos, que es otra razón para escribirla bien.

IDP Build Classifier taxonomies = = [asset("taxonomias/hoja-de-vida.json"), asset("taxonomias/factura.json")] → output: clasificador
IDP Load Document path = = rutaDoc → output: doc
AI Extract credential = = credential("anthropic-key")
prompt = = doc["text"]
schema = = clasificador
→ output: tipo
If condition = = tipo["documentType"] == "hoja-de-vida-equipo-biomedico"
...extraer con la taxonomia de hoja de vida
Else
Log message = = "Descartado: " + tipo["documentType"] + " — " + tipo["reason"]

Clasificar es barato: el documento entra una vez y la respuesta son tres campos, así que un modelo pequeño basta. Lo que ahorra de verdad es lo que evita — no pagar la extracción entera de un documento que no tocaba.