> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/sdks/backend-sdk/ocr/technical_documentation/technical_specifications.md).

# Especificaciones técnicas

El servicio web se inicia con un hilo. Cada hilo gestiona documentos en modo monohilo, lo que significa que solo puede procesar una solicitud a la vez. El número de hilos está limitado por los recursos hardware disponibles. Por lo tanto, si se envían muchas solicitudes a la vez, se ponen en cola y se procesan una a una.

## 1. Consideraciones

La velocidad de procesamiento de la solicitud depende de:

* La calidad de la imagen.
* El rendimiento de la CPU.
* La asignación de CPU por worker. Las etapas de la consulta están intrínsecamente paralelizadas, por lo que un worker con 4 CPUs ejecutará la solicitud más rápidamente en comparación con un worker con solo 1 CPU.

### 1.1 Requisitos de imagen

Para proporcionar el mejor resultado posible, es necesario que las imágenes enviadas cumplan los siguientes requisitos:

* La calidad mínima de imagen es 720p, 100dpi. Debe mantener siempre la relación de aspecto correcta.
* Las `Invoices` deben estar en **formato A4**.
* Para una correcta detección del documento, se recomienda que la imagen tenga un buen contraste entre el fondo y el documento y que las cuatro esquinas del documento sean visibles.

## 2. Requisitos de hardware

|       | Requisito mínimo                                                            | Requisito recomendado          |
| ----- | --------------------------------------------------------------------------- | ------------------------------ |
| CPU   | CPU de 4 núcleos compatible con el conjunto de instrucciones SSE4.2, >=2GHz | 8 núcleos, compatible con AVX2 |
| RAM   | 4 Gb                                                                        | 8 Gb                           |
| Disco | 4 Gb                                                                        | SSD 4 Gb                       |
| Red   | 100 Mbps                                                                    | 1 Gbps                         |

## 3. Requisitos de software

* Docker 24.0 o superior, o software compatible.

## 4. Estadísticas de rendimiento

La siguiente figura muestra las estadísticas de rendimiento obtenidas en **Facephi OCR Service**, en términos de tiempos obtenidos en los siguientes módulos:

* IdCard
* Invoice

Para llevar a cabo las mediciones de la extracción e interpretación OCR, se utilizó un dispositivo con las siguientes características:

* Intel(R) Xeon(R) Platinum 8275CL CPU 3.00GHz
* Procesador de 16 núcleos
* 32Gb RAM

Tenga en cuenta lo siguiente:

* Las imágenes son de 1080p.
* Solo una imagen por tipo.
* Las facturas (Invoice) son imágenes completas, pero recortadas por nuestro SDK.

|             | IdCard | Invoice |
| ----------- | ------ | ------- |
| Rendimiento | 770 ms | 3100 ms |

## 5. Consideraciones de seguridad

* Mantenga `auth_jwt_secret` en un almacén de secretos o inyéctelo mediante una variable de entorno, en lugar de incluirlo directamente en las imágenes del contenedor.
* La autenticación JWT opcional se configura al inicio a partir de `config.json` o de las variables de entorno `FACEPHI_OCR_REST_AUTH_*`.
* Cuando el JWT está habilitado, `GET /api/v1/version` y `GET /api/v1/health` permanecen públicos, mientras que el resto de los endpoints requieren un JWT válido.
* `GET /api/v1/config` nunca expone la configuración de inicio del JWT y `POST /api/v1/config` no puede modificarla.
