1 Home
Miguel edited this page 2025-02-07 07:36:05 -03:00

LocalScriptsWeb

Descripción General

LocalScriptsWeb es una aplicación web local diseñada para simplificar la gestión y ejecución de scripts Python en entornos Windows. El proyecto surge de la necesidad de unificar diferentes scripts y funciones utilizadas en distintos proyectos, proporcionando una interfaz web centralizada para su gestión y ejecución.

Objetivos

  1. Unificar scripts de diferentes proyectos en una única aplicación
  2. Minimizar el tiempo de desarrollo para nuevos grupos de scripts
  3. Facilitar la reutilización de funciones comunes
  4. Proporcionar una interfaz web intuitiva y fácil de usar
  5. Mantener configuraciones específicas por directorio de trabajo
  6. Gestionar perfiles globales para configuraciones comunes

Arquitectura

Estructura del Proyecto

LocalScriptsWeb/
├── backend/
│   ├── app.py                 # Aplicación Flask principal
│   ├── core/                  # Funciones compartidas
│   │   ├── profile_manager.py
│   │   ├── workdir_config.py
│   │   └── directory_handler.py
│   └── script_groups/         # Grupos de scripts
│       ├── group1/
│       │   ├── x1.py
│       │   └── x2.py
│       └── group2/
│           ├── x1.py
│           └── x2.py
├── frontend/
│   ├── static/
│   │   ├── css/
│   │   └── js/
│   └── templates/
└── data/                      # Datos locales
    └── profiles.json

Componentes Principales

1. Gestor de Scripts

  • Descubrimiento automático de scripts (x1.py a x10.py)
  • Organización por grupos funcionales
  • Sistema de descripción basado en docstrings
  • Ejecución unificada con acceso a configuraciones

2. Sistema de Perfiles

  • Gestión de configuraciones globales
  • Almacenamiento de API keys y preferencias de LLM
  • Configuración de directorios de trabajo
  • Interfaz de edición y gestión

3. Configuración por Directorio

  • Configuraciones específicas por grupo de scripts
  • Almacenamiento local en script_config.json
  • Versionado y seguimiento de cambios
  • Independencia entre directorios de trabajo

Convenciones y Estándares

Estructura de Scripts

"""
Nombre del Script
Descripción detallada del script y su funcionalidad
"""
from ..base_script import BaseScript

class MiScript(BaseScript):
    def run(self, work_dir: str, profile: Dict[str, Any]) -> Dict[str, Any]:
        # Implementación
        return {"status": "success", "data": {...}}

Configuración del Directorio

{
    "version": "1.0",
    "created_at": "2024-02-07T10:00:00",
    "updated_at": "2024-02-07T10:00:00",
    "group_settings": {
        "group_id": {
            // Configuración específica del grupo
        }
    }
}

Perfiles

{
    "id": "default",
    "name": "Default Profile",
    "work_dir": "",
    "llm_settings": {
        "model": "gpt-4",
        "temperature": 0.7,
        "api_key": ""
    }
}

Flujo de Trabajo

  1. Configuración Inicial

    • Selección o creación de perfil
    • Configuración de API keys y preferencias globales
    • Selección de directorio de trabajo
  2. Ejecución de Scripts

    • Selección del grupo de scripts
    • Configuración específica del grupo (si es necesaria)
    • Ejecución y monitoreo de resultados
  3. Gestión de Configuraciones

    • Edición de perfiles globales
    • Modificación de configuraciones por directorio
    • Actualización de parámetros específicos por grupo

Ventajas del Diseño

  1. Modularidad

    • Separación clara entre grupos de scripts
    • Reutilización de código común
    • Fácil adición de nuevos grupos
  2. Mantenibilidad

    • Estructura consistente para todos los scripts
    • Configuraciones centralizadas
    • Documentación integrada
  3. Usabilidad

    • Interfaz web intuitiva
    • Configuración visual de parámetros
    • Retroalimentación inmediata
  4. Extensibilidad

    • Fácil adición de nuevos scripts
    • Sistema de plugins potencial
    • Soporte para diferentes tipos de tareas

Desarrollo de Nuevos Scripts

  1. Crear Nuevo Grupo

    • Crear directorio en script_groups/
    • Definir scripts x1.py, x2.py, etc.
    • Documentar funcionalidad en docstrings
  2. Implementar Scripts

    • Heredar de BaseScript
    • Implementar método run()
    • Definir configuraciones necesarias
  3. Configuración

    • Definir parámetros en script_config.json
    • Implementar validación si es necesaria
    • Documentar opciones de configuración

Limitaciones y Consideraciones

  1. Entorno

    • Diseñado para Windows
    • Ejecución local únicamente
    • Requiere Python instalado
  2. Seguridad

    • Sin autenticación de usuarios
    • Almacenamiento local de API keys
    • Acceso solo desde localhost
  3. Rendimiento

    • Limitado por recursos locales
    • Procesamiento secuencial de scripts
    • Interface web para monitoreo

Requerimientos Técnicos

Software

  • Python 3.8+
  • Flask
  • Navegador web moderno

Librerías Python

flask>=2.0.0
python-dotenv>=1.0.0
requests>=2.25.0

Instalación y Configuración

  1. Preparación del Entorno
git clone [repository-url]
cd LocalScriptsWeb
python -m venv venv
source venv/bin/activate  # o venv\Scripts\activate en Windows
pip install -r requirements.txt
  1. Configuración Inicial
python backend/app.py
  1. Acceso

Desarrollo y Contribución

  1. Guías de Contribución

    • Seguir convenciones de nomenclatura
    • Documentar nuevo código
    • Mantener estructura modular
  2. Testing

    • Pruebas unitarias para scripts
    • Validación de configuraciones
    • Testing de interfaz

Estado Actual y Roadmap

Versión Actual (1.0.0)

  • Funcionalidad base implementada
  • Sistema de perfiles
  • Gestión de configuraciones por directorio
  • Interfaz web básica

Próximas Características

  1. Sistema de logging mejorado
  2. Ejecución asíncrona de scripts
  3. Mejoras en la interfaz de usuario
  4. Sistema de plugins

Conclusión

LocalScriptsWeb proporciona una solución práctica para la gestión y ejecución de scripts Python, con un enfoque en la reutilización de código y la facilidad de uso. La arquitectura modular y las convenciones establecidas facilitan la adición de nuevos scripts y el mantenimiento del sistema.