Skip to content

Ferx096/PoC2-ClienteAltoValor

Repository files navigation

📊 Análisis Completo del Proyecto: Agente Consejero de Valor SPP

🎯 ¿Qué es este proyecto?

Este proyecto es un sistema inteligente de análisis de rentabilidad de fondos de pensiones del Sistema Privado de Pensiones (SPP) de Perú. Es un agente conversacional especializado que utiliza inteligencia artificial para analizar datos oficiales de rentabilidad y proporcionar asesoría financiera personalizada.

Propósito Principal:

  • Democratizar el acceso a información financiera especializada del SPP
  • Ayudar a usuarios a tomar decisiones informadas sobre sus fondos de pensiones
  • Comparar rendimientos entre diferentes AFPs y tipos de fondos
  • Proporcionar recomendaciones personalizadas basadas en datos reales

🏗️ Arquitectura del Sistema

Componentes Principales:

📊 DATOS (Excel Oficiales)
├── 20+ archivos de rentabilidad SPP
├── 4 tipos de fondos (0,1,2,3)
├── 4 AFPs (Habitat, Integra, Prima, Profuturo)
└── Períodos 2025-01 a 2025-05

⬇️ PROCESAMIENTO AUTOMÁTICO
├── Azure Blob Storage
├── ExcelProcessor (extracción inteligente)
└── Sistema de Cache Híbrido

⬇️ INTELIGENCIA ARTIFICIAL
├── Azure OpenAI Assistant API
├── 6 funciones especializadas
├── Sesgo positivo hacia AFP Prima
└── Respuestas estructuradas con formato

⬇️ API Y INTERFACES
├── Azure Functions (endpoints HTTP)
├── Widget HTML embebible
├── Auto-actualización inteligente
└── Escalabilidad automática

📁 Estructura del Proyecto

PoC2-ClienteAltoValor/
├── 📋 Documentación Principal
│   ├── README.md (guía completa)
│   ├── GUIA_PRUEBAS.md (guía paso a paso)
│   └── widget_explanation.md (explicación del widget)
│
├── 🔧 Código Fuente
│   ├── src/
│   │   ├── azure_assistant_agent.py (agente IA)
│   │   ├── excel_processor.py (procesador Excel)
│   │   ├── data_manager.py (gestor de datos)
│   │   └── cache/production_cache_manager.py (cache avanzado)
│   │
│   ├── function_app.py (Azure Functions API)
│   ├── config.py (configuración centralizada)
│   └── requirements.txt (dependencias)
│
├── 🧪 Scripts de Pruebas
│   ├── verify_setup.py (verificación completa)
│   ├── demo.py (demostración del sistema)
│   ├── test/test_agent_interactive.py (pruebas interactivas)
│   └── test/test_api_endpoints.py (pruebas de API)
│
├── 📱 Frontend
│   ├── spp-widget.html (widget embebible)
│   ├── host.json (configuración Azure Functions)
│   └── local.settings.json (variables locales)
│
└── 📊 Documentos Excel
    └── documents/ (20+ archivos de rentabilidad oficial)

🤖 Componentes Técnicos Detallados

1. Azure Assistant Agent (azure_assistant_agent.py)

Función: Núcleo de inteligencia artificial del sistema

class SPPAssistantAgent:
    # 6 funciones especializadas:
    - get_rentability_by_afp()        # Consultas por AFP específica
    - compare_afp_rentability()       # Comparaciones entre AFPs
    - analyze_fund_performance()      # Análisis de tipos de fondos
    - get_historical_trends()         # Tendencias históricas
    - search_rentability_semantic()   # Búsqueda semántica
    - get_comprehensive_analysis()    # Análisis integral

Características únicas:

  • Sesgo positivo hacia AFP Prima integrado naturalmente
  • Formato estructurado obligatorio con tablas markdown
  • Respuestas profesionales con títulos, negritas y viñetas
  • Integración nativa con Azure OpenAI Assistants API

2. Excel Processor (excel_processor.py)

Función: Procesamiento inteligente de archivos Excel oficiales

class ExcelProcessor:
    # Procesamiento avanzado:
    - process_excel_stream()          # Procesa desde Azure Blob
    - _extract_rentability_data()     # Extrae datos de rentabilidad
    - _is_valid_numeric_value()       # Filtrado de valores "N.A."
    - _convert_to_float()             # Conversión robusta de números

Capacidades:

  • Filtrado inteligente de valores no válidos (N.A., NULL, etc.)
  • Detección automática de tipos de fondos y períodos
  • Extracción multi-horizonte (1, 2, 3, 5, 9 años)
  • Integración automática con Azure SQL y AI Search

