【Amazon Q】Q Developerを試してみました!

本記事は 夏休みクラウド自由研究 8/20付の記事です

こんにちは、SCSK池宮です。

今年7月から、Visual Studioでも利用ができるようになったAmazon Q Developerはどんな機能があるのか…今回は色々な機能を試してみました。

Amazon Q Developerとは?

AWSの生成AIアシスタントサービスの総称であるAmazon Qですが、中でもQ Developerは開発者向けに特化したサービスです。

開発者がコーディングをする際のアシスタントを担ってくれるため、生産性の向上が期待できます。

今回は、コード提案をしてくれる前身サービス「Amazon CodeWhisperer」 から追加された機能を中心に見ていきたいと思います。

チャット機能を使ってみる

Amazon Q Developerでは、統合開発環境(IDE)上でのチャット機能が追加されています。

(今回はVisual Studio Code(VSCode)上で試していきます!)

VS Codeを立ち上げ、左側にある「Amazon Q」アイコンをクリックします。

右側にチャット画面が出てきました。ここでAmazon Qとやり取りができるようになります。

コード生成してもらおう!

このチャット欄に「変数Aと変数Bの合計を計算するコードを生成してください」と送ります。(現在チャット機能は英語のみ対応しています)

 

回答が返ってきました。

Pythonのコードとアウトプット、そしてどのようなコードなのかという説明を返してくれました。

Python以外の場合として、JavaScriptのコードも回答してくれています。(赤線部分)

コードの説明をしてもらおう!

次に、Q DeveloperのExplainの機能を試してみます。

以下のような「Redshiftテーブルを作成し、S3 バケットから CSV データをテーブルにコピーする」コードを用意して、読み取ってもらいます。

#Connect to the cluster and create a Cursor
>>> import redshift_connector
>>> with redshift_connector.connect(...) as conn:
>>> with conn.cursor() as cursor:

#Create an empty table
>>> cursor.execute("create table category (catid int, cargroup varchar, catname varchar, catdesc varchar)")

#Use COPY to copy the contents of the S3 bucket into the empty table 
>>> cursor.execute("copy category from 's3://testing/category_csv.txt' iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

※以下ページを参考にしています。

コード全体を選択し、右クリックで「Explain」を選択します。

すると、コードの説明が返ってきました。

内容も「このコードは Amazon Redshift クラスターに接続し、新しいテーブルを作成し、Amazon S3 バケットに保存されている CSV ファイルからそのテーブルにデータを入力します。」と、きちんと中身を読み取って回答を生成していることが分かります。

コードを改善してもらおう!

最後に、コードをリファクタリングしてくれる機能を試してみます。

別の生成AIに「変数Aと変数Bの合計を計算するコード」を複雑に変換してもらいました。(本当に無駄が多い!)

# 変数Aと変数Bを定義
A = 5
B = 10

# 無駄な変数を大量に使って中間処理を行う
temp1 = A
temp2 = B
temp3 = temp1
temp4 = temp2

# 足し算をする前にさらに無駄な代入を行う
step1 = temp3 + 0
step2 = temp4 + 0

# 不要な計算を追加
dummy_calculation1 = step1 * 1
dummy_calculation2 = step2 * 1

# 何度も再代入を行う
intermediate_result = dummy_calculation1
intermediate_result2 = dummy_calculation2

# 無駄なリストを作成して値を追加
useless_list = []
useless_list.append(intermediate_result)
useless_list.append(intermediate_result2)

# 和の代わりにリストから値を取り出して計算
useless_var1 = useless_list[0]
useless_var2 = useless_list[1]
final_result = useless_var1 + useless_var2

# 再度無駄に別の変数に代入
output_result = final_result

# 結果を出力
print("変数Aと変数Bの和は:", output_result)

このコードを選択し、Amazon Q機能の「Refactor」をクリックします。

こちらも返答が返ってきました。

コードを簡潔に直したものが載っています。さらに、「元のコードには不要な変数の割り当て、冗長な計算、不要なリストの作成が多数あったため削除した」というような補足まで返してくれました。

このように、Amazon Q Developer では様々な「開発者にとって痒い所に手が届く機能」が追加されていることが分かりました。

現時点、チャットは英語対応のみですが、日本語利用もできるようになる日が待ち遠しいですね!

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました