UStackUStack
MulmoChat icon

MulmoChat

MulmoChatは、キャンバス上でテキスト会話と画像/インタラクティブ表現を統合するマルチモーダルAIチャットの研究プロトタイプ。統一APIとComfyUI対応。

MulmoChat

MulmoChatとは?

MulmoChatは、マルチモーダルAIチャット体験を探求するための研究プロトタイプです。テキストメッセージのストリームに限定せず、キャンバス上でリッチなビジュアルおよびインタラクティブコンテンツを直接レンダリングする会話体験をサポートすることを目指しています。

主な目的は、ビジュアル体験と言語理解が単一の会話フロー内で連携するマルチモーダルチャットインターフェースのためのアーキテクチャ、デザインパターン、UX原則を実証することです。

主な機能

  • キャンバス上でのマルチモーダルチャット: 会話とビジュアル・インタラクティブコンテンツ(例: 画像やその他のリッチビジュアル要素)を同一のユーザー体験で組み合わせるよう設計。
  • 研究指向のアーキテクチャ&UXパターン: 製品指向の探求とエンジニアリング実装向けのドキュメントを含む(例: LLM_OS.md、WHITEPAPER.md)。
  • プロバイダー非依存のテキスト生成API: 複数のLLMプロバイダー間でテキスト生成レスポンスを正規化する統一バックエンドAPIを公開。
  • テキストプロバイダー検出エンドポイント: GET /api/text/providers で設定済みプロバイダー(OpenAI、Anthropic、Google Gemini、Ollama)、モデル提案、認証情報有無を返却。
  • 統一テキスト生成エンドポイント: POST /api/text/generate でプロバイダー、モデル、メッセージを受け取り、ベンダーに関わらず正規化されたテキストレスポンスを返却。
  • ComfyUI経由のローカル画像生成統合: クラウド生成に限定せず、ローカルホストモデルとワークフロー(例: FLUX)を使ったComfyUI Desktopとの統合。

MulmoChatの使い方

  1. 依存関係のインストール: yarn install を実行。
  2. 環境変数の設定: .env ファイルを作成し、OPENAI_API_KEYGEMINI_API_KEY などのキー(有効化機能に応じて必須)を設定。マップ機能(GOOGLE_MAP_API_KEY)、AI検索(EXA_API_KEY)、HTML生成(ANTHROPIC_API_KEY)などのオプションキーも。
  3. 開発サーバーの起動: yarn dev を実行。
  4. 音声入力の使用(ブラウザ権限必要): プロンプトでマイクアクセスを許可後、“Start Voice Chat” をクリックしてAIに話しかけ。
  5. 統一テキストAPIのテスト(オプション): 開発サーバー稼働中に server/tests/ のTypeScriptスクリプトを実行し、設定プロバイダーでのテキスト生成を確認。

ローカルセットアップでは、Ollama(OLLAMA_BASE_URL、デフォルト http://127.0.0.1:11434)とComfyUI Desktop(COMFYUI_BASE_URL、デフォルト http://127.0.0.1:8000)をサポート。

ユースケース

  • ボイスファーストのマルチモーダルインタラクションプロトタイプ: 音声チャットフローを使用して、音声入力が生成ビジュアルを含むAI体験を駆動する方法をテスト。
  • 製品チーム向けAIネイティブ“OS”マインドセットの実験: プロダクトストラテジストやデザイナーが高レベルパラダイムドキュメント(LLM_OS.md)を読み、テキストオンリーを超えたインタラクションコンセプトを構築。
  • オーケストレーションスタックのエンジニアリング・評価: 開発者や研究者がシステム図とWHITEPAPER.mdのワークフローデテールを活用し、マルチモーダルチャット向けオーケストレーション挙動を理解・評価。
  • プラグインによるチャット機能拡張: 開発者がTOOLPLUGIN.mdに従い、TypeScriptコントラクトとVueビューを含むエンドツーエンド拡張を実装。
  • チャットループ内ローカル制御画像生成: 画像生成をローカル実行(モデル/ワークフロー制御)する場合、ComfyUI Desktopと統合し、ローカルAPIで画像生成。

FAQ

Q: MulmoChatの「プロバイダー非依存」テキスト生成とは?
A: プロジェクトが提供する統一API(POST /api/text/generate)が providermodelmessages を受け取り、サポートベンダー間で正規化されたテキストレスポンスを返却。

Q: 統一テキストAPIがサポートするLLMプロバイダーは?
A: リポジトリのテキストAPIドキュメントにOpenAI、Anthropic、Google Gemini、Ollamaを記載(設定認証情報により利用可)。

Q: すべてのプロバイダーでAPIキーは必要?
A: いいえ—.envで設定した内容により機能とプロバイダー利用可。オプションキーは特定機能(例: マップ、AI検索、HTML生成)に記載。

Q: テキスト生成の動作確認方法は?
A: server/tests/ 以下の提供スクリプト(例: server/tests/test-text-openai.tstest-text-anthropic.ts など)を実行。選択モデルと正規化出力を報告し、失敗時は診断ログ出力。

Q: ローカル画像生成はどのように扱う?
A: MulmoChatはローカルAPIサーバー(COMFYUI_BASE_URL で設定)経由でComfyUI Desktopと統合。クラウドオンリーでなくローカルモデル/ワークフロー使用をサポート。

代替案

  • テキストのみのチャットアプリ: 従来のチャットインターフェースはメッセージストリームに焦点を当て、キャンバスベースのマルチモーダルレンダリングなしで実装が簡素だが、マルチモーダルインタラクションパターンを示さない。
  • 汎用マルチモーダルモデルクライアント(別UI + モデル呼び出し): 画像とチャットを組み合わせるツールは通常UIレンダリングとモデル呼び出しを自分で構成する必要があり、MulmoChatは参照アーキテクチャとインタラクション原則に焦点を当てる。
  • チャットUXレイヤーなしのローカル画像生成フロントエンド(ComfyUIなど): 画像ワークフローをローカルで実行するのは会話インターフェース外でも可能だが、ここで説明する統一マルチモーダルチャットフローは得られない。
  • ツール呼び出し付きエージェントフレームワーク(特定マルチモーダルキャンバスアーキテクチャなし): エージェントツールはモデルアクションとツールを調整できるが、同じキャンバス中心のマルチモーダルインタラクションパターンを提供しない可能性がある。