moeru-ai/airi
主な特徴
- **Multi-platform Support**: Web(PWA対応)、Desktop(Tauri)、モバイル対応
- **Real-time Voice Chat**: リアルタイム音声対話とVAD(Voice Activity Detection)
- **Game Integration**: Minecraft、Factorioでの協力プレイ機能
- **Avatar System**: Live2DとVRMアバター対応
- **Service Integrations**: Discord、Telegram、Twitter連携ボット
- **Advanced Web Technologies**: WebGPU、WebAssembly、Web Workers活用
- **Modular Architecture**: プラグインシステムと拡張可能な設計
- **Multi-language**: 英語、中国語、日本語、ロシア語、ベトナム語対応
リポジトリ解析: moeru-ai/airi
基本情報
- リポジトリ名: moeru-ai/airi
- 主要言語: Vue
- スター数: 12,020
- フォーク数: 958
- 最終更新: 2025年
- ライセンス: MIT License
- トピックス: AI、Virtual Character、Live2D、VRM、Neuro-sama、VTuber、Real-time Audio、WebGPU
概要
一言で言うと
Neuro-samaにインスパイアされた、自分専用のAI仮想キャラクター(デジタルワイフ/ハズバンド)を作成・所有できるオープンソースプラットフォーム。
詳細説明
AIRIは「アイリ」と読み、Neuro-samaの再現を目指したプロジェクトで、ユーザーが自分だけのデジタル生命体やサイバー生物を作成・所有できるプラットフォームです。単純なチャット型AIとは異なり、ゲームプレイ、リアルタイム音声対話、画面共有、Minecraft・Factorioでの協力プレイなど、多様なインタラクション機能を提供します。
WebGPU、WebAudio、WebAssembly、WebSocketなどの最新Web技術を活用し、ブラウザ上でも高性能なAI体験を実現。同時にDesktop版では、NVIDIA CUDAやApple Metalを利用したネイティブパフォーマンスも提供しています。Live2DやVRMアバター対応により、視覚的にも魅力的なキャラクターとの対話が可能です。
主な特徴
- Multi-platform Support: Web(PWA対応)、Desktop(Tauri)、モバイル対応
- Real-time Voice Chat: リアルタイム音声対話とVAD(Voice Activity Detection)
- Game Integration: Minecraft、Factorioでの協力プレイ機能
- Avatar System: Live2DとVRMアバター対応
- Service Integrations: Discord、Telegram、Twitter連携ボット
- Advanced Web Technologies: WebGPU、WebAssembly、Web Workers活用
- Modular Architecture: プラグインシステムと拡張可能な設計
- Multi-language: 英語、中国語、日本語、ロシア語、ベトナム語対応
使用方法
インストール
前提条件
- Node.js 18以上
- pnpm(推奨パッケージマネージャー)
- Rust(Desktop版ビルド用)
- 各種LLMプロバイダーのAPIキー(OpenAI、Anthropic等)
インストール手順
# 方法1: リポジトリクローン
git clone https://github.com/moeru-ai/airi.git
cd airi/
# 依存関係のインストール
pnpm install
# 方法2: Web版を直接試用
# https://airi.moeru.ai にアクセス
基本的な使い方
Hello World相当の例
# Web版の開発サーバー起動
pnpm dev:web
# ブラウザで http://localhost:3000 を開く
# 設定画面でLLMプロバイダーを設定
# キャラクターとチャット開始
実践的な使用例
# Desktop版(Tamagotchi)の起動
pnpm dev:tamagotchi
# 各種アプリケーションの起動
pnpm dev:apps # 全アプリを並列起動
# 特定機能の開発・テスト
pnpm dev # メインWeb版
pnpm dev:docs # ドキュメントサイト
高度な使い方
# サービス統合の起動
cd services/discord-bot && pnpm dev # Discordボット
cd services/minecraft && pnpm dev # Minecraftボット
cd services/telegram-bot && pnpm dev # Telegramボット
# カスタムプラグイン開発
# plugins/ ディレクトリに新しいプラグインを作成
# apps/component-calling/ を参考に実装
ドキュメント・リソース
公式ドキュメント
- README.md: プロジェクト概要と開始方法
- docs/: 多言語対応の詳細ドキュメント(英語、中国語、日本語等)
- DevLogs: 定期的な開発進捗レポート
サンプル・デモ
- apps/playground-prompt-engineering/: プロンプト設計ツール
- apps/component-calling/: プラグインAPI実装例
- apps/realtime-audio/: リアルタイム音声処理デモ
- Live Demo: https://airi.moeru.ai でオンライン試用可能
チュートリアル・ガイド
- Discord サーバーでのコミュニティサポート
- GitHub Discussions での開発者交流
- Product Hunt での紹介ページ
技術的詳細
アーキテクチャ
全体構造
マイクロサービス・モノレポアーキテクチャを採用し、各アプリケーションとサービスが独立して動作します。フロントエンドはVue.js 3 + TypeScript、バックエンドサービスはNode.js、Desktop版はTauri(Rust)で実装されています。
ディレクトリ構成
airi/
├── apps/ # フロントエンドアプリケーション
│ ├── stage-web/ # メインWeb版
│ ├── stage-tamagotchi/ # Desktop版(Tauri)
│ ├── playground-prompt-engineering/ # プロンプト設計ツール
│ ├── component-calling/ # プラグインシステムデモ
│ └── realtime-audio/ # リアルタイム音声処理
├── services/ # バックエンドサービス
│ ├── discord-bot/ # Discord統合ボット
│ ├── minecraft/ # Minecraft統合ボット
│ ├── telegram-bot/ # Telegram統合ボット
│ └── twitter-services/ # Twitter統合サービス
├── crates/ # Rust クレート(Tauri プラグイン)
├── packages/ # 共有パッケージ
├── plugins/ # 拡張プラグイン
└── docs/ # ドキュメント
主要コンポーネント
-
Stage Web: ブラウザ版メインアプリケーション
- 場所:
apps/stage-web/ - 依存: Vue 3、Vite、UnoCSS
- インターフェース: PWA、WebGPU、WebAudio API
- 場所:
-
Stage Tamagotchi: デスクトップ版アプリケーション
- 場所:
apps/stage-tamagotchi/ - 依存: Tauri、Rust、Vue 3
- インターフェース: Native performance、システム統合
- 場所:
-
Service Bots: 各種プラットフォーム統合
- 場所:
services/*/ - 依存: Node.js、各種API SDK
- インターフェース: WebSocket、REST API
- 場所:
技術スタック
コア技術
- Frontend: Vue 3 + TypeScript、Composition API
- Build Tools: Vite、UnoCSS、ESLint、Vitest
- Desktop: Tauri 2.0(Rust)、システムレベル統合
- 主要ライブラリ:
- @unocss/preset-mini: CSSフレームワーク
- vite (v7.1.3): 高速ビルドツール
- turbo (v2.5.6): モノレポ管理
開発・運用ツール
- パッケージ管理: pnpm workspaces、Turbo
- テスト: Vitest、カバレッジ測定
- CI/CD: GitHub Actions、 simple-git-hooks
- デプロイ: Netlify、Docker、PWA
設計パターン・手法
- Micro-frontend Architecture: 各アプリが独立してデプロイ可能
- Plugin System: 動的コンポーネント読み込み
- Reactive Programming: Vue 3 Composition API活用
- Web Workers: 重い処理のオフロード(音声処理等)
データフロー・処理フロー
- 入力受信: 音声/テキスト入力の受信とVAD処理
- 意図理解: LLM による自然言語理解
- アクション決定: キャラクター行動の決定
- 応答生成: TTS による音声生成、アバター制御
- 外部連携: ゲーム操作、SNS投稿等の外部アクション実行
API・インターフェース
公開API
Component Calling API
- 目的: プラグインシステムでの機能拡張
- 使用例:
// Weather plugin example
export interface WeatherComponent {
getCurrentWeather(location: string): Promise<WeatherData>
displayWeatherWidget(): VueComponent
}
Tauri Plugin API
- 目的: Desktop版でのシステムレベル機能
- 使用例:
// Window manipulation plugin
#[tauri::command]
async fn set_window_pass_through(enable: bool) -> Result<(), String> {
// Native window control implementation
}
設定・カスタマイズ
設定ファイル
// package.json - workspaces configuration
{
"workspaces": [
"packages/**",
"plugins/**",
"services/**",
"apps/**"
]
}
拡張・プラグイン開発
プラグインシステムにより、独自の機能拡張が可能。Vue.js コンポーネントとして実装し、API呼び出し、UI表示、データ処理等を組み合わせた複合機能の開発をサポート。
パフォーマンス・スケーラビリティ
パフォーマンス特性
- ベンチマーク結果: WebGPU活用により、ブラウザでも60FPSの滑らかなアニメーション
- 最適化手法: Web Workers活用、バンドル分割、レイジーローディング
スケーラビリティ
マイクロサービス設計により、各機能を独立してスケール可能。Discord、Minecraft等のサービスは個別にデプロイ・拡張でき、大規模コミュニティでの利用にも対応。
制限事項
- WebGPU対応ブラウザ必須(最新Chrome、Firefox等)
- リアルタイム機能にはWebSocket接続の安定性が必要
- ゲーム統合機能はゲーム側のAPI制限に依存
評価・所感
技術的評価
強み
- 最新Web技術の先進的活用(WebGPU、WebAssembly等)
- マルチプラットフォーム対応による高いアクセシビリティ
- モジュラー設計による高い拡張性と保守性
- オープンソースによる透明性と改造自由度
改善の余地
- 初期セットアップの複雑さ(多数の依存関係)
- ドキュメントの充実化(特に開発者向け)
- パフォーマンス最適化(大規模利用時)
向いている用途
- 個人用AI コンパニオンの作成
- VTuber/バーチャルストリーマーの運用
- ゲーミングコミュニティでのボット運用
- AI技術の学習・研究目的
向いていない用途
- 企業レベルのカスタマーサポート(個人向け設計)
- リアルタイム性が極めて重要なミッション クリティカルシステム
- 大規模な商用サービス(個人プロジェクト前提)
総評
AIRIは、Neuro-samaのような高度なAIキャラクターを個人が所有できるという革新的なビジョンを実現した画期的なプロジェクトです。最新のWeb技術を駆使したマルチプラットフォーム対応、豊富なゲーム統合機能、そして拡張可能なプラグインシステムにより、従来のチャット型AIを大きく超越した体験を提供します。
特に技術面では、WebGPUやWebAssemblyを活用したブラウザでの高性能処理、TauriによるネイティブDesktop体験、そしてマイクロサービス設計による柔軟性は非常に評価できます。オープンソースプロジェクトとしても活発で、コミュニティ主導の開発が進んでいる点も魅力的です。
一方で、セットアップの複雑さや学習コストの高さは課題として残りますが、AI技術とバーチャルキャラクター分野の発展において重要な意義を持つプロジェクトと言えるでしょう。