Ir al contenido

Jev: Localizar en imagen

Experimental. Las imágenes y las preguntas box de TypeSafe están detrás de una cabecera «Danger-Zone» (TypeSafe-Danger-Zone-Images): pueden cambiar sin aviso. El nodo envía esa cabecera por ti.

Localiza algo en una imagen (por ejemplo «el total de la factura» o «el logotipo») y devuelve su recuadro: coordenadas de 0 a 1 respecto al alto y el ancho de la imagen, y también en píxeles (el nodo lee el tamaño de la cabecera del PNG o JPEG). Con eso puedes recortar la zona, validar que existe o pasarla a otro nodo.

La imagen se envía a TypeSafe como un recurso y el nodo la referencia con un marcador, tal como documenta TypeSafe. Solo se admiten PNG y JPEG; el formato se deduce de los bytes, no de la extensión.

ParámetroTipoRequeridoDescripción
credentials_idcredentialsSíCredencial TypeSafe (API key).
modelselectSíModelo de Jev. Las imágenes funcionan mejor con jev-preview (el que usa la documentación de TypeSafe en sus ejemplos).
imagetextareaSíImagen en base64 (admite el prefijo data:image/png;base64,) o una variable, p. ej. \{\{imagen\}\}. Hasta 20 MB.
targettextareaSíQué localizar, p. ej. «Locate the invoice total». Descríbelo con precisión; en inglés rinde mejor.
output_keytextNoClave de los datos donde se guarda el resultado. Por defecto jev.

Se requiere una credencial TypeSafe (credentials_id) con la api_key de la consola de TypeSafe (variable TYPESAFE_API_KEY). La clave es de tu cuenta: TypeSafe factura el consumo, no Floogos.

El resultado se añade a los datos de entrada. Se lee como \{\{jev.box\}\}, \{\{jev.pixels\}\}…

{
"nextModule": "next-node",
"data": {
"...": "datos de entrada, intactos",
"jev": {
"box": {
"top": 0.1,
"bottom": 0.5,
"left": 0.2,
"right": 0.6
},
"confidence": 0.9,
"pixels": {
"x": 200,
"y": 50,
"width": 400,
"height": 200
},
"image": {
"format": "png",
"width": 1000,
"height": 500,
"bytes": 48213
},
"model": "jev-preview",
"usage": {
"input_tokens": 900,
"output_tokens": 8
},
"cost_usd": 0.000038
}
}
}

Una sola salida (nextModule).

Comprobar que una factura escaneada trae un total

Sección titulada «Comprobar que una factura escaneada trae un total»

Descarga la imagen con un nodo HTTP, conviértela a base64 y pásala en image. Con target = Locate the invoice total, un nodo If sobre \{\{jev.confidence\}\} decide si hay un total localizable (por ejemplo, confianza mayor que 0,7) o si la factura debe revisarse a mano.

  • Experimental: depende de una cabecera «Danger-Zone» de TypeSafe. No lo uses en procesos críticos sin una vía de revisión humana.
  • Privacidad: la imagen sale de Floogos hacia TypeSafe, un tercero. No envíes documentos que no puedas compartir (DNI, facturas con datos personales…) sin revisar sus condiciones.
  • Límites: PNG o JPEG, hasta 20 MB (la API admite 32 MiB de cuerpo y el base64 pesa un tercio más). Las coordenadas son relativas: top y bottom respecto al alto, left y right respecto al ancho.
  • Variables: el motor sustituye \{\{imagen\}\} antes de ejecutar el nodo; el nodo no vuelve a sustituir.
  • Errores: missing_credentials, validation (imagen o formato no válidos, falta target), auth_error, rate_limited, overloaded, state_too_large (imagen demasiado grande), jev_error y connection_error. 429, 529, 5xx y los cortes de red se reintentan solos.
  • Idioma: Jev rinde mejor en inglés; con otros idiomas, menor precisión.