Skip to content

crosaless/wevently-streamlit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wevently - Asistente Inteligente para Consultas de Pagos y Generales

Wevently Python License Status

Proyecto Integrador IA 2025 – Grupo 13 (UTN FRM)
Comisión 5K10 – Ciclo 2025

📖 Documentación🚀 Instalación💬 Uso🧪 Pruebas


📖 Descripción General

Sistema experto multimodal basado en procesamiento de lenguaje natural, análisis de sentimientos, lógica difusa y base de datos en grafos, diseñado para proporcionar asistencia contextualizada a organizadores, prestadores de servicios y propietarios de lugares en la plataforma Wevently.

Implementa un chatbot inteligente que integra técnicas avanzadas de inteligencia artificial simbólica y conexionista para gestionar consultas relacionadas con eventos privados, transacciones de pago y operaciones de la plataforma.

✨ Características Principales

  • Análisis de sentimientos con modelo BETO (8 emociones)
  • Extracción de palabras clave mediante spaCy
  • Categorización difusa de problemas (scikit-fuzzy)
  • Base de conocimiento en Neo4j (grafos semánticos)
  • Generación de respuestas con Ollama/LangChain
  • Interfaz interactiva tipo WhatsApp en Streamlit
  • Logs y métricas de rendimiento por módulo

🏗️ Estructura del Proyecto

wevently-streamlit/
├── src/
│   ├── streamlit_app.py                    # Interfaz principal
│   ├── langchain.py                        # Orquestación NLP y BD
│   └── neo4j_connection.py                 # Gestor de conexiones Neo4j
├── Documentacion_Tecnica/                  # 📁 Fichas técnicas
│   ├── INDICE_TECNICO.md                   # Índice general
│   ├── Modulo_1_Red_Procesos.md            # Red de procesos
│   ├── Modulo_2_Red_Semantica.md           # Modelo conceptual
│   ├── Modulo_3_Frames_Difusos.md          # Lógica difusa
│   ├── Modulo_4_Base_Grafos.md             # Neo4j y Cypher
│   ├── Modulo_5_Flujo_Planificacion.md     # Orquestación
│   ├── Modulo_6_Aprendizaje_Integracion.md # KNIME/AutoML
│   ├── Modulo_7_NLP_Integration.md         # spaCy, BETO
│   ├── Modulo_8_Generativo.md              # Ollama, LangChain
│   └── Modulo_9_API_Asistente.md           # API REST
├── tests/
│   └── test_app.py                         # Pruebas unitarias
├── .streamlit/
│   └── config.toml                         # Configuración Streamlit
├── .env                                    # Variables de entorno
├── .gitignore                              # Archivos excluidos
├── requirements.txt                        # Dependencias Python
├── pruebas_wevently.log                    # Registro de ejecuciones
├── resultados_pruebas.json                 # Métricas de pruebas
└── README.md                               # Este archivo

🧩 Arquitectura del Sistema

El asistente inteligente está compuesto por 9 módulos integrados que trabajan secuencialmente para procesar consultas y generar respuestas:

# Módulo Descripción Herramientas
1 Red de Procesos Define flujos de decisión y reglas de negocio Diagramas, reglas lógicas
2 Red Semántica Ontología del dominio: entidades y relaciones Grafos conceptuales, RDF
3 Frames Difusos Categorización probabilística scikit-fuzzy, funciones membresía
4 Base Orientada a Grafos Almacenamiento de conocimiento estructurado Neo4j, Cypher, langchain_neo4j
5 Flujo de Planificación Orquestación de módulos y scheduling Decoradores, logging
6 Aprendizaje e Integración Entrenamiento y evaluación de modelos KNIME, AutoML, scikit-learn
7 Integración NLP Procesamiento de texto y sentimientos spaCy, transformers, BETO-TASS
8 Integración Generativa Generación de respuestas contextualizadas Ollama (gpt-oss:20b), LangChain
9 API del Asistente Interfaz de usuario y endpoints Streamlit, FastAPI (futuro)

📖 Ver fichas técnicas detalladas →


📚 Documentación Técnica

Cada módulo cuenta con una ficha técnica completa que incluye:

  • ✅ Propósito del componente dentro del sistema
  • ✅ Entradas y salidas esperadas (datos, formatos)
  • ✅ Herramientas y entorno (dependencias, configuración)
  • ✅ Código relevante o enlaces al repositorio
  • ✅ Capturas y ejemplos de funcionamiento
  • ✅ Resultados de pruebas (métricas, validación)
  • ✅ Observaciones y sugerencias de mejora
Recurso Enlace
📂 Documentación Técnica Documentacion_Tecnica/
📑 Índice General INDICE_TECNICO.md
📄 Informe Ejecutivo Google Docs

🚀 Instalación y Configuración

1️⃣ Clonar el Repositorio

git clone https://github.com/crosaless/wevently-streamlit.git
cd wevently-streamlit

2️⃣ Crear Entorno Virtual

python -m venv venv
source venv/bin/activate  # En Windows: venv\Scripts\activate

