【公式ドキュメントを読もうシリーズ】Copilot Chat のプロンプト エンジニアリング
シリーズ概要
https://qiita.com/yasu_programming/items/cec66f9e8d5d571e9ce3
URL
説明
一般的なことから開始し、特定の情報を取得する
一般的なことというのは、抽象的なざっくりとしたゴールを提示して、その具体的なこともプロンプトとして与えれば良さそうということだろう。
例を示す
文章だけではなく、実際の出力される値など書けばより良いみたい。
以下の形式のユーザーデータを変換する関数を作成してください:
入力:
{
name: "John Doe",
age: 30,
address: {
street: "123 Main St",
city: "Boston"
}
}
出力:
{
fullName: "John Doe",
yearOfBirth: 1994,
location: "Boston, 123 Main St"
}
テストケース:
1. 通常のケース(上記の例)
2. addressが空のケース
3. 必須フィールドが欠けているケース
上記のような形で、例文を入れれば出力が良くなるのだろう。
複雑なタスクを単純なタスクに分割する
複雑なタスク:ユーザーが記事を投稿、編集、削除できるブログシステムの開発
を行う時には、
プロンプトの例
- "記事モデルのマイグレーションファイルを作成してください。"
- "記事の下書き保存機能を実装してください。"
- "記事の公開/非公開を切り替えるAPIエンドポイントを作成してください。"
- "記事一覧の並び替え機能を追加してください。"
に分けることで、よりより結果が得られるのだろう。
あいまいさを回避します
**bad prompt**
データを保存してください。
**good prompt**
以下のユーザーモデルを使用して、名前、メールアドレス、パスワードをデータベースに保存するstoreUserメソッドを実装してください。データの保存前にパスワードをハッシュ化する必要があります。
というような形でより具体的な提案をしたほうがいいということでしょう。
所感
ざっくりではなく、具体的な提案をすることで、良くなるということなので、いいプロンプトを生成するプロンプトとかを考える必要があるのかなとも思った。