1 Home
Miguel edited this page 2025-02-08 19:37:03 -03:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Gestor de Configuraciones y Ejecución de Scripts

1. Resumen y Objetivo

El software es una aplicación web desarrollada con Flask y Tailwind CSS (vía cdn.tailwindcss.com), diseñada para ejecutarse en una única PC con Windows sin requerir autenticación. La aplicación tiene dos objetivos principales:

  • Gestión de Configuraciones:
    Permite editar y mantener configuraciones en tres niveles:

    • Nivel 1: Configuración general (ej. modelo LLM, API keys).
    • Nivel 2: Configuración específica para cada grupo de scripts.
    • Nivel 3: Configuración del entorno de trabajo donde se ejecutan los scripts.
  • Ejecución de Scripts:
    Facilita la ejecución de scripts Python agrupados en directorios, pasando como parámetros las configuraciones de los tres niveles y capturando su salida en un bloque de logs.


2. Requisitos Funcionales

2.1 Gestión de Configuraciones

La aplicación gestiona tres niveles de configuración:

Nivel 1 Configuración General

  • Propósito:
    Almacenar parámetros globales (ej. modelo LLM, API keys).
  • Archivos:
    • data.json: Contiene los valores actuales.
    • esquema.json: Define la estructura y validaciones.
  • Ubicación:
    Directorio /data.

Nivel 2 Configuración del Grupo de Scripts

  • Propósito:
    Parámetros específicos para cada grupo de scripts (por ejemplo, rutas y opciones de ejecución).
  • Archivos:
    • data.json: Configuración específica de cada grupo, ubicado en
      backend/script_groups/{script_groups_name}.
    • esquema.json: Archivo único que define el esquema común para todos los grupos, ubicado en
      backend/script_groups/.
    • Archivo de Directorio de Trabajo:
      La cadena de texto que indica el camino al directorio de trabajo se almacena en un archivo separado, por ejemplo, work_dir.txt, ubicado en
      backend/script_groups/{script_groups_name}/work_dir.txt.

Nivel 3 Configuración del Directorio de Trabajo

  • Propósito:
    Almacenar parámetros específicos del entorno de trabajo donde se ejecutan los scripts.
  • Archivos:
    • data.json: Contiene la configuración del directorio de trabajo.
    • esquema.json: Define la estructura y validaciones para este nivel, ubicado en
      backend/script_groups/{script_groups_name}.
  • Nota:
    La cadena del directorio de trabajo no se almacena en este nivel, ya que se gestiona desde el Nivel 2 en un archivo separado.

2.2 Ejecución de Scripts

  • Detección de Scripts:
    Cada grupo de scripts, ubicado en backend/script_groups/{script_groups_name}, contiene archivos Python nombrados x1.py, x2.py, ..., xn.py.

  • Descripción de Scripts:
    Se extrae una breve descripción de cada script (por ejemplo, del docstring o comentario inicial).

  • Ejecución:
    Cada script se ejecuta mediante un botón "Ejecutar" que le pasa como parámetros los datos actuales de los tres niveles (1, 2 y 3).

  • Captura de Salida:
    Toda la salida que se genere en consola durante la ejecución se redirige al bloque de logs de la aplicación.


2.3 Bloque de Logs

  • Visualización:
    Un área en la página principal muestra en tiempo real la salida de la ejecución de los scripts y otras actividades.
  • Acción:
    Un botón "Limpiar" permite borrar el contenido del log.

2.4 Persistencia

  • Combo List:
    La selección del grupo de scripts se mantiene persistente entre recargas de la página.
  • Directorio de Trabajo:
    La ruta al directorio de trabajo se almacena en backend/script_groups/{script_groups_name}/work_dir.txt y se mantiene persistente.

3. Estructura de Archivos y Directorios

La organización de archivos y directorios es la siguiente:

/data
   ├── data.json           # Configuración general (Nivel 1)
   └── esquema.json        # Esquema para Nivel 1

/backend
   └── script_groups
         ├── esquema.json  # Esquema común para Nivel 2 (configuración del grupo)
         ├── {script_groups_name_1}
         │      ├── data.json         # Configuración del grupo (Nivel 2)
         │      ├── work_dir.txt      # Cadena de texto con el directorio de trabajo
         │      ├── x1.py             # Script 1
         │      ├── x2.py             # Script 2
         │      └── esquema.json      # Esquema para Nivel 3 (configuración del directorio de trabajo)
         ├── {script_groups_name_2}
         │      ├── data.json         # Configuración del grupo (Nivel 2)
         │      ├── work_dir.txt      # Cadena de texto con el directorio de trabajo
         │      ├── x1.py
         │      └── esquema.json      # Esquema para Nivel 3
         └── ... (otros grupos)
         
/(Directorio de Trabajo Variable)
   └── data.json         # Configuración del directorio de trabajo (Nivel 3)