Amazon CodeWhispererの一癖あると感じたこと

AWS AWS CodeWhisperer Logo

はじめに

自社のjamイベントでCodeWhispererを触った際に感じたことを書く。

サジェストの挙動

単一のコメントアウトのブロックで指定した場合

# Create a new Amazon ECS cluster named demo-cluster

複数行のコメントアウトのブロックで指定した場合

'''
Create a new Amazon ECS cluster named demo-cluster
'''

何が違いそうかというと、複数行のブロックで指定した場合はサジェストが一括になる傾向がありそうである。

単一行のコメントアウトの場合は、1ステップごとにサジェストされる傾向がある。

最後に謎のコメントアウトがサジェストされるパターンがある

上記のgif画像の通りだが、下記のようなサジェストが出力された。

# snippet- に該当する箇所のこと。

現状はこれが出力される原因は分からない。

この挙動から生成系AIでよい感じに(動的に)コード生成をしているのではなく、コメントの文言とサジェスト内容が静的に繋がっている仕組みになっているのでないかと思った。

表現として正しいのかどうかはわからないがwhispererでは一定のパターンにおいては、ゆらぎ(ハルシネーション?)がないこともあるのかなと感じた。(何らかの決まったルールがある?)

この件でちょっと調べたことも記載する。

githubでコード検索をすると、元々はawsのサンプルコードでありそうである。

https://github.com/search?type=code&q=snippet-service:[ecs]

'''
Create a new Amazon ECS cluster named demo-cluster
'''
import boto3

client = boto3.client('ecs')

response = client.create_cluster(
    clusterName='demo-cluster'
)

print(response)
# snippet-end:[ecs.python.create_cluster.complete]
# snippet-comment:[These are tags for the AWS doc team's sample catalog. Do not remove.]
# snippet-sourcedescription:[create_cluster.py demonstrates how to create an Amazon ECS cluster.]
# snippet-keyword:[Python]
# snippet-keyword:[AWS SDK for Python (Boto3)]
# snippet-keyword:[Code Sample]
# snippet-keyword:[Amazon Elastic Container Service]
# snippet-service:[ecs]
# snippet-sourcetype:[full-example]
# snippet-sourcedate:[2018-12-26]
# snippet-sourceauthor:[jasonhedges

おわりに

詳細な仕様を理解することで、もっと自由に使うこなすことができそうだと思った。

Whispererのドキュメントなどをじっくり読んでみたい。

無料相談実施中
AWSを使用したサーバーレスアプリケーションの構築
サーバーレス開発内製化、AWSへの移行等
様々な課題について無料でご相談お受けいたします。
AWS CodeWhisperer Logo
最新情報をチェックしよう!