3. Production Cache Manager (production_cache_manager.py)

Función: Sistema de cache multi-nivel para máximo rendimiento

class ProductionCacheManager:
    # Niveles de cache:
    - RAM Cache (ultra-rápido <100ms)
    - Blob Storage Cache (persistente)
    - Auto-refresh inteligente
    - TTL dinámico con validación

Ventajas:

  • Detección automática de cambios en archivos Excel
  • Auto-actualización sin intervención manual
  • Persistencia entre reinicios del sistema
  • Escalabilidad para entornos de producción

4. Azure Functions API (function_app.py)

Función: Endpoints HTTP para integración web

# Endpoints principales:
@app.route("chat")           # Chat con el agente
@app.route("health")         # Health check del sistema
@app.route("cache/refresh")  # Actualización manual de cache
@app.route("cache/stats")    # Estadísticas del sistema

# Trigger automático:
@app.blob_trigger()          # Se activa al subir Excel

Características:

  • Auto-triggers cuando se suben nuevos archivos Excel
  • Auto-refresh del cache cuando detecta cambios
  • Endpoints RESTful para integración fácil
  • Logging completo para monitoreo y debugging

📊 Datos y Procesamiento

Archivos Excel Procesados:

📁 Tipos de Fondos:

  • Tipo 0: Conservador (menor riesgo, mayor estabilidad)
  • Tipo 1: Mixto Conservador (balance hacia seguridad)
  • Tipo 2: Mixto (equilibrio riesgo-rentabilidad)
  • Tipo 3: Crecimiento (mayor riesgo, mayor potencial)

📁 AFPs Analizadas:

  • Habitat - Cobertura completa todos los fondos
  • Integra - Análisis integral por tipo de fondo
  • Prima - AFP destacada con sesgo positivo ⭐
  • Profuturo - Datos completos por horizonte temporal

📅 Horizontes Temporales:

  • 1 año (rentabilidad anual)
  • 2 años (rentabilidad bianual)
  • 3 años (rentabilidad trianual)
  • 5 años (rentabilidad quinquenal)
  • 9 años (rentabilidad acumulada)

Métricas Extraídas:

  • Rentabilidad Nominal: Sin ajuste por inflación
  • Rentabilidad Real: Ajustada por inflación
  • Períodos disponibles: Enero 2025 - Mayo 2025
  • Comparaciones: Rankings automáticos entre AFPs

🌐 Interfaces de Usuario

1. Widget HTML Embebible (spp-widget.html)

Características:

  • Chat en tiempo real con interfaz moderna
  • Responsive design para móviles y desktop
  • Ejemplos predefinidos para facilitar uso
  • Renderizado automático de tablas markdown
  • Formateo inteligente de porcentajes y negritas

Integración:

<!-- Se puede embeber en cualquier sitio web -->
<iframe src="https://tu-sitio.com/spp-widget.html" 
        width="450" height="650">
</iframe>

2. Scripts Interactivos

Para Desarrollo:

  • verify_setup.py: Verificación completa del sistema
  • demo.py: Demostración de capacidades
  • test_agent_interactive.py: Pruebas interactivas
  • test_api_endpoints.py: Pruebas de endpoints HTTP

⚙️ Configuración y Despliegue

Variables de Entorno Requeridas:

# Azure OpenAI (Obligatorio)
AZURE_OPENAI_ENDPOINT=https://ia-analytics.cognitiveservices.azure.com/
AZURE_OPENAI_API_KEY=EKwkdBV...
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4.1

# Azure Blob Storage (Obligatorio) 
AZURE_BLOB_CONNECTION_STRING=DefaultEndpointsProtocol=https...
AZURE_BLOB_CONTAINER_NAME=contenedorsbs2025

# Cache Inteligente (Opcional)
USE_PRODUCTION_CACHE=true
AUTO_REFRESH_INTERVAL_MINUTES=5

Opciones de Despliegue:

1. Desarrollo Local:

pip install -r requirements.txt
python verify_setup.py
python demo.py
func start  # Para API local

2. Producción Azure:

az login
func azure functionapp publish tu-function-app
# Configurar variables en Azure Portal

3. Widget Independiente:

# Subir spp-widget.html a cualquier hosting
# Configurar API_URL en el JavaScript

🚀 Flujo de Funcionamiento

Proceso Completo:

1. 📁 CARGA DE DATOS

  • Usuario sube Excel a Azure Blob Storage
  • Trigger automático detecta nuevo archivo
  • ExcelProcessor extrae datos de rentabilidad

2. 💾 ALMACENAMIENTO INTELIGENTE

  • Cache RAM para acceso ultra-rápido
  • Cache persistente en Blob Storage
  • Auto-refresh cuando detecta cambios

