File size: 5,060 Bytes
c226a30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Construction Intelligence AI

**Prototipo independiente de portafolio** que integra modelos de machine learning, lectura documental y auditoría de cantidades BIM en un dashboard interactivo. Construido con Python, Streamlit, Plotly, PyTorch, scikit-learn, RapidOCR y IfcOpenShell.

> **Alcance:** demostración con datos públicos y cotizaciones ficticias. No es un sistema implementado en una constructora ni una integración activa con Revit/Dynamo o Rhino/Grasshopper. Los resultados no sustituyen validación comercial, fiscal ni técnica.

## Qué demuestra

- **Cotizaciones estructuradas:** lectura de PDF de demostración, extracción de folio, cliente, conceptos, cantidades y precios; cálculo determinista de importes; edición, aprobación humana y exportación JSON/CSV.
- **Document AI:** comparación de regresión logística y red MLP para clasificar *líneas ya transcritas* de recibos públicos CORD v1.
- **OCR neuronal:** RapidOCR frente a configuraciones Tesseract, con clasificación posterior y alertas.
- **Forecasting:** experimentos LSTM/GRU frente a persistencia sobre los índices PPI estadounidenses FRED WPU101 y WPU08; no representan precios en MXN.
- **BIM:** auditoría y extracción de cantidades de un modelo IFC público; reglas de coherencia y partidas bloqueadas en caso de alerta.

## Resultados experimentales (con alcance y límites)

| Tarea | Resultado observado | Interpretación |
|---|---|---|
| Forecasting acero | LSTM MAE 5.965 vs persistencia 7.825, mejora observada 23.77% | Prueba temporal de un paso; experimento exploratorio tras revisar varias veces ese periodo |
| Clasificación de líneas CORD v1 | MLP accuracy 91.77%, F1 macro 83.56% | Texto transcrito; **no** es exactitud end-to-end desde fotografía |
| RapidOCR | 40 de 51 líneas emparejadas (~78.4%) | Emparejamiento textual aproximado en solo 5 recibos, no CER/WER |
| IFC público | 123 elementos, 357 mediciones y 16 alertas | Evidencia de auditoría; no conexión directa a Revit o Rhino |

La regresión logística se eligió para el clasificador por **validación** (macro F1 81.44% vs 81.16% de MLP); el desempeño en prueba se muestra como referencia. La madera conserva el método de persistencia.

## Instalación en Windows

1. Tener Python 3.10 u 3.11 disponible.
2. Abrir una terminal PowerShell en esta carpeta.
3. Ejecutar:

```powershell
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe -m streamlit run app.py
```

Abrir `http://localhost:8501`. La primera instalación puede descargar paquetes y modelos OCR.

## Demostración rápida: cotización con discrepancia

1. En el menú elegir **Cotizaciones estructuradas**.
2. Cargar `demos/cotizacion_demo_error.pdf`.
3. Revisar el ejemplo: 2 unidades × 3,000 = 6,000, pero el documento reporta 5,990.
4. Mostrar las alertas, corregir el dato con autorización del revisor y exportar el registro estructurado.
5. Comparar con `demos/cotizacion_demo_correcta.pdf`.

Es una plantilla de demostración con formato conocido: no se afirma que extraiga cualquier cotización de proveedor.

## Estructura

```text
app.py                 Dashboard Streamlit
quotation_pipeline.py  Extracción + validaciones deterministas
quotation_ui.py        Interfaz editable de cotizaciones
data/                   Métricas y resultados públicos procesados
models/                 Pesos y clasificador de demostración
assets/                 Evidencia gráfica de experimentos
demos/                  Cotizaciones sintéticas y JSON de ejemplo
schemas/                Contrato JSON de cotización
tests/                  Pruebas automatizadas de reglas de cotización
experimentos/           Scripts históricos de entrenamiento exploratorio
```

## Pruebas

```powershell
.\.venv\Scripts\python.exe -m unittest discover -s tests -v
```

## Procedencia y ética

- FRED: índices WPU101 y WPU08 — [Federal Reserve Economic Data](https://fred.stlouisfed.org/).
- Recibos CORD v1 — [dataset público](https://huggingface.co/datasets/Heliosoph/CORD); las imágenes reproducidas son de sus ejemplos públicos; revisar sus términos/licencia para reutilización.
- Modelo BIM IFC de acceso público, con cantidades observadas en el experimento.
- Los PDFs en `demos/` son **ficticios**, sin datos de clientes reales.

Los módulos de OCR, clasificación, forecasting y BIM se evalúan con métricas distintas: no existe una “precisión global” de este prototipo. Para utilizarlo en producción se requieren documentos reales autorizados, pruebas independientes, protección de datos, monitoreo y validación humana de cifras.

## Colab

Los scripts de `experimentos/` documentan versiones **anteriores** del entrenamiento de series temporales. Los resultados finales del dashboard corresponden a experimentos posteriores con retornos logarítmicos y auditoría de métricas: **no** se presenta esos scripts históricos como reproducción exacta de los pesos empaquetados.