UStackUStack
MulmoChat icon

MulmoChat

MulmoChat é um protótipo de pesquisa para chat multimodal com texto e conteúdo visual/interativo em um canvas, com API unificada e geração local via ComfyUI.

MulmoChat

O que é MulmoChat?

MulmoChat é um protótipo de pesquisa para explorar experiências de chat multimodal com IA. Em vez de limitar as interações a um fluxo de mensagens de texto, ele visa suportar experiências conversacionais que incluem conteúdo visual e interativo rico renderizado diretamente em um canvas.

O propósito principal é demonstrar uma arquitetura, padrões de design e princípios de UX para interfaces de chat multimodal, onde experiências visuais e compreensão de linguagem funcionam juntas em um único fluxo conversacional.

Principais Recursos

  • Chat multimodal em canvas: Projetado para combinar conversa com conteúdo visual e interativo (por exemplo, imagens e outros elementos visuais ricos) na mesma experiência do usuário.
  • Arquitetura e padrões de UX orientados para pesquisa: Inclui documentação voltada tanto para exploração de produtos quanto para implementação de engenharia (ex.: LLM_OS.md e WHITEPAPER.md).
  • API de geração de texto independente de provedor: Expõe uma API backend unificada que normaliza respostas de geração de texto entre múltiplos provedores de LLM.
  • Endpoint de descoberta de provedores de texto: GET /api/text/providers retorna os provedores configurados (OpenAI, Anthropic, Google Gemini, Ollama), junto com sugestões de modelos e disponibilidade de credenciais.
  • Endpoint unificado de geração de texto: POST /api/text/generate aceita provedor, modelo e mensagens, retornando uma resposta de texto normalizada independentemente do fornecedor.
  • Integração de geração local de imagens via ComfyUI: Integra com ComfyUI Desktop para geração local de imagens usando modelos e workflows hospedados localmente (ex.: FLUX), em vez de depender apenas de geração em nuvem.

Como Usar o MulmoChat

  1. Instalar dependências: Execute yarn install.
  2. Configurar variáveis de ambiente: Crie um arquivo .env com chaves como OPENAI_API_KEY e GEMINI_API_KEY (exigidas pelo projeto dependendo dos recursos ativados), além de chaves opcionais para recursos de mapa (GOOGLE_MAP_API_KEY), busca com IA (EXA_API_KEY), geração de HTML (ANTHROPIC_API_KEY) e mais.
  3. Iniciar o servidor de desenvolvimento: Execute yarn dev.
  4. Usar entrada de voz (requer permissão do navegador): Quando solicitado, permita acesso ao microfone, clique em “Start Voice Chat” e fale com a IA.
  5. Testar a API de texto unificada (opcional): Com o servidor de dev rodando, execute os scripts TypeScript em server/tests/ para verificar a geração de texto contra os provedores configurados.

Para setups locais, o projeto suporta Ollama (via OLLAMA_BASE_URL, padrão http://127.0.0.1:11434) e ComfyUI Desktop (via COMFYUI_BASE_URL, padrão http://127.0.0.1:8000).

Casos de Uso

  • Prototipagem de interações multimodais com voz em primeiro lugar: Use o fluxo de chat de voz para testar como entrada falada do usuário pode impulsionar uma experiência de IA que também gera visuais.
  • Experimentação com mentalidade de “OS” nativa de IA para equipes de produto: Estrategistas e designers de produto podem ler a documentação de paradigma de alto nível (LLM_OS.md) para enquadrar conceitos de interação além do chat apenas de texto.
  • Engenharia ou avaliação de stacks de orquestração: Desenvolvedores e pesquisadores podem usar os diagramas do sistema e detalhes de workflow em WHITEPAPER.md para entender e avaliar o comportamento de orquestração em chat multimodal.
  • Extensão de capacidades de chat com plugins: Desenvolvedores podem seguir TOOLPLUGIN.md para implementar extensões de ponta a ponta, incluindo contratos TypeScript e views Vue.
  • Geração de imagens local e controlável em loop de chat: Quando a geração de imagens precisa rodar localmente (controle de modelo/workflow), integre com ComfyUI Desktop e use a API local para gerar imagens.

FAQ

P: O que significa geração de texto “independente de provedor” no MulmoChat?
R: O projeto fornece uma API unificada (POST /api/text/generate) que recebe provider, model e messages e retorna uma resposta de texto normalizada entre os fornecedores suportados.

P: Quais provedores de LLM a API de texto unificada suporta?
R: A documentação da API de texto do repositório lista OpenAI, Anthropic, Google Gemini e Ollama como provedores suportados (com disponibilidade dependendo das credenciais configuradas).

P: Preciso de chaves de API para todos os provedores?
R: Não — recursos e disponibilidade de provedores dependem do que você configurar no seu .env. Chaves opcionais são indicadas para capacidades específicas (ex.: mapas, busca com IA, geração de HTML).

P: Como verifico se a geração de texto funciona?
R: Execute os scripts fornecidos em server/tests/ (ex.: server/tests/test-text-openai.ts, test-text-anthropic.ts etc.). Esses scripts relatam o modelo selecionado e saída normalizada, e registram diagnósticos em caso de falha.

P: Como é tratada a geração local de imagens?
R: MulmoChat integra com ComfyUI Desktop via servidor de API local (configurado por COMFYUI_BASE_URL). Isso suporta uso local de modelo/workflow em vez de apenas geração em nuvem.

Alternativas

  • Aplicativos de chat apenas com texto: Interfaces de chat tradicionais focam em fluxos de mensagens sem renderização multimodal baseada em canvas, o que simplifica a implementação, mas não demonstra padrões de interação multimodal.
  • Clientes de modelos multimodais gerais (UI separada + chamadas de modelo): Ferramentas que combinam imagens e chat geralmente exigem que você componha renderização de UI e chamadas de modelo; o MulmoChat foca em uma arquitetura de referência e princípios de interação.
  • Front-ends de geração de imagens locais (ComfyUI ou similar) sem camada de UX de chat: Executar fluxos de imagens localmente pode ser feito fora de uma interface conversacional, mas você não obtém o fluxo de chat multimodal unificado descrito aqui.
  • Frameworks de agentes com chamadas de ferramentas (sem arquitetura específica de canvas multimodal): Ferramentas de agentes podem orquestrar ações de modelos e ferramentas, mas podem não fornecer os mesmos padrões de interação multimodal centrados em canvas.
MulmoChat | UStack