{"id":27974620,"url":"https://github.com/bladealex9848/expert_nexus","last_synced_at":"2026-05-02T02:35:47.584Z","repository":{"id":289305481,"uuid":"970693923","full_name":"bladealex9848/expert_nexus","owner":"bladealex9848","description":"Expert Nexus es un sistema avanzado de asistentes virtuales especializados que permite cambiar entre diferentes expertos durante una misma conversación, manteniendo siempre el contexto completo. Desarrollado con Streamlit y la API de OpenAI, este sistema ofrece acceso a múltiples dominios de conocimiento a través de una interfaz unificada.","archived":false,"fork":false,"pushed_at":"2025-05-02T03:02:26.000Z","size":1905,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-02T04:18:58.345Z","etag":null,"topics":["expert-advisors","nexus","python","streamlit"],"latest_commit_sha":null,"homepage":"https://expertnexus.streamlit.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bladealex9848.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-22T11:53:58.000Z","updated_at":"2025-04-22T23:12:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"642a0ba9-c3b6-43ff-a685-ebff965e461a","html_url":"https://github.com/bladealex9848/expert_nexus","commit_stats":null,"previous_names":["bladealex9848/expert_nexus"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2Fexpert_nexus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2Fexpert_nexus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2Fexpert_nexus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bladealex9848%2Fexpert_nexus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bladealex9848","download_url":"https://codeload.github.com/bladealex9848/expert_nexus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252973818,"owners_count":21834141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expert-advisors","nexus","python","streamlit"],"created_at":"2025-05-08T00:19:06.209Z","updated_at":"2026-05-02T02:35:47.532Z","avatar_url":"https://github.com/bladealex9848.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Expert Nexus 🧠🔄\n\n![Logo de Expert Nexus](https://raw.githubusercontent.com/bladealex9848/expert_nexus/main/assets/logo.png)\n\n[![Version](https://img.shields.io/badge/versión-1.0.0-darkgreen.svg)](https://github.com/bladealex9848/expert_nexus)\n[![Python](https://img.shields.io/badge/Python-3.8%2B-blue.svg)](https://www.python.org/)\n[![Streamlit](https://img.shields.io/badge/Streamlit-1.30.0-ff4b4b.svg)](https://streamlit.io/)\n[![OpenAI](https://img.shields.io/badge/OpenAI_API-v2-00C244.svg)](https://platform.openai.com/)\n[![Licencia](https://img.shields.io/badge/Licencia-MIT-yellow.svg)](LICENSE)\n[![Visitantes](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fexpertnexus.streamlit.app\u0026label=Visitantes\u0026labelColor=%235d5d5d\u0026countColor=%231e7ebf\u0026style=flat)](https://expertnexus.streamlit.app)\n\n## 🧠 Descripción\n\nExpert Nexus es un sistema avanzado de asistentes virtuales especializados que permite cambiar entre diferentes expertos durante una misma conversación, manteniendo siempre el contexto completo. Desarrollado con Streamlit y la API de OpenAI, este sistema ofrece acceso a múltiples dominios de conocimiento a través de una interfaz unificada.\n\nLa plataforma cuenta con expertos en áreas como transformación digital, inteligencia artificial, derecho constitucional, proceso civil, derecho disciplinario, entre muchos otros, permitiendo a los usuarios obtener respuestas especializadas sin perder el hilo de la conversación al cambiar de un dominio a otro.\n\n## 🔍 Funcionalidades Principales\n\n### 1. Múltiples Expertos en una Sola Interfaz\n- **Asistentes Especializados**: Acceso a expertos en diversas áreas del conocimiento\n- **Cambio Fluido**: Transición sin interrupciones entre diferentes especialistas\n- **Persistencia de Contexto**: Mantenimiento del hilo completo de la conversación al cambiar de experto\n\n### 2. Detección Automática de Temas\n- **Análisis de Palabras Clave**: Sistema que identifica el tema principal del mensaje\n- **Sugerencias Inteligentes**: Recomendación automática del experto más adecuado\n- **Cambio Asistido**: Opción para aceptar o rechazar la sugerencia de cambio de experto\n\n### 3. Visualización del Estado Actual\n- **Identificación Clara**: Muestra qué experto está respondiendo en cada momento\n- **Descripción del Experto**: Información sobre la especialidad del asistente actual\n- **Historial de Cambios**: Registro cronológico de los expertos utilizados en la conversación\n\n### 4. Control de la Conversación\n- **Selector Manual**: Posibilidad de elegir manualmente el experto deseado\n- **Reinicio de Sesión**: Opción para comenzar una nueva conversación cuando sea necesario\n- **Interfaz Adaptativa**: Elementos visuales que reflejan el cambio de contexto\n\n## 🚀 Instalación\n\n### Requisitos Previos\n- Python 3.8 o superior\n- Pip (administrador de paquetes de Python)\n- Cuenta en OpenAI con acceso a la API\n- Múltiples asistentes configurados en OpenAI para diferentes especialidades\n\n### Pasos de Instalación\n\n#### Opción 1: Instalación Manual\n\n1. **Clonar el repositorio**\n   ```bash\n   git clone https://github.com/bladealex9848/expert_nexus.git\n   cd expert_nexus\n   ```\n\n2. **Crear un entorno virtual (recomendado)**\n   ```bash\n   python -m venv venv\n\n   # En Windows\n   venv\\Scripts\\activate\n\n   # En macOS/Linux\n   source venv/bin/activate\n   ```\n\n3. **Instalar las dependencias**\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n#### Opción 2: Instalación Automatizada\n\nSe proporcionan scripts de automatización que detectan el sistema operativo, crean un entorno virtual, instalan las dependencias y ejecutan la aplicación:\n\n1. **En Windows**\n\n   Ejecuta el archivo `setup.bat` haciendo doble clic o desde la línea de comandos:\n   ```bash\n   setup.bat\n   ```\n\n   Alternativamente, puedes usar el script Bash universal:\n   ```bash\n   # Desde Git Bash, WSL o similar\n   chmod +x setup.sh\n   ./setup.sh\n   ```\n\n2. **En macOS/Linux**\n   ```bash\n   # Dar permisos de ejecución\n   chmod +x setup_mac.sh\n\n   # Ejecutar el script\n   ./setup_mac.sh\n   ```\n\n   Alternativamente, puedes usar el script Bash universal:\n   ```bash\n   chmod +x setup.sh\n   ./setup.sh\n   ```\n\nEstos scripts automatizan todo el proceso de configuración, incluyendo:\n- Detección del sistema operativo y tipo de terminal\n- Creación y activación del entorno virtual\n- Actualización de pip\n- Instalación de dependencias\n- Ejecución de la aplicación Streamlit\n\n4. **Configurar credenciales de manera segura**\n\n   **Opción A: Usando variables de entorno (Recomendado para desarrollo local)**\n   ```bash\n   # En Windows\n   set OPENAI_API_KEY=tu-api-key-aqui\n   set MISTRAL_API_KEY=tu-api-key-mistral-aqui\n   set ASSISTANT_ID=tu-assistant-id-aqui\n\n   # En macOS/Linux\n   export OPENAI_API_KEY=tu-api-key-aqui\n   export MISTRAL_API_KEY=tu-api-key-mistral-aqui\n   export ASSISTANT_ID=tu-assistant-id-aqui\n   ```\n\n   **Opción B: Usando archivo secrets.toml (Recomendado para Streamlit Cloud)**\n\n   Crea un archivo `.streamlit/secrets.toml` con la siguiente estructura:\n   ```toml\n   # Configuración estructurada por secciones\n   [openai]\n   api_key = \"tu-api-key-aqui\"\n   api_model = \"gpt-4-turbo\" # Opcional: modelo a utilizar\n\n   [mistral] # Opcional: si deseas usar Mistral AI para OCR\n   api_key = \"tu-api-key-mistral-aqui\"\n\n   # Variables directas para compatibilidad con la aplicación\n   # IMPORTANTE: Estas variables son OBLIGATORIAS para que la aplicación funcione correctamente\n   OPENAI_API_KEY = \"tu-api-key-aqui\"\n   MISTRAL_API_KEY = \"tu-api-key-mistral-aqui\"\n   # ASSISTANT_ID es necesario para la verificación inicial de la aplicación\n   # Puede ser cualquiera de los IDs de la sección assistants\n   ASSISTANT_ID = \"asst_xxxx\"\n\n   [assistants]\n   transformacion_digital = { id = \"asst_xxxx\", titulo = \"Asistente especializado en transformación digital\", descripcion = \"Experto en procesos de transformación digital...\" }\n   inteligencia_artificial = { id = \"asst_xxxx\", titulo = \"Asistente de Inteligencia Artificial\", descripcion = \"Especialista en IA...\" }\n   asistente_virtual = { id = \"asst_RfRNo5Ij76ieg7mV11CqYV9v\", titulo = \"Asistente Virtual de Inteligencia Artificial\", descripcion = \"Ayudante virtual con conocimiento amplio en múltiples disciplinas\" }\n   # Añade más asistentes según sea necesario\n   ```\n\n   **Opción C: Usando archivos de configuración local (Para desarrollo)**\n\n   Crea un archivo `assistants_config_local.py` con tus claves reales y añádelo al `.gitignore` para evitar subirlo al repositorio:\n   ```python\n   # Configuración de API Keys - NO SUBIR ESTE ARCHIVO AL REPOSITORIO\n   OPENAI_API_KEY = \"tu-api-key-real-aqui\"\n   MISTRAL_API_KEY = \"tu-api-key-mistral-real-aqui\"\n   # Usar el ID del asistente virtual como predeterminado\n   ASSISTANT_ID = \"asst_RfRNo5Ij76ieg7mV11CqYV9v\"\n   ```\n\n   \u003e **IMPORTANTE SOBRE SEGURIDAD**:\n   \u003e - NUNCA incluyas claves API reales en el código fuente que subas a repositorios públicos\n   \u003e - Asegúrate de que los archivos con claves reales estén incluidos en `.gitignore`\n   \u003e - Para desarrollo local, usa variables de entorno o archivos de configuración local\n   \u003e - Para producción, usa servicios de secretos o variables de entorno seguras\n   \u003e\n   \u003e Si ves el mensaje \"⚠️ Configuración incompleta\" o \"No se pudo cargar la configuración de expertos\", verifica que hayas configurado correctamente las claves API y los IDs de los asistentes.\n\n## ⚙️ Uso\n\n### Iniciar la Aplicación\n\n#### Opción 1: Ejecución Manual\n\n```bash\nstreamlit run app.py\n```\n\nEsto lanzará la aplicación y abrirá automáticamente una ventana del navegador en `http://localhost:8501`.\n\n#### Opción 2: Usando los Scripts de Automatización\n\nSi utilizaste los scripts de automatización mencionados en la sección de instalación, la aplicación se iniciará automáticamente al final del proceso.\n\nPara futuras ejecuciones, puedes volver a utilizar los mismos scripts:\n\n- En Windows: `setup.bat` o `./setup.sh` (desde Git Bash)\n- En macOS/Linux: `./setup_mac.sh` o `./setup.sh`\n\nLos scripts detectarán que el entorno virtual ya existe y te preguntarán si deseas recrearlo o simplemente activarlo para continuar.\n\n### Funcionalidades del Sistema\n\n1. **Iniciar Conversación**\n   - Comienza escribiendo tu mensaje en el campo de texto\n   - El sistema iniciará con el experto predeterminado o sugerirá uno adecuado\n\n2. **Cambiar de Experto Manualmente**\n   - Selecciona el experto deseado en el menú desplegable de la barra lateral\n   - Haz clic en \"Cambiar a este experto\" para confirmar\n\n3. **Aceptar Sugerencias Automáticas**\n   - Cuando el sistema detecte que otro experto podría ser más adecuado, te lo sugerirá\n   - Puedes aceptar el cambio o continuar con el experto actual\n\n4. **Visualizar el Historial**\n   - Revisa el registro de cambios de experto en la barra lateral\n   - Observa qué experto respondió cada mensaje en la conversación\n\n5. **Reiniciar Conversación**\n   - Utiliza el botón \"Nueva Conversación\" para comenzar un nuevo hilo\n   - Todos los mensajes anteriores se mantendrán visibles hasta el reinicio\n\n## ⚠️ Limitaciones\n\n- La detección automática de temas se basa en palabras clave y puede no ser perfecta en todos los casos\n- Aunque se mantiene el contexto, cada experto tiene su propia especialidad y enfoque\n- La calidad de las respuestas depende de la configuración de cada asistente en OpenAI\n- Las respuestas están limitadas por el conocimiento disponible hasta la fecha de entrenamiento\n- El sistema no reemplaza la consulta con profesionales humanos especializados para casos críticos\n\n## 📊 Escenarios de Uso\n\n### 1. Entornos Educativos\n- Estudiantes que necesitan explorar múltiples disciplinas en una misma sesión\n- Docentes que desean ofrecer acceso a conocimiento especializado en diferentes materias\n- Instituciones educativas que buscan complementar recursos de aprendizaje\n\n### 2. Asesoría Jurídica\n- Navegación entre diferentes áreas del derecho (constitucional, civil, laboral, etc.)\n- Análisis de casos que requieren perspectivas desde múltiples especialidades legales\n- Consultas preliminares antes de acudir a servicios legales especializados\n\n### 3. Empresas y Organizaciones\n- Equipos multidisciplinarios que requieren acceso a diferentes dominios de conocimiento\n- Proyectos que abarcan diversas áreas (tecnología, finanzas, recursos humanos, etc.)\n- Investigación y desarrollo que cruza múltiples campos de especialización\n\n### 4. Investigación y Desarrollo\n- Exploración de temas que requieren integración de diferentes disciplinas\n- Consultas técnicas que evolucionan y abarcan múltiples dominios\n- Generación de ideas desde diferentes perspectivas especializadas\n\n## 👥 Contribuciones\n\nLas contribuciones son bienvenidas. Para contribuir al desarrollo de Expert Nexus:\n\n1. Realiza un fork del repositorio\n2. Crea una nueva rama (`git checkout -b feature/nueva-funcionalidad`)\n3. Implementa tus cambios\n4. Envía un pull request\n\n## 📝 Licencia\n\nEste proyecto está bajo la licencia MIT. Consulta el archivo [LICENSE](LICENSE) para más detalles.\n\n## 🙏 Agradecimientos\n\n- **OpenAI** por proporcionar la tecnología que impulsa los asistentes\n- **Streamlit** por facilitar el desarrollo de interfaces intuitivas\n- **Comunidad de desarrolladores** por su contribución a las bibliotecas utilizadas\n- **Usuarios beta** por su valioso feedback durante el desarrollo\n\n## 👤 Autor\n\nCreado con ❤️ por [Alexander Oviedo Fadul](https://github.com/bladealex9848)\n\n[GitHub](https://github.com/bladealex9848) | [Website](https://alexanderoviedofadul.dev) | [LinkedIn](https://www.linkedin.com/in/alexander-oviedo-fadul/) | [Instagram](https://www.instagram.com/alexander.oviedo.fadul) | [Twitter](https://twitter.com/alexanderofadul) | [Facebook](https://www.facebook.com/alexanderof/) | [WhatsApp](https://api.whatsapp.com/send?phone=573015930519\u0026text=Hola%20!Quiero%20conversar%20contigo!%20)\n\n---\n\n## 💼 Mensaje Final\n\nExpert Nexus representa un paso adelante en la interacción con asistentes virtuales, permitiendo una experiencia conversacional más fluida y especializada sin las limitaciones tradicionales de los chatbots de propósito único. La capacidad de cambiar entre expertos manteniendo el contexto abre nuevas posibilidades para el aprendizaje, la consultoría y la resolución de problemas complejos.\n\n*\"El verdadero poder del conocimiento no solo reside en la especialización, sino en la capacidad de transitar fluidamente entre diferentes dominios manteniendo una visión coherente e integrada.\"*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbladealex9848%2Fexpert_nexus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbladealex9848%2Fexpert_nexus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbladealex9848%2Fexpert_nexus/lists"}