Sistema RAG (Retrieval-Augmented Generation) para simulación de procesos químicos con DWSIM, integrando datos termofísicos validados del NIST-TRC.
| Fuente de Datos | Cantidad |
|---|---|
| ThermoML (NIST-TRC) | 8,539 compuestos |
| Materials Project | 154,879 materiales |
| OQMD | 7,000 materiales DFT |
| Elementos Químicos | 29 |
| Mediciones Experimentales | 123,240 |
| TOTAL ENTIDADES | 170,447 |
- Sistema RAG Híbrido: Búsqueda vectorial + Grafo de conocimiento
- Integración DWSIM: Datos termofísicos listos para simulación
- Datos Validados NIST: ThermoML con referencias DOI
- Property Packages: NRTL, UNIQUAC, Peng-Robinson, SRK, UNIFAC
- +61.4% Mejora: En precisión de búsqueda vs métodos tradicionales
# Clonar repositorio
git clone https://github.com/tu-usuario/rag-dwsim.git
cd rag-dwsim
# Crear entorno virtual
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/Mac
# Instalar dependencias
pip install -r requirements-rag.txtRAG DWSIM bases/
├── dashboard_proyecto_v2.html # Dashboard interactivo
├── requirements-rag.txt # Dependencias Python
│
├── data/ # Datos fuente
│ ├── thermoml/ # Datos ThermoML procesados
│ ├── materials_project/ # Scripts Materials Project
│ ├── oqmd/ # Scripts OQMD
│ └── nobel_elements.json # Elementos químicos
│
├── dwsim_integration/ # Integración DWSIM
│ ├── thermoml_compounds_full.json
│ ├── dwsim_property_database.json
│ └── integration_report.md
│
├── rag_indexes/ # Índices RAG
│ └── knowledge_graph.json
│
├── reports/ # Reportes generados
│ ├── rag_comparison_report.json
│ └── roi_case_study.json
│
├── scripts/ # Scripts Python
│ ├── generate_release_v2.3_dwsim.py
│ ├── thermoml_parser.py
│ ├── dwsim_connector.py
│ ├── query_engine.py
│ └── ...
│
└── docs/ # Documentación
├── README.md
├── QUICKSTART.md
├── RAG_ARCHITECTURE.md
└── Grandes_Hitos_de_la_Ciencia_v2.3_*.pdf
cd scripts
python generate_release_v2.3_dwsim.pyfrom scripts.query_engine import RAGSearcher
from scripts.rag_setup import DWSIMKnowledgeBase
# Cargar base de conocimiento
kb = DWSIMKnowledgeBase()
# Crear buscador RAG
rag = RAGSearcher(kb)
# Buscar propiedades
results = rag.search("etanol propiedades termodinámicas DWSIM", top_k=10)
for r in results:
print(f"{r.title} | Score: {r.score:.1f} | DWSIM: {r.dwsim_compatible}")cd scripts
python generate_pdf_v2.3.pyEl proyecto incluye un caso de estudio completo de diseño de columna de destilación:
- Alimentación: 1000 kg/h, 12% mol etanol
- Destilado: Pureza 95.2% etanol
- Property Package: NRTL
- Precisión: 99.78% vs datos experimentales
| Parámetro | Simulado | Experimental | Error |
|---|---|---|---|
| T destilado | 78.2°C | 78.4°C | 0.26% |
| Pureza EtOH | 0.893 | 0.895 mol/mol | 0.22% |
| Q condensador | -892.4 kW | -895.0 kW | 0.29% |
chromadb- Vector databasesentence-transformers- Embeddingsreportlab- Generación PDFpandas,numpy- Procesamiento de datos
- DWSIM - Simulador de procesos
- ThermoML - NIST-TRC
- Materials Project
- OQMD
- Framework LangChain: Integración para orquestar flujos de trabajo complejos de ingeniería de procesos
- LangGraph Agents: Agentes especializados para diseño de equipos, optimización y análisis de sensibilidad
- Cadenas de Razonamiento: Multi-step reasoning para problemas de ingeniería química complejos
- Fine-tuning con Aprendizaje Contrastivo: Ajuste de modelos de embedding para vocabulario químico especializado
- Dataset de Entrenamiento: Corpus de literatura científica química + nomenclatura IUPAC
- Mejora de Precisión: Objetivo +25% en recuperación de términos técnicos (VLE, NRTL, fugacidad, etc.)
- Core Open Source: Funcionalidades básicas RAG + integración DWSIM (MIT License)
- Extensiones Enterprise:
- Dashboard avanzado con analytics
- Conectores ERP/LIMS
- Soporte multi-usuario
- API REST empresarial
- Consultas en Lenguaje Natural: "Diseña una columna para separar etanol-agua al 95%"
- Generación Automática de Flowsheets: LLM → DWSIM flowsheet
- Validación Automática: Verificación de resultados contra datos experimentales
Este proyecto respeta la licencia GPLv3 de DWSIM mediante las siguientes medidas:
┌─────────────────────────────────────────────────────────────┐
│ RAG DWSIM Platform │
│ (MIT License) │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────┐ ┌─────────────────────────────────┐ │
│ │ Core RAG │ │ Enterprise Extensions │ │
│ │ (Open Source) │ │ (Propietario - Opcional) │ │
│ │ │ │ │ │
│ │ • ThermoML DB │ │ • Dashboard Analytics │ │
│ │ • Vector Index │ │ • Multi-tenant │ │
│ │ • Query Engine │ │ • API Empresarial │ │
│ └────────┬────────┘ └────────────┬────────────────────┘ │
│ │ │ │
│ └──────────┬───────────────┘ │
│ │ │
│ ┌───────▼───────┐ │
│ │ COM API │ ← Barrera de Aislamiento │
│ │ Interface │ │
│ └───────┬───────┘ │
└──────────────────────┼──────────────────────────────────────┘
│
┌─────────────▼─────────────┐
│ DWSIM │
│ (GPLv3) │
│ │
│ Automation COM Server │
│ IPC / Process Boundary │
└───────────────────────────┘
-
Separación de Procesos: La integración con DWSIM se realiza exclusivamente a través de la API de Automatización COM, manteniendo una barrera de proceso clara.
-
Sin Linking Directo: No existe enlace estático ni dinámico con bibliotecas DWSIM, evitando la "contaminación" GPLv3.
-
Comunicación IPC: Toda comunicación es inter-proceso (COM/IPC), lo que según la interpretación de la FSF, no constituye una "obra derivada".
-
Propiedad Intelectual Protegida: Las extensiones propietarias permanecen aisladas del código GPLv3.
Nota: Este proyecto es una plataforma independiente que utiliza DWSIM como herramienta externa de simulación. No modifica, redistribuye ni incorpora código fuente de DWSIM.
Roberto Andrés Flores Núñez
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para detalles.
⚗️ Plataforma de Simulación Industrial con RAG Semántico