Guía_1_1_Sympy_Agroindustrial: lista de prompts para que Copilot genere una app multipágina en Streamlit con SymPy para Ingeniería Agroindustrial en GitHub Codespaces. No incluyo código, solo prompts listos para pegar.


Guía — Ingeniería Agroindustrial

App multipágina en Streamlit + SymPy (Codespaces + Copilot)

1) Objetivo

Construir una aplicación con carpeta pages/ y tres páginas orientadas a operaciones térmicas y de flujo en alimentos, resolviendo simbólicamente con SymPy y visualizando en Streamlit.

2) Estructura de proyecto

Pide a Copilot mantener esta estructura:

.
├─ app.py
├─ pages/
│  ├─ 1_ Cinética_de_secado.py
│  ├─ 2_ Pasteurización_y_letalidad_térmica.py
│  └─ 3_ Flujo_no_newtoniano_en_tuberías.py
├─ utils/
│  └─ symbolic_helpers.py
├─ data/
│  └─ ejemplos.csv
├─ tests/
│  └─ test_utils.py
├─ requirements.txt
├─ README.md
└─ .streamlit/
   └─ config.toml

3) Prompt de entorno y dependencias

“Crea requirements.txt con: streamlit, sympy, numpy, pandas, plotly, scipy. Crea .streamlit/config.toml con tema claro legible. Configura y selecciona .venv como intérprete en Codespaces. Instala dependencias y confirma versión de Python. No generes aún código de páginas.”


4) Prompt para app.py

“Genera app.py para una app multipágina titulada ‘Ingeniería Agroindustrial — Operaciones con SymPy’. Incluye resumen del proyecto, lista de páginas, sección ‘Cómo usar’, verificador de versiones de sympy, numpy y streamlit en st.sidebar, y enlaces a data/ejemplos.csv. No implemente lógica de proceso aquí.”


5) Prompt para utils/symbolic_helpers.py

“Crea utils/symbolic_helpers.py con:

  • symbols_safe() para crear símbolos con nombres legibles en LaTeX.
  • solve_positive(eq_or_system, vars_target) que use sympy.solve y filtre soluciones reales positivas.
  • lambdify_safe(expr, vars) para evaluación numérica.
  • sensitivity_table(expr, var, center, pct_range, steps) que devuelva DataFrame.
  • Validaciones físicas (temperatura > 0 °C en K, caudales > 0, viscosidades > 0).
  • Conversores de unidades básicos (°C↔︎K, min↔︎s). Documenta con docstrings. Sin prints.”

6) Página 1 — Cinética de secado de alimentos

Modelos: Newton, Henderson–Pabis y Page. Cálculo del tiempo para alcanzar humedad objetivo y curvas MR(t).

“Crea pages/1_ Cinética_de_secado.py que:

  • Permita elegir modelo: Newton (MR = e^{−kt}), Henderson–Pabis (MR = A·e^{−kt}), Page (MR = e^{−k t^n}).
  • Entradas: humedad inicial X₀ (b.s.), humedad objetiva X (b.s.), humedad de equilibrio X_e, parámetros {k, A, n}, T de aire, velocidad del aire (solo para referencia).
  • Defina MR = (X − X_e)/(X₀ − X_e).
  • Objetivo: resolver simbólicamente el tiempo t* que cumple MR(t*) = MR_obj.
  • Mostrar: derivación simbólica, t* en s y min, gráfica MR(t) y tabla de sensibilidad t* vs k y vs n (cuando aplique).
  • Exportar .csv con entradas, t*, y tabla de sensibilidad.
  • Validar rangos físicos (0 < MR ≤ 1, k>0, n>0). Usa helpers de utils/ y grafica con plotly.”

7) Página 2 — Pasteurización y letalidad térmica

Cálculo de F, P o F₀ a partir de cinética de inactivación térmica y perfil de temperatura.

