実装例
実践的なAIボットの実装例を紹介します。これらのサンプルコードを参考に、用途に応じたボットを開発できます。
📦 GitHubリポジトリ: https://github.com/urth-inc/metatell-ai-bot
📂 実装例ディレクトリ: https://github.com/urth-inc/metatell-ai-bot/tree/develop/examples
サンプルボット一覧
metatell Bot SDKには以下のサンプル実装が含まれています。
| サンプル名 | 説明 | 主な機能 |
|---|---|---|
basic-bot | 基本的なチャットボット | メンション返信、利用者の追従、アニメーション |
voice-bot | WAV音声ボット | WAV再生、ルーム音声の録音、利用者の追従 |
speech-to-speech-bot | 音声間変換ボット | 音声認識→処理→音声合成 |
dify-bot | Dify統合ボット | 外部AI APIとの連携 |
voice-ai-bot | Gemini Live音声ボット | ルーム音声のストリーミング、リアルタイム音声応答 |
bt-bot | ビヘイビアツリーボット | 優先度付き自律行動、LLM発話、カスタムノード |
voice-bot の概要
WAVファイルをルームへ再生し、ルームから受信したPCM音声をWAVファイルへ保存するサンプルです。
主な機能
- WAVファイルを48kHzのPCMへ変換してルームへ再生します。
- ルームから受信した音声をローカルの
recordingsディレクトリへ保存します。 - キー操作でWAVの再生と録音、接続の終了ができます。
- 近くの利用者を追従します。
セットアップと起動
# リポジトリのルートで依存関係をインストールしてビルド
pnpm install
pnpm build
# サンプルディレクトリに移動
cd examples/voice-bot
# voice-bot固有の依存関係をインストール
npm ci
# ボットの起動
npm start -- YOUR_ROOM_URL
第2引数へWAVファイルのパスを指定できます。 省略した場合はサンプル付属の音声を使用します。
| キー | 動作 |
|---|---|
p | WAVファイルを再生します。 |
r | 停止中の録音を再開します。起動直後は録音が自動で開始されます。 |
s | 録音を停止し、WAVファイルを保存します。 |
q | 録音を停止して接続を終了します。 |
basic-bot の概要
メンションへ返信し、近くの利用者を追従する最小構成のチャットボットです。
主な機能
- 自分宛てのメンションへの返信
- 在室ユーザーの確認
- 近くの利用者への移動と視線制御
- 移動中と待機中のアニメーション切り替え
speech-to-speech-bot の概要
音声を認識して処理し、音声で応答するボットです。
主な機能
- 音声ストリームの処理
- リアルタイム音声認識
- テキスト処理(翻訳、要約など)
- 音声合成と配信
dify-bot の概要
Dify APIと連携する高度なAIボットです。
主な機能
- 外部AI APIとの連携
- 会話履歴の管理
- ユーザーごとのコンテキスト保持
- ストリーミング応答の分割送信
カスタムボットの作成
用途に応じて様々なボットを作成できます。
ゲームマスターボット
- クイズゲームの進行
- スコア管理
- プレイヤー管理
サポートボット
- FAQ応答
- チケット作成
- ユーザーガイダンス