Skip to content

Edwin1719/Smart_Energy

Repository files navigation

Smart Energy - Sistema Multiagente para Proyectos Fotovoltaicos

Vision General

Smart_Energy es un sistema multiagente inteligente basado en AgentScope que automatiza completamente el diseno, presupuestacion y planificacion de sistemas fotovoltaicos. Desde informacion basica inicial, el sistema genera un analisis tecnico-economico completo con plan de instalacion detallado.

Caracteristicas Principales

  • Analisis Integral: Desde recurso solar hasta plan de instalacion
  • Multiagente Especializado: 5 agentes expertos coordinados inteligentemente
  • Soporte Multi-pais: Colombia, Chile y facil extension a otros paises
  • Sistemas On-grid y Off-grid: Analisis especializado segun tipo de instalacion
  • Calculo de Rentabilidad Básica: Análisis de inversión y ahorros potenciales
  • Cumplimiento Normativo: Considera regulaciones locales automaticamente

Arquitectura del Sistema

Agentes Especializados

graph TD
    A[Smart_Energy_LeadAgent] --> B[SolarResourceAgent]
    A --> C[TiltAndPanelChoiceAgent]
    A --> D[MaterialsAndLaborAgent]
    A --> E[InstallationPlanAgent]

    B --> F[Datos Irradiacion Solar]
    C --> G[Optimizacion Orientacion]
    D --> H[Lista Materiales + Costos]
    E --> I[Plan Instalacion]
Loading

1. SolarResourceAgent

  • Consulta APIs de irradiacion solar (PVGIS, NREL)
  • Analisis de variacion estacional
  • Factores de perdidas climaticas

2. TiltAndPanelChoiceAgent

  • Calculo de inclinacion y azimuth optimos
  • Evaluacion economica de sistemas de tracking
  • Seleccion de paneles (2-3 alternativas)

3. MaterialsAndLaborAgent

  • Calculo completo de materiales y cantidades
  • Estimacion de costos (local vs importado)
  • Costos de mano de obra especializada

5. InstallationPlanAgent

  • Cronograma detallado de instalacion
  • Protocolos de seguridad especificos
  • Cumplimiento normativo por pais

Herramientas Especializadas

  • solar_resource_tool: Integracion con APIs de datos solares
  • panel_catalog_tool: Catalogo de paneles con precios actualizados
  • price_lookup_tool: Consulta de precios locales en tiempo real
  • material_calc_tool: Calculos precisos de materiales
  • finance_analysis_tool: Indicadores financieros avanzados
  • installation_planning_tool: Planificacion optimizada de recursos

Instalacion y Configuracion

Prerrequisitos

# Python 3.10+
python --version

# AgentScope
pip install agentscope

# Instalar dependencias
pip install -r requirements.txt

# O instalar dependencias específicas
pip install agentscope requests pandas numpy streamlit yfinance aiohttp scipy

Configuracion Inicial

  1. Clonar el proyecto:
git clone <repository_url>
cd smart_energy_project
  1. Configurar variables de entorno:
# .env file
OPENAI_API_KEY=tu_api_key_aqui
PVGIS_API_URL=https://re.jrc.ec.europa.eu/api/v5_3/MRcalc
  1. Configurar modelo LLM en config/defaults.json:
{
  "model_configuration": {
    "openai": {
      "model_name": "gpt-4",
      "temperature": 0.1,
      "max_tokens": 2000
    }
  }
}

Uso del Sistema

Ejecucion Basica

import asyncio
from agents.lead_agent import SmartEnergyLeadAgent

async def main():
    # Configuracion del modelo
    model_config = {
        "model_name": "gpt-4",
        "api_key": "tu_api_key",
        "temperature": 0.1
    }

    # Inicializar agente principal
    lead_agent = SmartEnergyLeadAgent(model_config)

    # Datos del proyecto
    project_data = {
        "pais": "Colombia",
        "ciudad": "Tunja",
        "latitud": 5.537,
        "longitud": -73.367,
        "demanda_kwh_dia": 12.0,
        "tipo_instalacion": "off-grid",
        "autonomia_dias": 2,
        "presupuesto": None
    }

    # Procesar proyecto completo
    resultado = await lead_agent.process_solar_project(project_data)
    print(resultado)

asyncio.run(main())

Formas de Ejecutar el Sistema

Aplicación CLI (Línea de comandos)

python main.py
  • Ejecuta análisis completo con datos predefinidos (Tunja, Colombia)
  • Genera reporte en resultado_smart_energy.json
  • Ideal para testing y automatización

Aplicación Web (Interfaz gráfica)

python run_streamlit.py
# O directamente:
streamlit run streamlit_app.py
  • Interfaz web completa en http://localhost:8501
  • Formularios interactivos para ingresar datos
  • Visualizaciones y dashboards en tiempo real

Test Completo del Sistema

python test_complete_multiagent_flow.py
  • Validación integral de todos los agentes
  • Casos de prueba: Tunja (Colombia) y Santiago (Chile)
  • Verificación de funcionamiento end-to-end

Estructura de Salida

Reporte Final Generado

