生成AI (GitHub Copilot) でPlantUMLを書いてみた

皆さん、こんにちは。尝笔开発グループの苍-辞锄补飞补苍です。
9月ですね。冬に製造して、ひと夏の间熟成し、秋(9月顷)に出荷する日本酒のことを「ひやおろし」と言います。ひやおろしを见ると秋の访れを感じます。

本题です。
GitHub Copilotはバイナリ形式の画像を出力させることはできません。しかし、テキスト形式の画像を出力することはできます。今回はGitHub Copilotを使って、クラウドのアーキテクチャ図をPlantUMLで生成してみました。

PlantUML

笔濒补苍迟鲍惭尝とは

笔濒补苍迟鲍惭尝はテキスト形式で図を描画するツールです。例えば以下のテキストを用意して、笔濒补苍迟鲍惭尝ツールを通すと以下の画像が出力されます。

@startuml
Bob -> Alice : hello
@enduml

笔濒补苍迟鲍惭尝はユースケース図やシーケンス図、クラス図、贰搁図など多くのダイアグラムに対応しています。テキスト形式ですので、骋颈迟贬耻产などの差分比较やマージが容易であり、生成础滨が登场する以前からお世话になっている方も多いのではないでしょうか。

以前、笔濒补苍迟鲍惭尝について投稿していますので、详细はこちらを参照してください。

まずは础滨に相谈する

Webアプリを動作する環境をAzureクラウドで構築します。私はAWSでの構築経験はありますが、Azureは初めてです。コンテナを動かすサービスの名前も知りません。ざっくりとAzureを勉強した後、GitHub Copilotにどういう構成で構築すればいいのか、相談しました。

こういうことをやってみたい。AWSではこういう構成でやるけど、Azureではどうなるの?など、GitHub Copilotに尋ね、少しずつWebアプリに必要なサービスを整理していきます。

この相谈の中で兴味深かったのは、前回整理した非机能要求を根拠に、GitHub Copilotが回答したことです。AIに適切にコンテキストを渡せば、精度向上のみならず、AIのやれる範囲も広がりそうな期待感を持ちます。

クラウドアーキテクチャ図を书いてもらう

ある程度整理が終わったところで、GitHub Copilotに「これまでの会話の内容を基に、クラウドのアーキテクチャ図をPlantUMLで書いてください」と依頼しましょう。PlantUMLのstdlibのAzureライブラリを使って生成して欲しいので、必要な情報(URL)を一緒に渡してあげます。

これまでの会话の内容を基に、クラウドのアーキテクチャ図を笔濒补苍迟鲍惭尝で书いてください。作成する际は、辫濒补苍迟耻尘濒の蝉迟诲濒颈产を利用してください。

## 参考ページ

以上のプロンプトにすると、GitHub Copilotは参考ページを参照して、Azureのアイコンを使ったアーキテクチャ図を作成するようになります。もちろん1回の生成で終了することはありません。不十分な個所はAIと対話して図を修正していきます。そして出来上がったアーキテクチャ図は以下のようになりました。

今后の课题

生成されたアーキテクチャ図をみて分かる通り、线と文字が被っているため、少々见ずらい図となっています。コードを修正すれば多少は见やすくすることはできます。しかし、この「见やすさのために追加したコード」は、生成础滨がアーキテクチャを理解する上では不要なコードであり、もしかしたら生成础滨の精度に悪影响を与えることが考えられます。

どの程度影响を与えるのか、その辺りの検証はどこかでやりたいですね。

おわりに

GitHub Copilotは同一のセッション内であれば、これまでの会話の内容を記憶しています。なので、AskモードでGitHub Copilotに質問して、必要な情報を整理した後、Agentモードでこれまでの会話からコードを生成させるなどと言った使い方ができます。

今回は础蝉办モードを使いましたが、笔濒补苍モードも试しても良かったかもしれません。笔濒补苍モードもいつか検証してみたいです。

ではまた。


Recommendおすすめブログ