はじめに
最近、生成AIを使ってドキュメント作成をやろうと思い始めました。
時間のかかる構成図の作成をやってくれたらとても助かるなーと思い、色々な記事を見ながらやっていたのですが、うまくいかないこともあったので、自分なりに考えてやっていました。
AWS CDKから構成図の作成について、自分なりの工夫した点を書いておきます。
前提条件
VSCodeの拡張機能としてAmazon Qを使用しています。
モデルはClaude Sonnet 4を使っています。
今回構成図のもととなるAWS CDKはBLEAのマルチアカウント版です。
①.drawioの形式を指定する
初めは結果をVSCode上で確認したく、.svg形式を取っていたのですが、どうにもVSCode上で使えるAWS 2025アイコンを使ってくれませんでした。
指示しても全く別のアイコンを使ってしまい、うまくいきませんでした。
SVGであってもdrawio.com上で編集できる形式でないものもあり、変換を指示する手間もありました。
.drawioを指定すると、AWS 2025アイコン(に似たもの)を使用してくれるようになりました。
.svg形式が欲しくなったらdrawio.comで出力すればよいですし。
②.drawioファイルのテンプレートを用意する
①でアイコンは使用してくれるようになりましたが、Amazon Qが気を利かせたのか、色を変えたものを使って作られることがありました。
見やすい配慮はありがたいのですが、見やすさは最後に調整したい派なので、公式アイコンはそのまま使ってほしいと思いました。
そこで、テンプレート(テンプレートと言ってもアイコンを並べただけですが)を用意して、テンプレートファイルを修正するような指示にしました。
これにより、drawio.comでの形式を維持しつつ、高確率で公式アイコンをそのまま使用してくれるようになりました。
③パースエラーを防ぐような指示をした
.drawio形式でも以下のようなエラーとなることが多くありました。
error on line 19 at column 49: xmlParseEntityRef: no name
XMLの構文が間違っていたことは1度もなかったのですが、どうやら構成図に含まれる「AWS Identity & Access Management」の&をエスケープしておらず、エラーとなっていました。
そこで、&をエスケープする指示も入れることで、エラーが出ないようにできました。
④使用しないアイコンは削除するように指示をした
テンプレートファイルを用意した影響で、参照程度の構築対象外のリソースも構成図に含まれるようになりました(ありがたいときもありますが)。
なので、使用しないアイコンは削除するように指示を出しました。
これにより、おおむね削除してくれるようになりました。
削除されなくても、構築対象外だとわかるような記載をしてくれるようになりました。
⑤要件であることを明言した
要件は特に明言せず、箇条書きで書いていましたが、Amazon Qは箇条書き1つ1つが指示だと理解して、箇条書きの数だけ、構成図を作成/修正しようとしていました。
そのため、全部終わるまでに30分近くかかっていました。
要件は要件であることを明言することで、一度の指示ですべての要件を満たすようにでき、構成図作成までの時間短縮をさせることができました。
数回同じプロンプトを流してみる
プロンプト
baseline-environment-on-aws\usecases\blea-gov-base-ctディレクトリにてAWS CDKで定義されているAWSリソースについて、template-drawio.drawioを修正して構成図を作成してください。
ただし、以下条件を満たしてください。
・定義されていないAWSリソースのアイコンは削除してください。
・template-drawio.drawioにないAWSリソースはAWS 2025アイコンを使用してください。
・&を使う場合、パースエラーが起きないようエスケープしてください。
・AWSサービス毎に定義されているリソース名の数を読み取り、個数分のアイコンを記載してください
・リソース間の関係は矢印で表し、矢印の説明を記載してください。
1回目
アイコンの配置は要修正ですが、いい感じに見えます。
2回目
ほぼ同じ結果でした。
ただ、2回構成図作成/修正が行われました。「AWSサービス毎に定義されているリソース名の数を読み取り」の部分が要件ではなく指示だと理解したのかもしれません。
3回目
IAMリソースがまとめられてしまいました。まだプロンプトの改善の余地はありそうです。
ただ、ここまでやってくれれば後のやり取りで改善は簡単そうです。
おわりに
即完成とは言わずとも、編集ストレスがぐっと減った構成図作成を今後はできそうだなと感じました。それと、AWS CDKで気づいていなかった実装も構成図から知ることができました。。生成AI、すごいですね。
今後はどんなタスクも「AIでやったら楽かな」と一度は検討した方がいいのかなと思ってきました。
これからも勉強します。