“Crea pages/2_ Pasteurización_y_letalidad_térmica.py que:

  • Permita elegir enfoque: (a) D–z clásico o (b) Arrhenius.
    1. D–z: entradas D_ref, z, T_ref, perfil T(t) simple por tramos (subida lineal, sostén, enfriamiento). Definir letalidad instantánea L(t)=10^{(T(t)−T_ref)/z} y F=∫ L(t) dt.
    1. Arrhenius: entradas A, E_a, R, T(t); tasa k(T)=A·exp(−E_a/RT). Relación con reducción log.
  • Objetivo: dado reducción logarítmica objetivo o F objetivo, resolver simbólicamente el tiempo de sostén o la temperatura de proceso requeridos.
  • Mostrar: ecuaciones simbólicas, integración simbólica cuando sea factible y numérica si no, resultado (tiempos y/o T), gráfico T(t) y L(t), tabla de sensibilidad a ±z y ±D_ref.
  • Botones para exportar .csv con plan térmico y resultados.
  • Validaciones: T≥0 °C, D_ref>0, z>0, consistencia de unidades. Usa sympy y scipy para integrales no cerradas.”

8) Página 3 — Flujo no newtoniano en tuberías sanitarias

Leyes potencia (Ostwald–de Waele) y pérdida de carga.

“Crea pages/3_ Flujo_no_newtoniano_en_tuberías.py que:

  • Modelo power-law: τ = K·γ̇^n.
  • Entradas: caudal volumétrico Q, longitud L, diámetro D, consistencia K, índice de flujo n, densidad ρ.
  • Objetivo A: resolver simbólicamente ΔP y h_f para flujo laminar usando equivalentes (Re_g, f_g) para fluidos no newtonianos y relaciones analíticas.
  • Objetivo B: resolver D dado ΔP o h_f objetivo.
  • Mostrar: deducción simbólica, evaluación numérica, advertencias de régimen (criterio de transición generalizado), gráficos h_f vs Q y D vs Q, tabla exportable.
  • Validaciones: K>0, n>0, Q>0, D>0.
  • Indicaciones de limpieza CIP solo como texto informativo (no cálculo).”

9) Prompt para data/ejemplos.csv

“Crea data/ejemplos.csv con 6–10 filas de ejemplo:

  • Secado: X₀, X, X_e, k, A, n.
  • Pasteurización: D_ref, z, T_ref, T_hold, t_ramp, t_hold, t_cool.
  • No newtoniano: Q, L, D, K, n, ρ. Incluye encabezados claros y una fila comentada con unidades.”

10) Prompt para README.md

“Genera README.md con: propósito, requisitos, instalación, ejecución local y en Codespaces, descripción de cada página con ecuaciones base, supuestos y rangos válidos, exportación de resultados, resolución de problemas comunes y referencias breves a textos de operaciones de alimentos.”


11) Prompt de pruebas

“Añade tests/test_utils.py con pytest para validar:

  • solve_positive devuelve soluciones reales positivas en casos sintéticos.
  • sensitivity_table genera DataFrame con valores finitos.
  • Casos mínimos de las tres páginas usando data/ejemplos.csv solo para verificar tipos y positividad de resultados. Sin gráficos.”

12) Prompt de ejecución en Codespaces

“Configura una tarea para streamlit run app.py en el puerto recomendado y expón el puerto público. Añade al README instrucciones breves de ejecución y depuración con st.status o st.info.”


13) Prompt de despliegue en Streamlit Community Cloud

“Agrega al README sección ‘Despliegue’: conectar repo, seleccionar app.py, cache y dependencias, secrets si aplica, y checklist previo. Indica cómo limpiar caché de la app si aparecen errores de paquete.”


14) Prompt de revisión final

“Verifica que cada página:

  1. Muestre derivaciones con sympy.latex o st.latex.
  2. Tenga validaciones de entrada y etiquetas con unidades.
  3. Ofrezca análisis de sensibilidad y exportación .csv.
  4. Mantenga estilo visual consistente. Ajusta textos y accesibilidad.”