Amazon Q Developerのmiyohide的活用例(ドキュメント編)

はじめに

生成AIのプログラミングでの活用が謳われて久しい今日この頃ですが、今回はAmazon Q Developerをちょっと時間をとって試してみたのでその結果をここに記します。主にドキュメント生成について。

aws.amazon.com

ワークショップ

AWSがワークショップとして以下にドキュメントを公開しています。

catalog.workshops.aws

これを書いている時点で英語ですが無償で使えるので翻訳機能を使いながら進めていくと良いかなと思います。また、これを書いている時点でAmazon Q自身も英語しか受け付けないので英語で頑張りましょう。

@workspace

以下のドキュメントにあるように@workspaceをつけてプロジェクトに含まれているコードをもとに生成AIの回答精度が向上することが期待できます。

docs.aws.amazon.com

これを書いている時点で、まだベータ扱いのようです。

実際に試してみたのですが、@workspaceをつけないと「分からないが一般的にはこうだよ」と回答することが多かったのですが@workspaceをつけるとなんらかの回答が返ってくることが多かったです。ただ、返ってくる回答が正しいかどうかはまた別問題でした。

具体的には、Spring Initializrを使って生成させたWebアプリに対して、後述するプロンプト@workspace Could you please tell me what this xxxxx project?を入力したところ、存在しないクラスをもとに色々と回答を返したことがあり、ちょっと鵜呑みにできないなと感じました。

プロンプト

色々と機能があるAmazon Qですが、ドキュメント生成に関してのプロンプトでいろいろと試したのでその結果を以下に記します。

久しぶりに触るプロジェクトだと、「このプログラムって何をするんだっけ?」って概要を知りたいことが多いかなと思います。その時には以下のようなプロンプトを書くと概ね期待する結果が返ってきました。

@workspace Could you please tell me what this xxxxx project?

上記の中でxxxxxはSpring Boot WebアプリとかAWS CDKとかRailsアプリとか分かっている範囲の内容を書いていくと回答精度が高いような気がします。

クラスやメソッドのドキュメント作成はかなり面倒くさい作業の一つなのですが、Amazon Qにやってもらうとそれぞれのフォーマットでいい感じに作成してくれます。プロンプトとしては以下のようなものを使いました。

Generate xxxxx for this class/method. output only xxxxx string.

上記の中でxxxxxJavaDocとかJSDocとかYARD(Ruby用)とかを指定します。output only xxxxx string.と書くと生成された文字列のコピペが楽なので指定すると良いかなと思います。

クラスやメソッドが何をしているかを確認したい場合、対象を選択して右クリック→Amazon Q→Explainをすると回答してくれます。

ただ、これだとちょっと冗長すぎることもあります。そのため、Amazon Q→Send to promptを選択し、プロンプトにCould you tell me what this class is doing? answer within 200 characters.とか書くといい感じに短い回答をしてくれることが多いです。