12 KiB
Next AI Draw.io
AI機能とdraw.ioダイアグラムを統合したNext.jsウェブアプリケーションです。自然言語コマンドとAI支援の可視化により、ダイアグラムを作成、修正、強化できます。
https://github.com/user-attachments/assets/b2eef5f3-b335-4e71-a755-dc2e80931979
目次
例
以下はいくつかのプロンプト例と生成されたダイアグラムです:
機能
- LLM搭載のダイアグラム作成:大規模言語モデルを活用して、自然言語コマンドで直接draw.ioダイアグラムを作成・操作
- 画像ベースのダイアグラム複製:既存のダイアグラムや画像をアップロードし、AIが自動的に複製・強化
- ダイアグラム履歴:すべての変更を追跡する包括的なバージョン管理。AI編集前のダイアグラムの以前のバージョンを表示・復元可能
- インタラクティブなチャットインターフェース:AIとリアルタイムでコミュニケーションしてダイアグラムを改善
- AWSアーキテクチャダイアグラムサポート:AWSアーキテクチャダイアグラムの生成を専門的にサポート
- アニメーションコネクタ:より良い可視化のためにダイアグラム要素間に動的でアニメーション化されたコネクタを作成
はじめに
オンラインで試す
インストール不要!デモサイトで直接お試しください:
注意:アクセス数が多いため、デモサイトでは現在 minimax-m2 モデルを使用しています。最高の結果を得るには、Claude Sonnet 4.5 または Claude Opus 4.5 でのセルフホスティングをお勧めします。
自分のAPIキーを使用:自分のAPIキーを使用することで、デモサイトの利用制限を回避できます。チャットパネルの設定アイコンをクリックして、プロバイダーとAPIキーを設定してください。キーはブラウザのローカルに保存され、サーバーには保存されません。
Dockerで実行(推奨)
ローカルで実行したいだけなら、Dockerを使用するのが最も簡単です。
まず、Dockerをインストールしていない場合はインストールしてください:Dockerを入手
次に実行:
docker run -d -p 3000:3000 \
-e AI_PROVIDER=openai \
-e AI_MODEL=gpt-4o \
-e OPENAI_API_KEY=your_api_key \
ghcr.io/dayuanjiang/next-ai-draw-io:latest
または env ファイルを使用(env.example から作成):
cp env.example .env
# .env を編集して設定を入力
docker run -d -p 3000:3000 --env-file .env ghcr.io/dayuanjiang/next-ai-draw-io:latest
ブラウザで http://localhost:3000 を開いてください。
環境変数はお好みのAIプロバイダー設定に置き換えてください。利用可能なオプションについてはマルチプロバイダーサポートを参照してください。
オフラインデプロイ:
embed.diagrams.netがブロックされている場合は、オフラインデプロイガイド で設定オプションをご確認ください。
インストール
- リポジトリをクローン:
git clone https://github.com/DayuanJiang/next-ai-draw-io
cd next-ai-draw-io
- 依存関係をインストール:
npm install
- AIプロバイダーを設定:
ルートディレクトリに.env.localファイルを作成:
cp env.example .env.local
.env.localを編集して選択したプロバイダーを設定:
AI_PROVIDERを選択したプロバイダーに設定(bedrock, openai, anthropic, google, azure, ollama, openrouter, deepseek, siliconflow)AI_MODELを使用する特定のモデルに設定- プロバイダーに必要なAPIキーを追加
TEMPERATURE:オプションの温度設定(例:0で決定論的な出力)。温度をサポートしないモデル(推論モデルなど)では設定しないでください。ACCESS_CODE_LISTアクセスパスワード(オプション)。カンマ区切りで複数のパスワードを指定できます。
警告:
ACCESS_CODE_LISTを設定しない場合、誰でもデプロイされたサイトに直接アクセスできるため、トークンが急速に消費される可能性があります。このオプションを設定することをお勧めします。
詳細な設定手順についてはプロバイダー設定ガイドを参照してください。
- 開発サーバーを起動:
npm run dev
- ブラウザでhttp://localhost:3000を開いてアプリケーションを確認。
デプロイ
Next.jsアプリをデプロイする最も簡単な方法は、Next.jsの作成者によるVercelプラットフォームを使用することです。
詳細はNext.jsデプロイメントドキュメントをご覧ください。
ローカルの.env.localファイルと同様に、Vercelダッシュボードで環境変数を設定してください。
マルチプロバイダーサポート
- AWS Bedrock(デフォルト)
- OpenAI
- Anthropic
- Google AI
- Azure OpenAI
- Ollama
- OpenRouter
- DeepSeek
- SiliconFlow
AWS BedrockとOpenRouter以外のすべてのプロバイダーはカスタムエンドポイントをサポートしています。
📖 詳細なプロバイダー設定ガイド - 各プロバイダーの設定手順をご覧ください。
モデル要件:このタスクは厳密なフォーマット制約(draw.io XML)を持つ長文テキスト生成を伴うため、強力なモデル機能が必要です。Claude Sonnet 4.5、GPT-4o、Gemini 2.0、DeepSeek V3/R1を推奨します。
注:claude-sonnet-4-5はAWSロゴ付きのdraw.ioダイアグラムで学習されているため、AWSアーキテクチャダイアグラムを作成したい場合は最適な選択です。
仕組み
本アプリケーションは以下の技術を使用しています:
- Next.js:フロントエンドフレームワークとルーティング
- Vercel AI SDK(
ai+@ai-sdk/*):ストリーミングAIレスポンスとマルチプロバイダーサポート - react-drawio:ダイアグラムの表現と操作
ダイアグラムはdraw.ioでレンダリングできるXMLとして表現されます。AIがコマンドを処理し、それに応じてこのXMLを生成または変更します。
プロジェクト構造
app/ # Next.js App Router
api/chat/ # AIツール付きチャットAPIエンドポイント
page.tsx # DrawIO埋め込み付きメインページ
components/ # Reactコンポーネント
chat-panel.tsx # ダイアグラム制御付きチャットインターフェース
chat-input.tsx # ファイルアップロード付きユーザー入力コンポーネント
history-dialog.tsx # ダイアグラムバージョン履歴ビューア
ui/ # UIコンポーネント(ボタン、カードなど)
contexts/ # Reactコンテキストプロバイダー
diagram-context.tsx # グローバルダイアグラム状態管理
lib/ # ユーティリティ関数とヘルパー
ai-providers.ts # マルチプロバイダーAI設定
utils.ts # XML処理と変換ユーティリティ
public/ # サンプル画像を含む静的アセット
サポート&お問い合わせ
このプロジェクトが役に立ったら、ライブデモサイトのホスティングを支援するためにスポンサーをご検討ください!
サポートやお問い合わせについては、GitHubリポジトリでissueを開くか、メンテナーにご連絡ください:
- メール:me[at]jiang.jp