0% encontró este documento útil (0 votos)
15 vistas19 páginas

Chatbot Murphi: Asistente Virtual Multiplataforma

Murphi es un asistente virtual inteligente multiplataforma que combina procesamiento de lenguaje natural y un sistema de recordatorios, disponible en escritorio y Android. Su arquitectura cliente-servidor garantiza rendimiento óptimo, y cuenta con características como chat interactivo, análisis de documentos y sincronización en tiempo real. La aplicación utiliza tecnologías modernas como FastAPI, PostgreSQL y Cloudinary, y ofrece un sistema de autenticación seguro mediante JWT.

Cargado por

Daniel Nuñez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas19 páginas

Chatbot Murphi: Asistente Virtual Multiplataforma

Murphi es un asistente virtual inteligente multiplataforma que combina procesamiento de lenguaje natural y un sistema de recordatorios, disponible en escritorio y Android. Su arquitectura cliente-servidor garantiza rendimiento óptimo, y cuenta con características como chat interactivo, análisis de documentos y sincronización en tiempo real. La aplicación utiliza tecnologías modernas como FastAPI, PostgreSQL y Cloudinary, y ofrece un sistema de autenticación seguro mediante JWT.

Cargado por

Daniel Nuñez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD DR.

ANDRÉS BELLO
FACULTAD: TECNOLOGIA E INNOVACIÓN

CARRERA INGENIERIA EN SISTEMAS Y COMPUTACIÓN


SISTEMAS EXPERTOS

DOCENTE: JOSÉ GUILLERMO RIVERA PLEITEZ

TEMA: “CHATBOT V5.0”

Estudiantes:

Douglas Oswaldo Mancía Cruz (mc0874012023)


Diego Ernesto Peña Cárcamo (pc2603012023)
Wilber Geovanni Hernández Abrego (ha1153012023)
José Daniel Nuñez Portillo (np0650012021)
Escobar Dilcia Maribel (Er2962012021)

CHATBOT V5.0
1. RESUMEN EJECUTIVO

¿Qué es Murphi?
Murphi es un asistente virtual inteligente multiplataforma que combina capacidades de
procesamiento de lenguaje natural con un sistema robusto de recordatorios. La aplicación está
disponible tanto en escritorio como en dispositivos móviles Android, ofreciendo una experiencia
unificada y sincronizada entre plataformas.

Características Principales:
• Chat interactivo con IA de OpenAI, Gemini y OpenWeatherMap
• Sistema inteligente de recordatorios con notificaciones multiplataforma
• Análisis de imágenes y documentos PDF
• Sincronización en tiempo real entre dispositivos
• Interfaz de usuario intuitiva y personalizable entre temas claro y oscuro
• Almacenamiento multimedia seguro en la nube con Cloudina

2. ARQUITECTURA DEL SISTEMA

Estructura General
Murphi implementa una arquitectura cliente-servidor robusta y escalable, con componentes
distribuidos que garantizan disponibilidad y rendimiento óptimo.

Componente Tecnología Ubicación

Frontend Desktop Flet (Python) Aplicación nativa


Frontend Mobile React Native Android App
Backend API FastAPI (Python) [Link]
Base de Datos PostgreSQL [Link]
Almacenamiento Cloudinary Cloudinary
IA Processing OpenAI OpenAI API
Flujo de Datos
1. El usuario interactúa con la aplicación (Desktop o Mobile)
2. Las solicitudes se envían al Backend API en Render
3. El backend procesa la información y consulta la IA cuando es necesario
4. Los datos se almacenan en PostgreSQL
5. Las imágenes de perfil se suben a Cloudinary
6. Los recordatorios se sincronizan entre dispositivos en tiempo real

3. APLICACIÓN DE ESCRITORIO

Tecnología Principal: Flet


La aplicación de escritorio está desarrollada con Flet, un framework de Python que permite crear
aplicaciones nativas multiplataforma con una única base de código. Esto garantiza compatibilidad
con Windows, macOS y Linux.

Características Técnicas:
Característica Implementación

Interfaz Nativa Ventana sin bordes personalizada


Sistema de Notificaciones win10toast, pync, notify2
Gestión de Estado Variables de sesión locales
Almacenamiento Local Archivos JSON y txt
Manejo de Archivos Soporte para imágenes y PDFs
Temas Modo claro y oscuro

Servicios Principales:
1. NotificationService: Gestiona las notificaciones del sistema operativo, adaptándose
automáticamente a Windows, macOS o Linux. Utiliza librerías específicas de cada plataforma para
garantizar compatibilidad nativa.
2. ReminderService: Controla el ciclo de vida de los recordatorios, incluyendo sincronización con el
backend, verificación periódica de recordatorios pendientes, y gestión del almacenamiento local en
formato JSON.
4. FUNCIONALIDADES PRINCIPALES

4.1 Sistema de Chat Inteligente


• Procesamiento de lenguaje natural mediante OpenAI y Gemini
• Análisis de imágenes y documentos PDF
• Historial de conversaciones persistente
• Respuestas contextuales y personalizadas
• Respuestas rápidas predefinidas

4.2 Sistema de Recordatorios


El sistema de recordatorios es una de las características más sofisticadas de Murphi. Permite a los
usuarios crear recordatorios mediante lenguaje natural, que son procesados para extraer la tarea y la
hora específica.

Proceso de Creación:
1. Usuario solicita un recordatorio en lenguaje natural
2. Se procesa la solicitud y extrae tarea y hora
3. Backend crea el recordatorio en PostgreSQL
4. Cliente sincroniza y almacena localmente
5. Servicio de verificación revisa cada minuto
6. Notificación del sistema cuando llega la hora

4.3 Gestión de Archivos


• Subida de imágenes (JPG, PNG, WEBP)
• Análisis de documentos PDF
• Codificación en Base64 para transmisión
• Almacenamiento en Cloudinary
• URLs persistentes para acceso posterior
5. BACKEND Y API

FastAPI Framework
El backend está desarrollado con FastAPI, un framework moderno de Python que ofrece alto
rendimiento, validación automática de datos y documentación interactiva. La API está alojada en
[Link], garantizando disponibilidad 24/7.

Endpoints Principales:
Endpoint Método Función

/api/v1/auth/login POST Autenticación de usuarios

/api/v1/auth/me GET Obtener datos del usuario

/api/v1/chats GET/POST Gestión de conversaciones

/api/v1/messages POST Enviar mensajes

/api/v1/reminders GET/POST Gestión de recordatorios

/api/v1/reminders/{id}/complete PUT Marcar como completado

Base de Datos PostgreSQL


La base de datos está alojada en [Link] y contiene las siguientes entidades principales:
• Users: Información de usuarios y autenticación
• Chats: Conversaciones del usuario
• Messages: Mensajes individuales con contenido y metadatos
• Reminders: Recordatorios con fecha, hora y estado

6. INTEGRACIÓN CON INTELIGENCIA ARTIFICIAL

Claude API de Anthropic


Murphi utiliza OpenAI y Gemini, unos de los modelos de lenguaje más avanzados disponibles, para
procesar las consultas de los usuarios y generar respuestas inteligentes y contextuales.
Capacidades de la IA:
• Comprensión de lenguaje natural en español
• Extracción de información temporal para recordatorios
• Análisis de contenido visual (imágenes)
• Procesamiento de documentos PDF
• Respuestas contextuales basadas en historial
• Generación de confirmaciones personalizadas

Procesamiento de Recordatorios
Cuando un usuario solicita crear un recordatorio, se realiza los siguientes pasos:
1. Análisis del mensaje: Identifica la intención de crear un recordatorio
2. Extracción de datos: Obtiene la tarea específica y el tiempo solicitado
3. Formateo: Convierte expresiones temporales ('mañana a las 3pm') a formato ISO
4. Confirmación: Genera un mensaje de confirmación personalizado
5. Registro: El backend almacena el recordatorio en la base de datos

7. APLICACIÓN MÓVIL ANDROID

Tecnología: React Native


La aplicación móvil está desarrollada con React Native en Android Studio, permitiendo un
rendimiento nativo y una experiencia de usuario fluida en dispositivos Android. La aplicación
comparte la misma API backend que la versión de escritorio, garantizando consistencia en los datos
y funcionalidades.

Características Móviles:
• Interfaz táctil optimizada para móviles
• Notificaciones push para recordatorios
• Sincronización automática en segundo plano
• Acceso a cámara para captura de imágenes
• Galería de imágenes integrada

Sincronización Multiplataforma
Los usuarios pueden cambiar entre la aplicación de escritorio y móvil sin perder contexto. Las
conversaciones, recordatorios y configuraciones se sincronizan automáticamente a través del
backend compartido. Esto permite escenarios como:

• Iniciar una conversación en PC y continuarla en el móvil


• Subir una imagen desde el móvil y accederla en cualquier dispositivo

8. SEGURIDAD Y AUTENTICACIÓN

Sistema de Autenticación JWT


Murphi implementa un sistema de autenticación basado en JSON Web Tokens (JWT),
proporcionando seguridad robusta y sin estado para las sesiones de usuario.

Flujo de Autenticación:
1. Usuario ingresa credenciales
2. Backend valida contra PostgreSQL
3. Se genera token JWT con expiración
4. Cliente almacena token localmente
5. Token se incluye en todas las peticiones
6. Backend valida token en cada request

Medidas de Seguridad:
Componente Medida de Seguridad

Comunicación HTTPS con TLS 1.3


Contraseñas Hash bcrypt con salt
Tokens JWT con expiración de 24h
API Rate limiting y validación
Archivos Validación de tipo y tamaño
Base de Datos Conexiones encriptadas
9. ARQUITECTURA DE NOTIFICACIONES
Sistema Multiplataforma
El sistema de notificaciones de Murphi está diseñado para funcionar de manera nativa en cada
sistema operativo, proporcionando una experiencia consistente pero optimizada para cada
plataforma.

Implementaciones por Plataforma:


Plataforma Librería Características

Windows win10toast Toast notifications nativas

macOS pync Notification Center integration

Linux notify2 Desktop notifications (D-Bus)

Android React Native Push notifications nativa


Servicio de Verificación
El ReminderService ejecuta un thread en segundo plano que verifica cada minuto si hay
recordatorios pendientes. Este diseño garantiza:
• Bajo consumo de recursos (verificación cada 60 segundos)

• Precisión de minuto (no segundo) para notificaciones

• Ejecución asíncrona que no bloquea la UI

• Manejo robusto de errores y reconexiones

10. ALMACENAMIENTO EN LA NUBE

Cloudinary CDN
Murphi utiliza Cloudinary como servicio de almacenamiento y entrega de contenido (CDN) para todos
los archivos multimedia. Esto proporciona beneficios significativos:

Ventajas de Cloudinary:

• Almacenamiento escalable sin límites de servidor

• Entrega global rápida mediante CDN

• Transformación automática de imágenes

• URLs persistentes y seguras

• Optimización automática de formato y tamaño

• Backup automático y redundancia

Flujo de Subida de Archivos:


1. Usuario selecciona archivo en la aplicación

2. Archivo se codifica en Base64 para


transmisión

3. Backend recibe y valida el archivo


4. Subir a Cloudinary mediante
API

5. Cloudinary retorna URL pública

6. URL se almacena en PostgreSQL

7. Todas las apps pueden acceder mediante la URL

11. DEPLOY E INFRAESTRUCTURA

[Link] Platform
Toda la infraestructura de backend está desplegada en [Link], una plataforma moderna de
cloud que ofrece deployment automatizado y escalabilidad.

Componentes en Render:
Servicio Tipo Configuración

Backend API Web Service Python con Gunicorn


PostgreSQL Database Instancia managed
Redis Cache Opcional para sesión
12. ESTRUCTURA DEL CÓDIGO

Aplicación Desktop
La aplicación de escritorio sigue una arquitectura modular con separación clara de
responsabilidades:

Archivos Principales:
• [Link]: Clase principal, gestión de UI y flujo de la app
• notification_service.py: Sistema de notificaciones multiplataforma
• reminder_service.py: Gestión de recordatorios y sincronización
• [Link]: Almacenamiento local de recordatorios
• [Link]: Preferencias del usuario
• [Link]: Dependencias de Python

Patrones de Diseño Implementados:

1. Singleton: La clase MurphiApp se instancia una sola vez

2. Observer: Los servicios notifican cambios mediante callbacks

3. Strategy: NotificationService adapta su comportamiento según el OS

4. Repository: ReminderService abstrae el acceso a datos

Dependencias Principales:
Librería Versión Propósito

flet [Link] Framework de UI multiplataforma

requests [Link] Cliente HTTP para API

win10toast 3.0.9 Notificaciones en Windows

pync latest Notificaciones en macOS

notify2 latest Notificaciones en Linux


Respuestas Rápidas
Sistema de respuestas predefinidas que facilita interacciones comunes:
• 'Hola' - Saludo inicial
• '¿Qué tiempo hace?' - Consulta meteorológica
• 'Recuérdame...' - Creación rápida de recordatorios
• '¿Cómo estás?' - Conversación casual

Gestión de Historial
Sistema completo de gestión de conversaciones anteriores:
• Lista de chats en sidebar izquierdo
• Búsqueda de conversaciones por contenido
• Eliminación individual de chats
• Carga bajo demanda para optimizar rendimiento
• Sincronización automática con backend

Análisis Inteligente de Tiempo


El sistema puede interpretar expresiones temporales naturales:
• 'mañana a las 3pm' ® 2025-10-30
15:00:00
• 'hoy a las 10am' ® 2025-10-29 10:00:00
• 'en 2 horas' ® hora actual + 2
horas
• Manejo de formato 12 horas
(am/pm)
• Conversión automática a formato
ISO 8601
14. MANEJO DE ERRORES Y RESILIENCIA

Estrategias de Manejo de Errores


Murphi implementa múltiples capas de manejo de errores para garantizar una experiencia estable
incluso en condiciones adversas:

Nivel de Red:
• Detección de pérdida de conexión
• Reintentos automáticos con backoff exponencial
• Timeout configurable para requests
• Mensajes informativos al usuario

Nivel de API:
• Validación de respuestas HTTP
• Manejo de errores 401 (no autorizado) con re-login
• Logging detallado de errores
• Fallback a comportamiento local cuando sea posible

Nivel de Aplicación:
• Try-catch en operaciones críticas
• Validación de datos de entrada
• Estados de error claros en la UI
• Prevención de estados inconsistentes

Persistencia y Recuperación:
• Token de sesión guardado localmente para auto-login

• Recordatorios almacenados localmente como backup

• Sincronización automática al recuperar conexión

• Estado de UI preservado entre reinicios


15. RENDIMIENTO Y OPTIMIZACIÓN

Optimizaciones Implementadas

Carga de Datos:
• Carga (lazy loading) de conversaciones
• Paginación en listado de chats
• Cache local de datos frecuentes
• Compresión de imágenes antes de subir

Procesamiento Asíncrono:
• Thread separado para verificación de recordatorios
• Operaciones de red no bloqueantes
• Actualización de UI mediante eventos
• Procesamiento en background de notificaciones

Uso de Memoria:
• Liberación de recursos de imágenes no visibles
• Límite de mensajes cargados en memoria
• Garbage collection optimizado
• Almacenamiento eficiente de JSON

Métricas de Rendimiento:
Operación Tiempo Promedio Optimización

Inicio de aplicación ~2 segundos Carga asíncrona


Envío de mensaje <500ms Respuesta streaming
Carga de historial <1 segundo Paginación
Sincronización <200ms Delta sync
Notificación <100ms Thread dedicado
16. CASOS DE USO

Escenario 1: Gestión de Tareas Diarias


Usuario: Estudiante universitario
Necesidad: Recordar entregas de trabajos y exámenes
Solución: 'Recuérdame entregar el trabajo de cálculo mañana a las 11pm'
Resultado: Murphi crea el recordatorio y notifica en el momento exacto

Escenario 2: Consultas Rápidas


Usuario: Profesional ocupado
Necesidad: Información rápida sin cambiar de aplicación
Solución: Pregunta directamente en el chat de Murphi
Resultado: Respuestas contextuales inmediatas sin interrumpir el flujo de trabajo

Escenario 3: Análisis de Documentos


Usuario: Investigador
Necesidad: Extraer información de PDFs
Solución: Sube el PDF y pregunta sobre su contenido
Resultado: La IA analiza y responde preguntas específicas del documento

Escenario 4: Continuidad Multiplataforma


Usuario: Usuario móvil
Necesidad: Acceder desde cualquier dispositivo
Solución: Crea recordatorio en móvil, lo recibe en PC
Resultado: Experiencia sincronizada entre todos los dispositivos

Escenario 5: Análisis de Imágenes


Usuario: Estudiante de diseño
Necesidad: Obtener feedback sobre diseños
Solución: Sube la imagen y pide opinión a la IA
Resultado: Análisis detallado y sugerencias de mejora
17. TRABAJO FUTURO Y MEJORAS

Mejoras Planificadas a Corto Plazo


• Recordatorios recurrentes (diarios, semanales, mensuales)
• Integración con calendarios externos (Google Calendar)
• Modo offline completo con sincronización posterior
• Soporte para comandos por voz
• Widgets de escritorio para recordatorios
• Exportación de conversaciones a PDF

Expansión de Funcionalidades
• Integración con servicios de productividad
• Sistema de etiquetas y categorías para recordatorios
• Análisis de productividad y estadísticas
• Modo de trabajo en equipo con recordatorios compartidos
• Asistente proactivo basado en patrones de uso
• Soporte multiidioma

Optimizaciones Técnicas
• Implementación de WebSocket para actualizaciones en tiempo real
• Sistema de cache distribuido con Redis
• Compresión de datos en tránsito
• Implementación de GraphQL para queries más eficientes
• Microservicios para escalar componentes independientemente

Expansión de Plataformas
• Aplicación iOS nativa
• Extensión para navegadores web
• Integración con asistentes virtuales (Alexa, Google Assistant)
• Aplicación web progresiva (PWA)
18. STACK TECNOLÓGICO COMPLETO

Frontend
Componente Tecnología Versión

Desktop Framework Flet (Python) 0.21.0+


Mobile Framework React Native 0.72+
UI Components React Native Elements Latest
State Management React Context Built-in
Navigation React Navigation 6.x

Backend
Componente Tecnología Propósito

API Framework FastAPI REST API endpoints

ORM SQLAlchemy Database abstraction

Authentication JWT Token-based auth

Password Hashing bcrypt Secure passwords

HTTP Client httpx API calls

Validation Pydantic Data validation

Servicios Externos
Servicio Proveedor Uso

Inteligencia Artificial Anthropic Claude Procesamiento de lenguaje

Almacenamiento Cloudinary Archivos multimedia

Hosting Backend [Link] API y base de datos

Base de Datos PostgreSQL Datos estructurados


19. CONCLUSIONES

Logros del Proyecto


Murphi representa un logro significativo en el desarrollo de aplicaciones multiplataforma modernas.
El proyecto ha demostrado exitosamente:

• Integración Exitosa de IA: Implementación robusta de APIs para procesamiento de


lenguaje natural y análisis de contenido
• Arquitectura Escalable: Sistema diseñado para crecer con backend en cloud y base
de datos managed
• Experiencia Multiplataforma: Funcionamiento consistente en Desktop y Mobile
con sincronización perfecta
• Sistema de Notificaciones Robusto: Implementación nativa para cada plataforma
con verificación confiable
• Seguridad y Privacidad: Autenticación JWT, encriptación de datos y almacenamiento seguro

Impacto y Valor
Murphi ofrece valor tangible a sus usuarios al:

• Simplificar la gestión de tareas y recordatorios


• Proporcionar asistencia inteligente basada en IA avanzada
• Permitir acceso desde cualquier dispositivo
• Analizar documentos e imágenes sin herramientas adicionales
• Mantener privacidad y seguridad de datos personales

Aprendizajes Técnicos
El desarrollo de Murphi ha proporcionado experiencia valiosa en:
• Desarrollo de aplicaciones multiplataforma con código compartido
• Integración de APIs de inteligencia artificial
• Arquitectura cliente-servidor moderna
• Deployment y gestión de infraestructura en cloud
• Sincronización de datos en tiempo real
• Diseño de sistemas de notificaciones multiplataforma
Viabilidad Comercial
Murphi tiene potencial como producto comercial debido a:
• Base tecnológica sólida y escalable
• Propuesta de valor clara y diferenciada
• Costos operativos controlados (servicios cloud)
• Posibilidad de modelo freemium con características premium
• Mercado amplio (estudiantes, profesionales, empresas)

MURPHI

Asistente Virtual Inteligente Multiplataforma

Información del Proyecto

Backend API: [Link]

Base de Datos: PostgreSQL en [Link]

IA: OpenAI, Gemini, OpenWeatherMaps

Almacenamiento: Cloudinary

También podría gustarte