AIコーディング 2026.04.19
AIから正確な回答をもらう7つのプロンプト術【Claude・ChatGPT実例付き】
AIは「質問の品質」に敏感
ChatGPTやClaudeへの質問を少し変えるだけで、回答の質が大きく変わります。7つのコツを実例付きで紹介します。
コツ1:背景・目的・制約を先に伝える
# ❌ 曖昧な質問
「Pythonで認証機能を作って」
# ✅ 具体的な質問
「FastAPI + SQLAlchemyを使ったWebアプリに認証機能を追加したいです。
現在の構成:
- Python 3.12, FastAPI 0.110
- PostgreSQL(SQLAlchemy ORMを使用)
- 既存のUserモデルあり(username, email, password_hash フィールド)
要件:
- JWT認証(有効期限7日)
- bcryptでパスワードハッシュ化
- ログインエンドポイント(POST /auth/login)を追加
外部ライブラリ: python-jose, passlib は使ってOKです。」
コツ2:期待する出力形式を指定する
# ❌ 形式未指定
「Pythonのエラーハンドリングについて教えて」
# ✅ 形式指定あり
「以下の形式で Pythonのエラーハンドリングベストプラクティスを教えて:
1. よくある間違いと修正後のコード(各2〜3例)
2. 実際のFastAPIプロジェクトへの適用例
3. ログ設定との連携方法
コードブロックにはコメントを入れて。日本語で書いて。」
コツ3:制約条件を明示する
AIが勝手に好ましくない解決策を選ぶのを防ぎます:
# ❌ 制約なし(AIが自由に選択)
「データベースのパフォーマンスを改善して」
# ✅ 制約明示
「以下の制約の中でSQLiteのクエリパフォーマンスを改善してください:
制約:
- Pythonのコードを変更してOK
- SQLiteのスキーマは変更不可(本番データあり)
- ORMはSQLAlchemyを使用(直接SQL書いてOK)
- 外部ツール(キャッシュサーバー等)は使わない
現在のクエリ(3秒かかっている):
[コードを貼る]」
コツ4:エラーメッセージは全文コピーする
# ❌ エラーを説明しようとする
「データを保存しようとするとエラーが出ます」
# ✅ エラー全文 + コードを貼る
「以下のエラーが発生しています:
Traceback (most recent call last): File “main.py”, line 42, in create_user db.add(user) File “/venv/lib/python3.12/site-packages/sqlalchemy/orm/session.py”, line 2568, in add util.raise_( sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: users.email [SQL: INSERT INTO users (username, email) VALUES (?, ?)]
create_user関数のコード:
[コードを貼る]
SQLiteでemailの重複チェックを適切にエラーハンドリングするには?」
コツ5:「一呼吸」長めに書く
# ❌ 短すぎる
「パフォーマンス改善して」
# ✅ 問題意識を深掘り
「10万件のユーザーデータを持つPostgreSQLデータベースで、
ユーザー検索クエリが500ms以上かかっています(現在の本番環境の問題)。
インデックスは email に貼り付けています。
explain analyzeの結果:
[出力を貼る]
500ms以下に改善するためのアプローチを、
インデックス追加・クエリ最適化・アーキテクチャ変更の3つの観点から提案してください。」
コツ6:サンプルデータ・コードの一部を提示する
説明より実データの方が精度が上がります:
# ❌ データ構造を説明しようとする
# 「JSONでユーザー情報を扱いたいのですが...」
# ✅ サンプルJSONを貼る
"""
以下の形式のJSONデータを処理するPython関数を書いてください:
入力例:
{
"users": [
{"id": 1, "name": "田中太郎", "age": 30, "active": true},
{"id": 2, "name": "鈴木花子", "age": 25, "active": false}
],
"total": 2,
"page": 1
}
処理内容:
- activeがtrueのユーザーのみ抽出
- ageで降順にソート
- 結果をnameのリストとして返す
型ヒント付きで書いてください。
"""
コツ7:段階的な修正で精度を上げる
一度で完璧を目指さず、反復で改善します:
# 初回プロンプト
「FastAPIでユーザー登録エンドポイントを作って」
# 回答確認後、不足点を具体的に指摘
「ありがとう。以下を追加してください:
1. パスワードのバリデーション(8文字以上、大文字・小文字・数字含む)
2. 同じメールアドレスが既に存在する場合の409エラー」
# さらに修正
「パスワードバリデーションのエラーメッセージを日本語にして。
具体的にどの条件を満たしていないかを返すように」
Claude Codeでの実践例
Claude Code(ターミナルで動くAIエージェント)では、ファイルパスを具体的に指定するとより効果的です:
# ❌ 曖昧な指示
claude -p "認証機能のバグを直して"
# ✅ 具体的な指示
claude -p "src/auth/middleware.py の42行目の checkAuth 関数で、
req.user が None の場合に KeyError が発生している。
Noneチェックを追加して、Noneの場合は 401 エラーを返すように修正して。
既存のエラーハンドリングのパターンは src/utils/errors.py を参照して" \
--allowedTools "Read(src/auth/middleware.py),Read(src/utils/errors.py),Edit(src/auth/middleware.py)"
7つのコツまとめ
| コツ | 一言まとめ | 効果 |
|---|---|---|
| 1. 背景・目的・制約 | 「なぜ」「何を」「何はダメか」を最初に | ★★★ |
| 2. 出力形式指定 | 「コード」「箇条書き」「比較表」等を指定 | ★★★ |
| 3. 制約明示 | 「使ってはいけないもの」を明示 | ★★ |
| 4. エラー全文コピー | 説明せずそのまま貼る | ★★★ |
| 5. 問題意識の深掘り | 「なぜこれが問題か」を一文追加 | ★★ |
| 6. サンプルデータ提示 | 説明より実例で示す | ★★★ |
| 7. 段階的な修正 | 一回で諦めず1点ずつ改善を依頼 | ★★ |
あわせて読みたい
- Claude Code初心者ガイド:インストールから最初のコード生成まで3ステップ
- Claude APIコストを95%削減する仕様書ファースト開発【実装テンプレート付き】
- ChatGPTプロンプトエンジニアリング完全ガイド:職種別実践テクニック35選