AI Agent Chat and Management Dashboard

Job ID: 39331113

Budget: $8 – $15 USD

Título del Proyecto: Dashboard de Gestión y Chat con Agentes IA
Resumen del Proyecto:
Se busca un desarrollador Python para completar y mejorar un dashboard web existente construido con Streamlit. El objetivo principal del dashboard es permitir la administración (CRUD) de definiciones de agentes de IA, la gestión de usuarios y roles con control de acceso basado en permisos (RBAC), la configuración del sistema y, fundamentalmente, interactuar (chatear) con los agentes IA definidos a través de webhooks específicos de N8N configurados para cada agente. La gestión de la definición de los agentes (nombre, descripción, modelo, habilidades, personalidades, objetivos, URLs de N8N) se realiza localmente en una base de datos SQLite, mientras que la interacción en tiempo real (chat) se delega a los workflows correspondientes en N8N.
Estado Actual del Proyecto:
El proyecto se encuentra en una fase avanzada de desarrollo con una base de código funcional y estructurada modularmente. Los errores críticos recientes relacionados con la base de datos (migraciones, esquema), manejo de sesiones SQLAlchemy (DetachedInstanceError) y errores de sintaxis/importación han sido solucionados.
Funcionalidades Implementadas y Operativas:
Autenticación de usuarios (Login/Logout) y gestión de sesión (con timeout configurable).
Sistema de Roles y Permisos (RBAC) funcional: CRUD de roles, asignación de permisos, decoradores de protección en páginas.
Gestión de Usuarios (CRUD) con validaciones y asignación de roles (local DB).
Gestión de Agentes IA (CRUD local): Permite crear, ver, editar y eliminar las definiciones de los agentes (nombre, desc, modelo, skills, personalidad, objetivos, URL de chat N8N específica, URL de detalles N8N opcional, estado) almacenadas en la base de datos local. Utiliza selectores/multiselectores poblados desde opciones configurables.
Configuración del Sistema:
Pestaña APIs: Guarda credenciales globales de Basic Auth para N8N y placeholders para keys de AgentOps, Anthropic, OpenAI.
Pestaña Opciones Agentes: CRUD funcional para gestionar las listas de opciones disponibles (Modelos de Lenguaje, Habilidades, Personalidades, Objetivos) que se usan en los formularios de agentes.
Pestañas General, Apariencia, Seguridad: Funcionan correctamente para configurar nombre del dashboard, timezone, colores, logo y políticas de contraseña/sesión.
Página "Agentes IA": Lista los agentes definidos localmente que están 'activos' y permite iniciar un chat. Utiliza la URL de chat N8N específica configurada para cada agente para enviar/recibir mensajes a través de utils/api_client.py.
Página "Mi Perfil": Permite al usuario logueado ver sus datos y cambiar email/contraseña.
Página "Vista General": Actualmente implementada en app.py como página de inicio después del login, muestra contenido placeholder con gráficos y métricas de ejemplo.
Páginas "Entrenar" y "Monitoreo": Existen como placeholders básicos.
Estructura del Código: Modular y organizada (app.py, pages/, auth/, database/, utils/).
Base de Datos: Esquema SQLite actualizado y funcional con las tablas necesarias (users, roles, agents, queries, configurations, agent_options_*).
Tecnologías Utilizadas:
Lenguaje Principal: Python 3.x
Framework Frontend/Web: Streamlit
Base de Datos: SQLite
ORM: SQLAlchemy
Autenticación/Sesión: Lógica propia basada en st.session_state y hashlib.
APIs Externas (Integración Actual): N8N (Webhooks para chat por agente, usando Basic Auth global).
APIs Externas (Placeholders): AgentOps, Anthropic (Claude), OpenAI (GPT) - Keys configurables, pero lógica de llamada no implementada.
Librerías Clave: streamlit, sqlalchemy, pandas, plotly-express, numpy, requests, pytz.
Tareas Pendientes / Trabajo Requerido:
Implementar Página "Vista General": Reemplazar el contenido placeholder actual en app.py con lógica real que consulte la base de datos local (tablas agents y queries) para mostrar métricas y gráficos relevantes sobre el uso y rendimiento de los agentes (ej: nº consultas por agente, tasa de éxito calculada localmente, agentes más usados, etc.).
Implementar Página "Entrenar": Definir e implementar la funcionalidad. Esto podría implicar:
Interfaz para subir documentos (PDF, TXT, etc.).
Lógica para procesar estos documentos (ej. chunking, embedding).
Llamadas a APIs externas (N8N, u otras) para iniciar/gestionar workflows de entrenamiento/fine-tuning asociados a agentes específicos.
Implementar Página "Monitoreo": Definir e implementar la funcionalidad. Tarea principal:
Integrar AgentOps: Leer la API Key de AgentOps desde la configuración. Implementar llamadas a la API de AgentOps usando requests (o su SDK si existe) para obtener métricas de rendimiento, costos, latencia, etc., por agente. Mostrar esta información en gráficos y tablas.
Mostrar estado general de otros servicios si aplica.
Integrar LLMs (Anthropic/OpenAI): Implementar la lógica para usar las API Keys configuradas. Esto podría ser para:
Potenciar la funcionalidad de chat de algunos agentes (si N8N no lo hace directamente).
Funciones de análisis dentro del dashboard.
Potencialmente integrarse con frameworks como CrewAI si se decide añadirlo.
(Opcional) Integrar CrewAI: Explorar y, si se decide, implementar la capacidad de definir y gestionar agentes multi-rol más complejos usando CrewAI, posiblemente interactuando con la definición local de agentes.
Refinamiento UI/UX: Revisar y mejorar la consistencia visual, la usabilidad general, la responsividad y aplicar los estilos configurados de forma más exhaustiva si es necesario. Asegurar que la experiencia en los diálogos y formularios sea fluida.
Pruebas y Depuración Final: Realizar pruebas exhaustivas de todas las funcionalidades, corregir bugs menores restantes y asegurar la estabilidad general.
(Opcional) Persistencia de Sesión en Despliegue: Si el problema de pérdida de sesión al recargar aún ocurre en el entorno de despliegue (izi.lat), investigar y proponer/implementar soluciones (puede requerir ajustes de servidor/proxy/WebSockets).
(Opcional) Documentación: Mejorar comentarios en el código, crear o completar un README.md con instrucciones de configuración y ejecución.
Habilidades Requeridas:
Python: Nivel avanzado, experiencia sólida con desarrollo web y manejo de datos.
Streamlit: Nivel intermedio-avanzado, comodidad con st.session_state, formularios, diálogos, layout y componentes personalizados (si fueran necesarios).
SQLAlchemy: Nivel intermedio, manejo de ORM, sesiones, consultas, relaciones y migraciones (aunque sean manuales/básicas con SQLite).
SQLite: Conocimiento básico-intermedio.
HTML/CSS: Conocimiento básico para entender y ajustar los estilos insertados en Streamlit.
APIs REST: Experiencia consumiendo APIs (autenticación, manejo de JSON, manejo de errores). Experiencia específica con N8N es una ventaja.
Manejo de JSON: Indispensable para guardar/leer selecciones múltiples en la base de datos y para interactuar con APIs.
Git: Control de versiones.
(Deseable): Experiencia con Plotly (para gráficos), Pandas/Numpy (para análisis de datos), frameworks de Agentes IA (como CrewAI), AgentOps, APIs de LLMs (OpenAI, Anthropic), N8N (creación de workflows).
(Deseable): Experiencia con despliegue de aplicaciones Python/Streamlit y resolución de problemas de servidor/proxy.
Entregables Esperados:
Código fuente completo, funcional y actualizado del proyecto.
Base de datos SQLite con el esquema final correcto.
(Opcional) Documentación actualizada (README.md, comentarios).
Related categories: Python SQLite API