前回はPython関数の unittest をGemini様に作ってもらいました。時々ポカはあるけれど、よく見て使えば実用になるじゃん、と。一方、回路図とかグラフなどの読み取りはイマイチです。そこで気づきました。皆大好きGraphvizのソースを作ってもらえば、ブロックダイアグラムなどを描いていただけるのでは?と。
※Google様の生成AI、Gemini(無料プランだけれども)を使ってブロック・ダイアグラムを「描いて」もらっています。
Graphviz
意図してお使いの方々にとっても、意図せず(他のソフトウエアが下働きにGraphvizを使役していたりするので)お使いの方々にとっても、Graphvizはモダーンなビジュアライゼーションに定番のツールではないかと思います。公式へのリンクが以下に。
なんといってもGraphvizはテキストベースの「ソース」から画像を生成してくれます。Gemini様はソフトよりの「ソース」生成はお得意。多分、描いてほしいオブジェクトが伝わりさえすればGraphvizでビジュアライズ可能なソースを生成していただけるのでは?と考えました。
今回ターゲットのお題
Gemini様のプロンプトに入力のお題は以下です。いつものとおり茫漠とした投げかけだな。
Graphvizを使って PID制御のブロックダイアグラムを描いて
ターゲットは「PID制御」の一言ですが、なんでもよくご存じのGemini様のことです。これだけでなにか図面を引いてくれる気がします。ホントか?
Gemini様のご回答
Gemini様のご回答は例によって3案見比べてみました。
-
- 第1案
Gemini様が生成した Graphvizのソースを以下のようにして Graphvizのコマンドの一つdotに食わせて得られた図形が以下に。
dot -Tsvg pid000.dot >pid000.svg
こんなブロック図です。内部のラベルに日本語使ってくれとります。
PID制御のエッセンスが込められた「ミニマリスト」的ブロックダイアグラムじゃないかと思います。
-
- 第2案
第2案は、出力ファイル形式を変更、svgではなく、ガチのグラフィックであるPNG形式に変更して処理してみました。
dot -Tpng pid002.dot -o pid002.png
出力が以下に。おっと、これはイケない。文字化け。
SVG形式であれば、ファイル表示時に表示側のソフトウエア(ブラウザなど)がよきに計らってくれるのでしょうが、ガチのグラフィックファイルの場合、Graphvizのdotコマンドが処理するときに日本語フォントを指定しておかないとならないようです。以下のように追加でGemini様のプロンプトにお願いしたら、ソースにフォント名を追加してくれました。
日本語フォント Meiryo を使って
日本語フォントが化けないようにした後の案2のブロックダイアグラムが以下に。
フォントは化けなくなったけれども、上記のブロックダイアグラムはかなり問題ある感じだなあ。出力から矢印がでて入力へと向かっている。反対方向じゃ。なんじゃらほい。これはダメだあ。
-
- 第3案
第3案(日本語フォント化け対策済)のブロックダイアグラムが以下に。
なんとなく、PID制御の内部構造を描こうとしたらしいことは分かるのだけれども、Pの先は無い(Kpが別ルート)し、これまたちょっと却下の案だな~。
案1が一番まともだったです。所望のブロックダイアグラムを描いてもらうには、もっといろいろ指示をしないとダメかもしれんね。