Files
next-ai-draw-io/README_JA.md
Twelveeee 3fb349fb3e clear button cant clear error msg & feat: add setting dialog and add accesscode (#77)
* fix: clear button cant clear error msg

* new: add setting dialog and add accesscode

* fix: address review feedback - dark mode, types, formatting

* feat: only show Settings button when access code is required

* refactor: rename ACCESS_CODES to ACCESS_CODE_LIST

---------

Co-authored-by: dayuan.jiang <jdy.toh@gmail.com>
2025-12-05 22:09:34 +09:00

10 KiB
Raw Permalink Blame History

Next AI Draw.io

AI搭載のダイアグラム作成ツール - チャット、描画、可視化

English | 中文 | 日本語

License: MIT Next.js TypeScript Sponsor

🚀 ライブデモ

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アーキテクチャダイアグラムの生成を専門的にサポート
  • アニメーションコネクタ:より良い可視化のためにダイアグラム要素間に動的でアニメーション化されたコネクタを作成

以下はいくつかのプロンプト例と生成されたダイアグラムです:

アニメーションTransformerコネクタ

プロンプト: **アニメーションコネクタ**付きのTransformerアーキテクチャ図を作成してください。

アニメーションコネクタ付きTransformerアーキテクチャ
GCPアーキテクチャ図

プロンプト: **GCPアイコン**を使用してGCPアーキテクチャ図を生成してください。この図では、ユーザーがインスタンス上でホストされているフロントエンドに接続します。

GCPアーキテクチャ図
AWSアーキテクチャ図

プロンプト: **AWSアイコン**を使用してAWSアーキテクチャ図を生成してください。この図では、ユーザーがインスタンス上でホストされているフロントエンドに接続します。

AWSアーキテクチャ図
Azureアーキテクチャ図

プロンプト: **Azureアイコン**を使用してAzureアーキテクチャ図を生成してください。この図では、ユーザーがインスタンス上でホストされているフロントエンドに接続します。

Azureアーキテクチャ図
猫のスケッチ

プロンプト: かわいい猫を描いてください。

猫の絵

仕組み

本アプリケーションは以下の技術を使用しています:

  • Next.js:フロントエンドフレームワークとルーティング
  • Vercel AI SDKai + @ai-sdk/*ストリーミングAIレスポンスとマルチプロバイダーサポート
  • react-drawio:ダイアグラムの表現と操作

ダイアグラムはdraw.ioでレンダリングできるXMLとして表現されます。AIがコマンドを処理し、それに応じてこのXMLを生成または変更します。

マルチプロバイダーサポート

  • AWS Bedrockデフォルト
  • OpenAI
  • Anthropic
  • Google AI
  • Azure OpenAI
  • Ollama
  • OpenRouter
  • DeepSeek

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アーキテクチャダイアグラムを作成したい場合は最適な選択です。

はじめに

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

ブラウザで http://localhost:3000 を開いてください。

環境変数はお好みのAIプロバイダー設定に置き換えてください。利用可能なオプションについてはマルチプロバイダーサポートを参照してください。

インストール

  1. リポジトリをクローン:
git clone https://github.com/DayuanJiang/next-ai-draw-io
cd next-ai-draw-io
  1. 依存関係をインストール:
npm install
# または
yarn install
  1. AIプロバイダーを設定

ルートディレクトリに.env.localファイルを作成:

cp env.example .env.local

.env.localを編集して選択したプロバイダーを設定:

  • AI_PROVIDERを選択したプロバイダーに設定bedrock, openai, anthropic, google, azure, ollama, openrouter, deepseek
  • AI_MODELを使用する特定のモデルに設定
  • プロバイダーに必要なAPIキーを追加
  • ACCESS_CODE_LIST アクセスパスワード(オプション)。カンマ区切りで複数のパスワードを指定できます。

警告:ACCESS_CODE_LISTを設定しない場合、誰でもデプロイされたサイトに直接アクセスできるため、トークンが急速に消費される可能性があります。このオプションを設定することをお勧めします。

詳細な設定手順についてはプロバイダー設定ガイドを参照してください。

  1. 開発サーバーを起動:
npm run dev
  1. ブラウザでhttp://localhost:3000を開いてアプリケーションを確認。

デプロイ

Next.jsアプリをデプロイする最も簡単な方法は、Next.jsの作成者によるVercelプラットフォームを使用することです。

詳細はNext.jsデプロイメントドキュメントをご覧ください。

または、このボタンでデプロイできます: Deploy with Vercel

ローカルの.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

スター履歴

Star History Chart