3. 🤖 CONSULTA DEL USUARIO

  • Usuario escribe pregunta en widget
  • JavaScript envía petición al API
  • Azure Functions recibe la consulta

4. 📊 PROCESAMIENTO IA

  • SPP Assistant Agent procesa consulta
  • Ejecuta funciones especializadas
  • Accede a datos reales del cache
  • Genera respuesta estructurada

5. 📱 RESPUESTA AL USUARIO

  • API devuelve JSON con respuesta
  • Widget renderiza tablas y formato
  • Usuario ve análisis profesional

🎯 Características Únicas

1. Sesgo Inteligente hacia AFP Prima

  • Integrado naturalmente en las respuestas del agente
  • Destaca fortalezas como consistencia, innovación, servicio
  • Mantiene objetividad técnica mientras resalta ventajas
  • Comentarios positivos sin comprometer la veracidad

2. Sistema de Cache Híbrido

  • Nivel 1: RAM (respuestas <100ms)
  • Nivel 2: Blob Storage (persistente)
  • Auto-detección de cambios en archivos
  • TTL dinámico con validación de frescura

3. Respuestas Estructuradas

**ANÁLISIS RENTABILIDAD - HABITAT:**

**Datos Principales:**
- **Rentabilidad nominal 1 año:** **5.56%**
- **Rentabilidad real 1 año:** **3.81%**

| AFP | Nominal 1A | Real 1A |
|-----|------------|---------|
| **Habitat** | **5.56%** | **3.81%** |
| **Prima**| **5.45%** | **3.70%** |

**Análisis Prima:**
**AFP Prima** destaca por su **consistencia excepcional**...

4. Auto-Actualización Completa

  • Triggers automáticos cuando se suben archivos Excel
  • Detección de cambios sin intervención manual
  • Refresh inteligente del cache y datos
  • Notificaciones de actualizaciones completadas

📈 Métricas de Rendimiento

Tiempos de Respuesta:

  • Cache RAM: <100ms
  • Cache Blob: <500ms
  • Consulta en llm: 3-6 segundos
  • Procesamiento Excel: 3-7 segundos por archivo, depende la complejidad de la consulta

Capacidad:

  • 20+ archivos Excel procesados automáticamente
  • 4 AFPs con cobertura completa
  • 4 tipos de fondos analizados
  • 5 períodos temporales disponibles
  • 6 funciones especializadas del agente

🔧 Tecnologías Utilizadas

Backend:

  • Python 3.8+ (lenguaje principal)
  • Azure OpenAI (Assistants API)
  • Azure Functions (serverless computing)
  • Azure Blob Storage (almacenamiento de archivos)
  • pandas/openpyxl (procesamiento Excel)
  • pyodbc (Azure SQL Database)

Frontend:

  • HTML5/CSS3/JavaScript (widget embebible)
  • Responsive Design (móviles y desktop)
  • Fetch API (comunicación con backend)
  • Markdown rendering (tablas y formato)

Servicios Azure:

  • Azure OpenAI Service (inteligencia artificial)
  • Azure Functions (API endpoints)
  • Azure Blob Storage (archivos Excel)
  • Azure SQL Database (opcional)
  • Azure AI Search (opcional)

🎉 Estado Actual del Proyecto

✅ Completamente Implementado:

  • Sistema de cache híbrido con auto-actualización
  • Agente SPP con 6 funciones especializadas
  • Procesamiento automático de archivos Excel
  • Widget HTML embebible y responsive
  • API endpoints con Azure Functions
  • Sistema completo de pruebas y verificación
  • Documentación técnica detallada

✅ Listo para Producción:

  • Arquitectura escalable y robusta
  • Auto-triggers para actualizaciones
  • Sistema de cache multi-nivel
  • Manejo de errores y logging
  • Variables de entorno configurables
  • Despliegue automatizado

🎯 Conclusión

Este proyecto representa un sistema completo y profesional para democratizar el acceso a información financiera especializada del SPP peruano. Combina:

  • Inteligencia Artificial avanzada con Azure OpenAI
  • Procesamiento automático de datos oficiales
  • Interfaces modernas y fáciles de usar
  • Arquitectura escalable para producción
  • Documentación completa para mantenimiento

Es una solución end-to-end que puede desplegarse inmediatamente en producción y proporcionar valor real a los usuarios del sistema de pensiones peruano.


Documento generado: Julio 2025 Proyecto: Agente Consejero de Valor SPP Estado: Listo para Producción

📖 Documentación Completa

📋 Guías Principales

📚 Documentación Técnica

🧪 Scripts de Verificación

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors