kAI Vision Pro — Documentación

💠 Descripción general

Descripción

El presente API procesa imágenes codificadas en Base64, las cuales son subsecuentemente evaluadas por kAI Vision Pro. Este modelo emite una predicción booleana (true/false) junto con su correspondiente puntuación de probabilidad del proceso especificado.

La autenticación de cada cliente se gestiona mediante un token JWT (JSON Web Token). Dicho token encapsula elprocessId y el secretTokenasignados al cliente, además de otros datos de autenticación necesarios para la operación.

Autenticación

La autenticación se gestiona mediante un token JWT (JSON Web Token), el cual debe ser suministrado dentro del encabezado HTTP Authorization en cada solicitud. El formato especificado para dicho encabezado es:

Authorization: Bearer <token>

El servidor, como parte del proceso de autenticación, valida los siguientes campos extraídos del token:

  • idCompany(identificador de la empresa)
  • name (nombre identificativo)
  • processId
  • secretToken

La validación es considerada exitosa, y por ende la autenticación concedida, únicamente si todos estos valores coinciden rigurosamente con los datos correspondientes de la empresa.

Endpoint: Generar token

POST https://us-central1-kai-project-26879.cloudfunctions.net/createCompanyToken

Body:

{
	"idCompany": "empresa123",
	"name": "MiEmpresa",
	"processId": "proceso_1",
	"secretToken": "supersecreto123"
}

Response:

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5c..."
}

Endpoint: Enviar imagen a validar

POST https://us-central1-kai-project-26879.cloudfunctions.net/kAIVisionPro

Headers:

Authorization: Bearer <token>
Content-Type: application/json

Body:

{
    "imageBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." // Tu imagen en base 64
}

Response:

{
    "result": {
        "tag": "true",
        "probability": 0.9823456,
        "result": true
    }
}

Importante:

  • El tamaño máximo de la imagen es 4MB.
  • La imagen debe ser codificada en base64.

♦️ ERRORES

Estructura general

La API siempre responde con objetos JSON estandarizados cuando ocurre un error.

{
  "code": 400,
  "error": "Mensaje general del error",
  "error_description": "Descripción más detallada y específica del problema"
}
CampoDescripción
codeCódigo HTTP del error (ej. 400, 403, 500, etc.)
errorMensaje corto y general del error
error_descriptionDescripción detallada del error


El
status code será consistente con el tipo de error y la respuesta incluirá una descripción detallada en error_description.

Tipos de errores comunes

CódigoDescripciónEjemplo
400Bad Request (Solicitud inválida)Faltan campos obligatorios o el formato del body es incorrecto.
401Unauthorized (No autorizado)El token es inválido, expiró o los datos del token no coinciden con la empresa.
400.Bad RequestLa imagen enviada supera el tamaño máximo permitido (4MB).
500Internal Server ErrorError inesperado en el servidor.

Errores posibles en autenticación

Códigoerrorerror_description
401Falta o formato inválido en Authorization.El header Authorization es obligatorio y debe iniciar con 'Bearer '.
401Token inválido o modificado.El Token proporcionado no pudo ser verificado o ha sido alterado.
400El token enviado está mal formateado.Falta el parámetro 'id' en el token.
400El token enviado está mal formateado.Falta el parámetro 'name' en el token.
400El token enviado está mal formateado.Falta el parámetro 'processId' en el token.
400El token enviado está mal formateado.Falta el parámetro 'secretToken' en el token.
403El processId no está permitido o no existe.El processId no está asignado a la empresa o fue eliminado.
404Empresa no encontrada.No se encontró la empresa con el ID proporcionado.
403Datos del token no coinciden con la empresa.El parámetro 'name' del token no coincide con el valor registrado.
403El secretToken no es válido.El parámetro 'secretToken' del token no coincide con el valor registrado.

Ejemplos de respuestas de error

🟥 Error 400: Campos faltantes

{
  "code": 400,
  "error": "Falta el campo imageBase64 en el body.",
  "error_description": "El cliente no envió el campo imageBase64 requerido."
}

🟦 Error 404: Empresa no encontrada

{
  "code": 404,
  "error": "Empresa no encontrada.",
  "error_description": "No se encontró la empresa con el ID empresa123."
}

🟧 Error 401: Token inválido

{
  "code": 401,
  "error": "Token inválido o modificado.",
  "error_description": "El Token proporcionado no pudo ser verificado o ha sido alterado."
}

🟨 Error 403 — processId no permitido

{
  "code": 403,
  "error": "El processId no está permitido o no existe.",
  "error_description": "El processId no está asignado a la empresa o fue eliminado."
}

🟦 Error 400: Archivo demasiado grande

{
  "code": 400,
  "error": "Archivo demasiado grande.",
  "error_description": "El archivo excede el tamaño máximo permitido de 4MB."
}

🟥 Error 500: Error interno del Modelo

{
  "code": 500,
  "error": "Error al guardar el registro de la petición.",
  "error_description": "No se pudo registrar el uso de la API."
}