Skip to content

yuki-dev26/diff-motion-api-playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Diff Motion API Playground

Tech Stack

Diff Motion APIと連携して、AIの回答に応じてキャラクターの表情(ポーズ等)を切り替えるデモアプリケーション

image

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

🚀 セットアップ

0. uv のインストール (未インストールの場合)

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

1. リポジトリのクローン

git clone https://github.com/yuki-dev26/diff-motion-api-playground.git
cd diff-motion-api-playground

2. 環境変数の設定

.env ファイルを作成し、OpenAI API キーを設定してください。

OPENAI_API_KEY="your_api_key"

Tip

OpenAI APIキーの取得方法については、こちらの記事を参照してください。

3. 依存関係のインストール

uv sync

4. アプリケーションの起動

以下のコマンドでサーバーを起動します。

uv run python -m app.main

ブラウザで http://localhost:8000 を開く

5. APIドキュメント

使い方

  1. Diff Motionの起動

    • Diff Motionアプリケーションを起動してください
    • プリセットに名前を入力する(感情分類のキーワードとなる)
    • APIサーバーが自動的に起動します(デフォルト: http://localhost:37264
  2. プリセットの取得と切り替えについて

    • Diff Motion API Playgroundが開いたらDiff Motionに登録済みのプリセット名が表示される
    • プリセット名をクリックするとそのプリセットに切り替わります
  3. チャットによるプリセット切り換え

    • Diff Motion API Playgroundを起動後にブラウザで http://localhost:8000 にアクセス
    • チャット欄にメッセージを入力して送信
    • AIが応答し、その感情に応じてDiff Motionのプリセットが自動的に切り替わります

🔧 プリセット切り替えの仕組み

  1. プリセット取得: アプリ起動時にDiff Motion APIからプリセット名を取得し、システムプロンプトに動的注入
  2. システムプロンプト: AIに [[感情]] タグを応答に含めるよう指示(使用可能なプリセット名のリストも含む)
  3. タグ抽出: 正規表現 \[\[(.*?)\]\] でAI応答からタグを抽出
  4. プリセット切り替え: タグ内容がDiff Motionのプリセット名と一致すれば http://localhost:37264/preset/switch にPOSTリクエストを送信

Supporters

note メンバーシップ

License

Copyright (c) 2026 yuki-P Licensed under the MIT License.

License: MIT

About

Diff Motion APIを活用したPNGTuber表情切替チャットボットPlayground(Web UI)

Topics

Resources

License

Stars

Watchers

Forks

Contributors