Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages