はじめに
自社の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のドキュメントなどをじっくり読んでみたい。