{
  "proyecto_info": {
    "ubicacion": "Tunja, Colombia",
    "coordenadas": "5.537, -73.367",
    "demanda_diaria": "12 kWh/dia",
    "tipo_sistema": "off-grid"
  },
  "recurso_solar": {
    "irradiacion_promedio_anual": 4.3,
    "horas_pico_sol_promedio": 4.3,
    "variacion_estacional": {"min": 4.0, "max": 5.4}
  },
  "diseno_sistema": {
    "orientacion_optima": {
      "inclinacion_grados": 5.5,
      "azimuth_grados": 180
    },
    "paneles_recomendados": [...],
    "dimensionado_preliminar": {
      "paneles_necesarios": 26,
      "potencia_total_kwp": 14.04,
      "area_total_m2": 52.0
    }
  },
  "materiales_costos": {
    "lista_materiales": {...},
    "resumen_coste_total": {
      "total_proyecto": 35420.50,
      "coste_por_kwp": 2523.47,
      "coste_por_kwh_dia": 2951.71
    }
  },

  "plan_instalacion": {
    "cronograma_instalacion": {
      "duracion_total_dias": 6,
      "fases": [...]
    }
  }
}

Configuracion Avanzada

Defaults Tecnicos

Ubicados en config/defaults.json:

{
  "technical_defaults": {
    "autonomia_dias": 2,
    "dod_bateria": 0.50,
    "eficiencia_inversor": 0.95,
    "perdidas_sistema": 0.15,
    "tracker_threshold": 0.15
  }
}

Configuracion por Pais

{
  "regulatory_compliance": {
    "Colombia": {
      "codigo_electrico": "RETIE",
      "autoridad_regulatoria": "UPME",
      "iva_porcentaje": 0.19
    },
    "Chile": {
      "codigo_electrico": "NCh Elec 4/2003",
      "autoridad_regulatoria": "SEC",
      "iva_porcentaje": 0.19
    }
  }
}

Desarrollo y Extension

Agregar Nuevo Pais

  1. Actualizar defaults.json:
{
  "regulatory_compliance": {
    "NuevoPais": {
      "codigo_electrico": "Codigo local",
      "autoridad_regulatoria": "Autoridad",
      "iva_porcentaje": 0.XX
    }
  }
}
  1. Agregar cálculos de ahorro potencial en MaterialsAndLaborAgent
  2. Incluir normativas especificas en InstallationPlanAgent

Agregar Nueva Herramienta

# tools/nueva_herramienta.py
class NuevaHerramienta:
    def nueva_funcion(self, parametros):
        """
        Descripcion de la funcionalidad
        """
        # Implementacion
        return resultado

Agregar Nuevo Agente

# agents/nuevo_agente.py
from agentscope.agent import ReActAgent

class NuevoAgente(ReActAgent):
    def __init__(self, model_config):
        super().__init__(
            name="NuevoAgente",
            sys_prompt=self._get_system_prompt(),
            # ...configuracion
        )

Roadmap de Desarrollo

Sprint 1: Core Implementation ✅ COMPLETADO

  • Estructura base de agentes
  • Herramientas principales
  • Casos de uso ejemplo
  • Configuración básica

Sprint 2: APIs y Datos Reales ✅ 80% COMPLETADO

  • Integración completa PVGIS API (funcionando con datos reales)
  • Datos reales de irradiación solar para múltiples países
  • Cálculos precisos de materiales y costos
  • Sistema multiagente completamente coordinado
  • Estimación de rentabilidad y ahorros potenciales
  • Base de datos de componentes expandida

Sprint 3: Funcionalidades Avanzadas

  • Optimizacion con algoritmos geneticos
  • Simulacion Monte Carlo para riesgos
  • Integracion con sistemas de diseno CAD
  • Dashboard web interactivo

Sprint 4: Inteligencia Aumentada

  • Aprendizaje de patrones de instalacion
  • Recomendaciones predictivas
  • Optimizacion automatica de costos
  • Alertas de mercado y oportunidades

Sprint 5: Plataforma Comercial

  • API REST para integradores
  • Sistema de usuarios y proyectos
  • Reportes PDF profesionales
  • Integracion con CRM

Supuestos y Limitaciones Actuales

Supuestos Tecnicos

  • Autonomia por defecto: 2 dias (configurable)
  • DoD baterias: 50% (estandar conservador)
  • Eficiencia inversor: 95% (tipico para equipos modernos)
  • Perdidas sistema: 15% (incluye cableado, suciedad, temperatura)
  • Tracker threshold: 15% mejora minima para recomendar

Limitaciones Conocidas

  1. Datos solares: Dependiente de disponibilidad APIs externas
  2. Precios: Estimaciones basadas en rangos de mercado
  3. Normativas: Actualizaciones manuales requeridas
  4. Complejidad sitio: No considera obstaculos complejos

Proximas Mejoras

  • Integracion con imagenes satelitales para analisis de sombreado
  • ML para prediccion de costos mas precisa
  • Conexion directa con distribuidores para precios reales
  • Simulacion 3D de instalacion

Soporte y Contribucion

Reportar Bugs

  • Usar GitHub Issues con template de bug report
  • Incluir logs completos y configuracion

Contribuir

  1. Fork del repositorio
  2. Crear branch feature/nombre-feature
  3. Commit con mensajes descriptivos
  4. Pull request con descripcion detallada

Contacto


Licencia

Este proyecto esta licenciado bajo Apache License 2.0 - ver el archivo LICENSE para detalles.


Smart Energy - Democratizando el acceso a la energia solar a traves de inteligencia artificial

About

Sistema multiagente inteligente basado en **AgentScope** que automatiza completamente el diseno, presupuestacion y planificacion de sistemas fotovoltaicos. Desde informacion basica inicial, el sistema genera un analisis tecnico-economico completo con plan de instalacion detallado.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages