Diff Motion APIと連携して、AIの回答に応じてキャラクターの表情(ポーズ等)を切り替えるデモアプリケーション
Important
本デモの動作には、Diff Motionの購入が必要です。
Tip
Diff Motion APIについては、こちらの記事を併せてご覧ください。
app/
├── api/ # APIエンドポイント関連
│ ├── models.py # リクエスト/レスポンスモデル
│ └── routes.py # ルート定義
├── core/ # コアロジック
│ ├── __init__.py
│ ├── ai_chat.py # AIチャット機能
│ └── diff_motion_api.py # Diff Motion API連携
├── config/ # 設定ファイル
│ └── system_prompt.md # システムプロンプト
├── static/
│ ├── index.html
│ ├── script.js
│ └── style.css
├── favicon.ico
└── main.py
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | shgit clone https://github.com/yuki-dev26/diff-motion-api-playground.git
cd diff-motion-api-playground.env ファイルを作成し、OpenAI API キーを設定してください。
OPENAI_API_KEY="your_api_key"Tip
OpenAI APIキーの取得方法については、こちらの記事を参照してください。
uv sync以下のコマンドでサーバーを起動します。
uv run python -m app.mainブラウザで http://localhost:8000 を開く
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
-
Diff Motionの起動
- Diff Motionアプリケーションを起動してください
- プリセットに名前を入力する(感情分類のキーワードとなる)
- APIサーバーが自動的に起動します(デフォルト:
http://localhost:37264)
-
プリセットの取得と切り替えについて
- Diff Motion API Playgroundが開いたらDiff Motionに登録済みのプリセット名が表示される
- プリセット名をクリックするとそのプリセットに切り替わります
-
チャットによるプリセット切り換え
- Diff Motion API Playgroundを起動後にブラウザで
http://localhost:8000にアクセス - チャット欄にメッセージを入力して送信
- AIが応答し、その感情に応じてDiff Motionのプリセットが自動的に切り替わります
- Diff Motion API Playgroundを起動後にブラウザで
- プリセット取得: アプリ起動時にDiff Motion APIからプリセット名を取得し、システムプロンプトに動的注入
- システムプロンプト: AIに
[[感情]]タグを応答に含めるよう指示(使用可能なプリセット名のリストも含む) - タグ抽出: 正規表現
\[\[(.*?)\]\]でAI応答からタグを抽出 - プリセット切り替え: タグ内容がDiff Motionのプリセット名と一致すれば
http://localhost:37264/preset/switchにPOSTリクエストを送信
Copyright (c) 2026 yuki-P Licensed under the MIT License.
