UML/SysMLなどのモデルをAI(LLM)と連携する

はじめに

昨今、AI (Artificial Intelligence: 人工知能)の発展はめざましく、特にLLM (Large Language Models: 大規模言語モデル)の進化は目を見張るものがあります。OpenAI社のChatGPTが著名ですが、それだけでなく多くの企業がさまざまな言語モデルをサービスとして利用可能な形で提供してます。最近は、AI・LLMそのものだけでなく、既存のさまざまな情報・サービスと連携させることにも多くの個人・企業が挑戦し続けています。

その連携の1つとして、UMLやSysMLなどの表記方法を利用して作成された設計モデル・業務モデル(以下「モデル」と表記しますが、LLMのモデルとは異なるものです)などとAIを連携できないか、ということも当然ながら考えられます。どのように連携するのか、その方法だけでもいろいろと考えられます。例えば、文書などからモデルを自動生成することも考えられますし、既存のモデルから何かを自動生成することも考えられるでしょう。

設計モデルをAIに理解させる

このページで紹介する「情報生成アドイン」は、既存のモデルをAIに理解させて活用するための情報を生成するために利用することを想定しています。具体的には、次のような状況の支援を想定しています。

  • 他の人が作成したモデルの理解を、AIを利用して対話的に行う
  • モデルの問題点を見つけてもらう
  • モデルに変更を加える場合の変更点や注意点を提案してもらう

こうしたことを実現するためには、モデルの内容をできる限り正確にAIに伝えることが必要です。通常、モデルはダイアグラム(図)として表現されますが、画像であるダイアグラムの明確な意味を、画像から正確に理解することは容易ではないでしょう。今後のAI・LLMの進化により精度は向上するかもしれませんが、もしモデルの内容を文章として出力できれば、その方が理解度が高くなると考えられます。既存の文章の理解の枠組みでモデルを理解できるようになることがその理由です。

このアドインで得られた文字列としてのモデルの情報を、問い合わせる内容と合わせてLLMにプロンプトとして渡すことで、モデルの内容に関係する問い合わせに対応できるようになると考えられます。RAG (Retrieval Augmented Generation: 検索拡張生成)における外部ソースとして、このアドインを利用して得られたモデルの文字列情報を渡す位置づけです。

謝辞

このアドインの作成には、株式会社バリューソースの神崎様に多大なるご支援・情報提供をいただきました。神崎様はLLMの活用について多くの試行錯誤から得られた知見がありますので、このアドインを効率的に使うためのプロンプトや生成ルールの定義など、支援が必要な場合には株式会社バリューソースにお問い合わせください。
(弊社ではツール・アドインそのものを超える範囲のサポート・教育・コンサルティングは行っていません。)

情報生成アドインについて

このページからダウンロードできる情報生成アドインは、対象の図の内容を文章として出力します。

このようにして出力された文章をChatGPTのような対話型エンジンの入力とすることで、そのモデルに対してAI・LLMとの対話が可能となります。

モデルの内容を文章に変換するためのルールも、モデルとして定義します。この定義はゼロから構築することもできますが、サンプルの定義を含むパッケージが利用できます。その内容をカスタマイズすることで、自分たちのモデルに合わせた出力にできます。

アドインの概要の動画

このアドインの概要を動画で説明しています。(8分55秒・音声あり)

アドインを試しに使ってみる

サンプルの定義パッケージには、クラス図・ステートマシン図・ユースケース図およびUSDM・プロセスフロー図の内容の一部についての定義が含まれます。これらの図であれば、アドインがどのような動作になるのかをすぐに確認できます。

試しに使う場合の手順は次の通りです。

  1. アドインのインストール後、対象のダイアグラムを開き、そのダイアグラム内で右クリックして「アドイン・拡張」→「情報生成」を実行してください。
  2. 初回実行時は、出力定義のパッケージがプロジェクトに含まれていないはずですので、読み込むかどうかのメッセージが表示されます。出力定義のパッケージを読み込んでください。出力定義のパッケージは、モデルルートの直下に作成されます。
  3. 読み込みを実行すると、最終的に以下のような画面が表示されます。
  4. この内容をそのまま利用しても良いのですが、この内容についての前提を含めてLLMに伝える方が効果的です。出力定義のパッケージ内の「RULE」という名前のダイアグラムを開き、下の方にある以下の2つのノート要素を2つとも選択し、Ctrl+Cでコピーしてください。
  5. 出力対象のダイアグラムに戻り、Ctrl+Vで貼り付けてから再度「アドイン・拡張」→「情報生成」を実行してください。今後は、このノートの内容が出力内容の前後に含まれるようになります。

このようにして得られた内容を普段利用しているLLMチャットの入力として貼り付け、質問をしてみてください。以下は、このページを作成時点でのClaude 3での実行例です。

アドインの動作条件

  • 利用できるエディションには制限はありません
  • 現在のところ、QEAファイルのみで動作確認を行っています
  • このアドインは「動作期間限定アドイン」です

アドインのダウンロード

情報生成アドインを利用する場合には、以下のリンクからアドインのファイルをダウンロードして下さい。インストール方法はこちらをご覧下さい
addin_InfoExtractor.zip

Microsoft Edgeブラウザをご利用の方へ
アドインのZIPファイルをダウンロードすると、Microsoft Defender SmartScreen機能によりダウンロードができない(ように見える)場合があります。この場合には、こちらのページに記載の手順で回避をお願いします

定義内容のカスタマイズについて

定義内容のカスタマイズおよびその定義方法・ルールなどは、上記の手順にて読み込めるサンプル定義のパッケージ内に、ノート要素として説明を記載しています。不明な点がありましたら、サポート窓口にお問い合わせください。