ChatGPTなどのLLM(大規模言語モデル)は、コード生成・設計レビュー・ドキュメント作成など、開発現場での活用シーンが急速に広がっています。
しかし「思ったようなコードが生成されない」「冗長で再利用性が低い出力が返ってきた」と悩んだ経験はありませんか?
その多くの原因は プロンプト設計 にあります。
本記事では、開発者が効率的にLLMを活用するためのプロンプト工夫と、すぐに使える実践例を紹介します。
目次
なぜプロンプト設計が重要か?
LLMは、入力されたテキスト(プロンプト)を基に確率的に出力を生成します。
そのため、指示が曖昧だと「正しいけれど汎用的すぎる答え」や「期待と異なるコード」が返ってきます。
逆に、 要件・出力形式・利用コンテキストを明示する ことで、精度の高いコードやドキュメントを生成させることができます。
開発者が押さえるべきプロンプト設計の3原則
1. 出力形式を明示する
- コードブロック指定(“`で囲む)
- 言語の明示(「Goで」「Pythonで」など)
- 実行可能な完全なコードを要求
例:
GoでMySQLに接続してユーザー情報をINSERTする関数を書いてください。
実行可能なmain関数付きで、コード全体を```goで囲って出力してください。
2. コンテキストを提供する
開発環境・利用ライブラリ・制約条件を指定することで、より実用的なコードが返ってきます。
例:
Ginフレームワークを利用してREST APIを実装してください。
エンドポイントは /users POST で、リクエストJSONをバリデーションしてDBに保存する処理を含めてください。
DB接続はGORMを使用してください。
3. 制約や最適化条件を加える
- 「依存ライブラリを最小限に」
- 「O(n log n)のアルゴリズムで」
- 「コメント付きで可読性を重視」
といった条件を加えると、実務で使える水準に近づきます。
開発現場ですぐに使えるプロンプト例
コード生成
PythonでCSVを読み込み、データをMySQLにバルクインサートするコードを書いてください。
テーブル名はusers、カラムはid,name,emailです。
SQLインジェクション対策を考慮し、実行可能なコード全体を出力してください。
コードレビュー
以下のGoコードをレビューしてください。効率性・可読性・エラーハンドリングの観点で改善点を指摘してください。
テストコード生成
次の関数に対するユニットテストをGoのtestingパッケージを使って作成してください。
網羅率を高めるため、正常系と異常系の両方を含めてください。
ドキュメント生成
以下の関数について、開発者向けの技術ドキュメントを書いてください。
関数の引数、戻り値、使用例を含め、Markdown形式で出力してください。
プロンプト改善の反復プロセス
- 初回出力を受け取る
- 不足点や誤りを明確にフィードバックする
- 「エラーハンドリングを追加して」
- 「PostgreSQL対応に修正して」
- 改良を繰り返す
LLMを「共同開発者」として扱うイメージで、プロンプトを改善し続けることが重要です。
まとめ
開発者がLLMを最大限に活用するには、以下のポイントを押さえましょう。
- 出力形式(コード、ドキュメント、テスト)を明示する
- コンテキスト(フレームワーク、制約条件)を提供する
- 改善指示を反復して精度を高める
LLMは「プロンプト設計力 × 改善プロセス」で効果が大きく変わります。
明日からの開発に、ぜひ取り入れてみてください。