ChatGPTを利用してスクリプトを生成する場合は次の2点に注意する
- 生成されたスクリプトは必ずとも正しく動作しないため、必ずチェックする
- 生成されたスクリプトは必ずとも効率的ではない。良いスクリプトを生成させるためには誘導させる必要がある
例:
次の質問をした。
結果として次のスクリプトが生成されました。
az advisor recommendation list --category Security --impact High --query '[].{description:description, potentialBenefits:potentialBenefits}' -o json
このスクリプトを実行するとaz : ERROR: unrecognized arguments: --impact High
になります。これをChatGPTに問うと次のようなスクリプトが返されました。
recommendations=$(az advisor recommendation list -o json)
# ImpactがHighかつCategoryがSecurityのレコメンデーションのDescriptionとPotential benefitsの値を抽出
filtered_recommendations=$(echo $recommendations | jq '.[] | select(.impact == "High" and .category == "Security") | {description: .description, potentialBenefits: .potentialBenefits}')
# 結果の表示
echo $filtered_recommendations
このスクリプトを実行してもエラーになります。またなぜかChatGPTはConvertFrom-Jsonではなく、jqを使う傾向があります。そのためにjqをインストールする必要があります。
最終的にはConvertFrom-Jsonを使うように指示した後にdescriptio及びpotentialBenefitsはないためshortDescriptionを使うように指示し、shortDescriptionはproblemとsolutionのハッシュのためにproblemの値だけを取得するように指示したらやっとのことで次のようなスクリプトが生成されました。
$recommendations = az advisor recommendation list --output json | ConvertFrom-Json
#$recommendations
# ImpactがHighかつCategoryがSecurityのレコメンデーションのDescriptionとPotential benefitsの値を抽出
$filtered_recommendations = $recommendations | Where-Object { $_.impact -eq 'High' -and $_.category -eq 'Security' } | Select-Object -ExpandProperty shortDescription | Select-Object -ExpandProperty problem
# 結果の表示
$filtered_recommendations
このようにChatGPTでスクリプトを生成する場合は、何時も完璧なコードが生成されるのではなく、誘導する必要がある場合もあります。そのためにまだプログラミングの知識がある方が効率よくChatGPTを利用することができます。
以上