mirror of
https://github.com/DayuanJiang/next-ai-draw-io.git
synced 2026-01-02 22:32:27 +08:00
- Add GitHub Sponsors iframe button to chat panel header - Update README with badges and language switcher - Add Chinese README (README_CN.md) - Add Japanese README (README_JA.md) - Reorganize examples section in README
8.8 KiB
8.8 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アーキテクチャダイアグラムの生成を専門的にサポート
- アニメーションコネクタ:より良い可視化のためにダイアグラム要素間に動的でアニメーション化されたコネクタを作成
例
以下はいくつかのプロンプト例と生成されたダイアグラムです:
仕組み
本アプリケーションは以下の技術を使用しています:
- Next.js:フロントエンドフレームワークとルーティング
- Vercel AI SDK(
ai+@ai-sdk/*):ストリーミングAIレスポンスとマルチプロバイダーサポート - react-drawio:ダイアグラムの表現と操作
ダイアグラムはdraw.ioでレンダリングできるXMLとして表現されます。AIがコマンドを処理し、それに応じてこのXMLを生成または変更します。
マルチプロバイダーサポート
- AWS Bedrock(デフォルト)
- OpenAI / OpenAI互換API(
OPENAI_BASE_URL経由) - Anthropic
- Google AI
- Azure OpenAI
- Ollama
- OpenRouter
- DeepSeek
注:claude-sonnet-4-5はAWSロゴ付きのdraw.ioダイアグラムで学習されているため、AWSアーキテクチャダイアグラムを作成したい場合は最適な選択です。
はじめに
インストール
- リポジトリをクローン:
git clone https://github.com/DayuanJiang/next-ai-draw-io
cd next-ai-draw-io
- 依存関係をインストール:
npm install
# または
yarn install
- AIプロバイダーを設定:
ルートディレクトリに.env.localファイルを作成:
cp env.example .env.local
.env.localを編集して選択したプロバイダーを設定:
AI_PROVIDERを選択したプロバイダーに設定(bedrock, openai, anthropic, google, azure, ollama, openrouter, deepseek)AI_MODELを使用する特定のモデルに設定- プロバイダーに必要なAPIキーを追加
プロバイダー固有の設定例については、上記のマルチプロバイダーサポートセクションを参照してください。
- 開発サーバーを起動:
npm run dev
- ブラウザでhttp://localhost:3000を開いてアプリケーションを確認。
デプロイ
Next.jsアプリをデプロイする最も簡単な方法は、Next.jsの作成者によるVercelプラットフォームを使用することです。
詳細はNext.jsデプロイメントドキュメントをご覧ください。
ローカルの.env.localファイルと同様に、Vercelダッシュボードで環境変数を設定してください。
プロジェクト構造
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/ # サンプル画像を含む静的アセット
TODO
- LLMが毎回ゼロから生成する代わりにXMLを修正できるようにする
- シェイプストリーミング更新の滑らかさを改善
- 複数のAIプロバイダーサポートを追加(OpenAI, Anthropic, Google, Azure, Ollama)
- 60秒以上のセッションで生成が失敗するバグを解決
- UIにAPI設定を追加
サポート&お問い合わせ
このプロジェクトが役に立ったら、ライブデモサイトのホスティングを支援するためにスポンサーをご検討ください!
サポートやお問い合わせについては、GitHubリポジトリでissueを開くか、メンテナーにご連絡ください:
- メール:me[at]jiang.jp