3️⃣ Instalar Dependencias

pip install -r requirements.txt
python -m spacy download es_core_news_sm

4️⃣ Configurar Variables de Entorno

Completa el archivo .env con tus credenciales:

# Neo4j (Aura Cloud o local)
NEO4J_URI=neo4j+s://xxxxxxx.databases.neo4j.io
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=tu_contraseña_segura
NEO4J_URL=bolt://localhost:7687

# Ollama Cloud
OLLAMA_BASE_URL=https://ollama.com
OLLAMA_API_KEY=tu_api_key_ollama

# HuggingFace (para modelo BETO)
HUGGINGFACE_HUB_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxx

5️⃣ Ejecutar la Aplicación

streamlit run src/streamlit_app.py

La aplicación estará disponible en http://localhost:8501


💬 Uso del Sistema

Flujo de Interacción

  1. Selecciona tu rol: Organizador, Prestador o Propietario
  2. Escribe tu consulta en el campo de texto
  3. Recibe respuesta contextualizada con:
    • Palabras clave detectadas (spaCy)
    • Emoción identificada (BETO)
    • Nivel de confianza (lógica difusa)
    • Solución recuperada de Neo4j
    • Respuesta generada por Ollama

📋 Ejemplo de Flujo Completo

👤 Usuario (Organizador): "Mi tarjeta fue rechazada dos veces, ¿qué hago?"
🔄 Procesamiento del Sistema:
├─ [Módulo 7] Extrae keywords: ['tarjeta', 'rechazar', 'hacer']
├─ [Módulo 7] Detecta emoción: "enojo" (score: 0.82)
├─ [Módulo 3] Calcula confianza: 0.90 (lógica difusa)
├─ [Módulo 4] Consulta Neo4j → Categoría: "Demora en acreditación"
└─ [Módulo 8] Genera respuesta con tono serio y conciliador

🤖 Respuesta del Asistente:
"¡Hola estimado organizador! Entendemos tu frustración. Te recomendamos 
verificar que los datos de tu tarjeta estén actualizados y reintentar. 
Si el problema persiste, contacta a soporte (weventlyempresa@gmail.com) 
con el número de transacción."

🧪 Pruebas y Validación

Ejecutar Tests Unitarios

pytest tests/test_app.py -v

Archivos de Resultados

  • pruebas_wevently.log: Registro detallado de ejecuciones con timestamps
  • resultados_pruebas.json: Métricas de desempeño por módulo

📊 Métricas Típicas Observadas

Métrica Valor Descripción
⏱️ Latencia Total 3-8 seg 90% dominada por LLM
🎯 Precisión Keywords Alta spaCy es_core_news_sm
😊 F1-score Emociones 0.78-0.85 Modelo BETO
🔍 Confianza Promedio 0.70-0.95 Lógica difusa

📦 Dependencias Principales

Categoría Paquete Versión Propósito
Interfaz streamlit ≥1.28.0 Frontend web interactivo
NLP spacy ≥3.6.0 Tokenización y extracción
NLP transformers ≥4.35.0 Modelos BETO
BD Grafos neo4j ≥5.14.0 Cliente Neo4j oficial
BD Grafos langchain-neo4j ≥0.0.3 Integración LangChain-Neo4j
LLM langchain-ollama ≥0.1.0 Integración Ollama Cloud
Lógica Difusa scikit-fuzzy ≥0.4.2 Sistema de inferencia
ML torch ≥2.1.0 Backend transformer
Utilidades python-dotenv ≥1.0.0 Variables de entorno

📋 Ver lista completa →


🤝 Contribuciones

Las contribuciones son bienvenidas. Para colaborar:

  1. Fork el repositorio
  2. Crea una rama: git checkout -b feature/mi-mejora
  3. Haz commit: git commit -m "Agrega mi mejora"
  4. Push: git push origin feature/mi-mejora
  5. Abre un Pull Request

🎯 Áreas de Mejora Prioritarias

  • Gestión de contexto conversacional (memoria de chat)
  • Despliegue local de LLM (Llama 2, Mistral)
  • Expansión de escenarios en base de conocimiento Neo4j
  • API REST con FastAPI para integración con otros sistemas
  • Tests de integración end-to-end

📄 Licencia

Este proyecto está bajo licencia MIT. Consulta el archivo LICENSE para más detalles.


📞 Contacto y Soporte

Recurso Enlace
📖 Documentación Técnica Documentacion_Tecnica/
📊 Informe Ejecutivo Google Docs
🐛 Reportar Issues GitHub Issues
💬 Contacto @crosaless

🎓 Contexto Académico

Este proyecto fue desarrollado como Proyecto Integrador Final de la materia Inteligencia Artificial de la carrera de Ingeniería en Sistemas de Información de la Universidad Tecnológica Nacional - Facultad Regional Mendoza, ciclo lectivo 2025.

Grupo 13 - Comisión 5K10


⭐ Si este proyecto te resultó útil, considera darle una estrella

⬆ Volver al inicio

About

This is an AI asistant for the system "Wevently" to attend user's problems related to payments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages