Skip to content

Leviakc/upiichat

 
 

Repository files navigation

UpiiChat

Este proyecto está inspirado en el proyecto de CHATBOT-UPIICSA de Eduardo, este proyecto igual busca ayudar a la comunidad de UPIICSA a resolver sus dudas de una manera rápida y eficiente con technologías web.

🚧 Funcionalidades Pendientes

Funcionalidad Principal y Rendimiento

  • Usar IndexedDB para almacenar los embeddings pre-calculados para cargas instantáneas en visitas recurrentes
  • Resolver bug del service worker
  • Terminar la funcionalidad de botón "Configurar"

Mejoras de UI/UX

  • Crear componente tooltip para sugerencias de UI
  • Implementar UUID fallback si no está disponible crypto.randomUUID()
  • Detectar si el usuario ha instalado la PWA y agregar la etiqueta 'user-scalable=no' para hacer la experiencia más nativa
  • Mejorar accesibilidad de modal:
    • Gestionar el foco del teclado al abrir/cerrar el modal
    • Añadir atributos ARIA (role="dialog", aria-modal="true")

Arquitectura y Despliegue

  • Implementar importación dinámica (import()) o code-splitting para cargar de forma diferida las librerías de IA

Futuras Funcionalidades y Características Avanzadas

  • Sistema de feedback con Google Sheets como backend
  • Integrar WebLLM con RAG (Retrieval-Augmented Generation) para dispositivos potentes

✅ Funcionalidades Completadas

Funcionalidad Principal y Rendimiento

  • Optimizar la carga de estrategias para evitar la reinicialización de una estrategia ya cargada
  • Implementar un Web Worker para gestionar la carga en segundo plano de estrategias secundarias (como Pyodide)
  • Crear un script de pre-cómputo para generar los embeddings sin conexión
  • Configurar un Service Worker para almacenar en caché activos grandes (modelos de IA, Pyodide)
  • Agregar opción de "Más herramientas" para mostrar herramientas adicionales que pueden ser útiles para los estudiantes como saes fill-form
  • Funcionalidad de búsqueda en historial de chats

Mejoras de UI/UX

  • Implementar un estado de carga global para deshabilitar la entrada de chat mientras se inicializan las estrategias
  • Sanitizar las respuestas del asistente para convertir automáticamente las URLs en enlaces clicables
  • Añadir un botón "Copiar Mensaje" a las respuestas del asistente
  • Arreglar "New chat" error para mobile
  • Add vercel json to redirect everything to the SPA
  • Implementar un historial de chat persistente usando localStorage
  • Crear un componente modal para mostrar información adicional o configuraciones
  • Implementar menú de tres puntos para editar/eliminar chats (con long-press en móvil)
  • Crear componente toast para notificaciones breves
  • Implementar un buscador de preguntas si el bot puede no saber la respuesta y puede existir
  • Implementar driver.js para crear un tour interactivo de la aplicación

Arquitectura y Despliegue

  • Introducir un enrutador (router) para manejar múltiples vistas
  • Convertir la aplicación en una Progressive Web App (PWA) completa

Tecnologías utilizadas

  • TypeScript
  • Web assembly (con python)
  • PWA (Progressive Web App)
  • Transformers.js
  • Web components

Instalación del proyecto

$ pnpm install
$ yarn install
$ npm install
$ deno install
$ bun install

Contribuir

Si desea contribuir a este proyecto, no dude en ponerse en contacto.

About

A chatbot for UPIICSA students' frequently asked questions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 57.4%
  • CSS 28.2%
  • HTML 11.0%
  • JavaScript 2.1%
  • Python 1.3%