UStackUStack
MulmoChat icon

MulmoChat

MulmoChat es un prototipo de investigación de chat con IA multimodal: texto y contenido visual/interactivo en un lienzo, con API unificada y generación local vía ComfyUI.

MulmoChat

¿Qué es MulmoChat?

MulmoChat es un prototipo de investigación para explorar experiencias de chat con IA multimodal. En lugar de limitar las interacciones a un flujo de mensajes de texto, busca soportar experiencias conversacionales que incluyan contenido visual e interactivo renderizado directamente en un lienzo.

El propósito principal es demostrar una arquitectura, patrones de diseño y principios de UX para interfaces de chat multimodal donde las experiencias visuales y la comprensión del lenguaje trabajan juntas en un único flujo conversacional.

Características clave

  • Chat multimodal en un lienzo: Diseñado para combinar conversación con contenido visual e interactivo (por ejemplo, imágenes y otros elementos visuales enriquecidos) en la misma experiencia de usuario.
  • Arquitectura y patrones de UX orientados a la investigación: Incluye documentación dirigida tanto a la exploración orientada a productos como a la implementación de ingeniería (p. ej., LLM_OS.md y WHITEPAPER.md).
  • API de generación de texto agnóstica al proveedor: Expone una API backend unificada que normaliza las respuestas de generación de texto entre múltiples proveedores de LLM.
  • Endpoint de descubrimiento de proveedores de texto: GET /api/text/providers devuelve los proveedores configurados (OpenAI, Anthropic, Google Gemini, Ollama), junto con sugerencias de modelos y disponibilidad de credenciales.
  • Endpoint unificado de generación de texto: POST /api/text/generate acepta un proveedor, modelo y mensajes, devolviendo una respuesta de texto normalizada independientemente del proveedor.
  • Integración de generación de imágenes local vía ComfyUI: Se integra con ComfyUI Desktop para generación de imágenes local usando modelos y flujos de trabajo alojados localmente (p. ej., FLUX), en lugar de depender solo de generación en la nube.

Cómo usar MulmoChat

  1. Instalar dependencias: Ejecuta yarn install.
  2. Configurar variables de entorno: Crea un archivo .env con claves como OPENAI_API_KEY y GEMINI_API_KEY (requeridas por el proyecto según las funciones habilitadas), más claves opcionales para funciones de mapas (GOOGLE_MAP_API_KEY), búsqueda impulsada por IA (EXA_API_KEY), generación de HTML (ANTHROPIC_API_KEY), etc.
  3. Iniciar el servidor de desarrollo: Ejecuta yarn dev.
  4. Usar entrada de voz (requiere permiso del navegador): Cuando se solicite, permite el acceso al micrófono, luego haz clic en “Start Voice Chat” y habla con la IA.
  5. Probar la API de texto unificada (opcional): Con el servidor de desarrollo en ejecución, ejecuta los scripts de TypeScript en server/tests/ para verificar la generación de texto con los proveedores configurados.

Para configuraciones locales, el proyecto soporta Ollama (vía OLLAMA_BASE_URL, por defecto http://127.0.0.1:11434) y ComfyUI Desktop (vía COMFYUI_BASE_URL, por defecto http://127.0.0.1:8000).

Casos de uso

  • Prototipos de interacción multimodal con voz primero: Usa el flujo de chat de voz para probar cómo la entrada hablada del usuario puede impulsar una experiencia de IA que también produce visuales generados.
  • Experimentar con mentalidad de “OS” nativa de IA para equipos de producto: Estrategas y diseñadores de productos pueden leer la documentación de paradigma de alto nivel (LLM_OS.md) para enmarcar conceptos de interacción más allá del chat solo de texto.
  • Ingeniería o evaluación de pilas de orquestación: Desarrolladores e investigadores pueden usar los diagramas del sistema y detalles de flujo en WHITEPAPER.md para entender y evaluar el comportamiento de orquestación en chat multimodal.
  • Extender capacidades de chat con plugins: Los desarrolladores pueden seguir TOOLPLUGIN.md para implementar extensiones de extremo a extremo, incluyendo contratos de TypeScript y vistas de Vue.
  • Generación de imágenes local y controlable en un bucle de chat: Cuando la generación de imágenes debe ejecutarse localmente (control de modelo/flujo), intégrate con ComfyUI Desktop y usa la API local para generar imágenes.

Preguntas frecuentes

P: ¿Qué significa “agnóstica al proveedor” en la generación de texto de MulmoChat?
R: El proyecto proporciona una API unificada (POST /api/text/generate) que toma provider, model y messages y devuelve una respuesta de texto normalizada entre los proveedores compatibles.

P: ¿Qué proveedores de LLM soporta la API de texto unificada?
R: La documentación de la API de texto del repositorio lista OpenAI, Anthropic, Google Gemini y Ollama como proveedores compatibles (con disponibilidad según las credenciales configuradas).

P: ¿Necesito claves API para todos los proveedores?
R: No—las funciones y disponibilidad de proveedores dependen de lo que configures en tu .env. Las claves opcionales se indican para capacidades específicas (p. ej., mapas, búsqueda impulsada por IA, generación de HTML).

P: ¿Cómo verifico que la generación de texto funciona?
R: Ejecuta los scripts proporcionados en server/tests/ (p. ej., server/tests/test-text-openai.ts, test-text-anthropic.ts, etc.). Estos scripts informan del modelo seleccionado y la salida normalizada, y registran diagnósticos en caso de fallo.

P: ¿Cómo se maneja la generación de imágenes local?
R: MulmoChat se integra con ComfyUI Desktop vía un servidor de API local (configurado a través de COMFYUI_BASE_URL). Esto soporta el uso de modelos/flujos locales en lugar de solo generación en la nube.

Alternativas

  • Aplicaciones de chat solo de texto: Las interfaces de chat tradicionales se centran en flujos de mensajes sin renderizado multimodal basado en lienzo, lo que simplifica la implementación pero no demuestra patrones de interacción multimodal.
  • Clientes de modelos multimodales generales (UI + llamadas al modelo separadas): Las herramientas que combinan imágenes y chat suelen requerir que compongas tú mismo el renderizado de la UI y las llamadas al modelo; MulmoChat se centra en una arquitectura de referencia y principios de interacción.
  • Front-ends de generación de imágenes locales (ComfyUI o similares) sin capa de UX de chat: Ejecutar flujos de imágenes localmente se puede hacer fuera de una interfaz conversacional, pero no obtendrás el flujo de chat multimodal unificado descrito aquí.
  • Frameworks de agentes con llamadas a herramientas (sin arquitectura de lienzo multimodal específica): Las herramientas de agentes pueden orquestar acciones de modelos y herramientas, pero pueden no ofrecer los mismos patrones de interacción multimodal centrados en lienzo.
MulmoChat | UStack