AIコーディング 2026.04.19

AIから正確な回答をもらう7つのプロンプト術【Claude・ChatGPT実例付き】

タグ:AI活用 / Claude / プロンプト / 生産性 / tips

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点ずつ改善を依頼★★

あわせて読みたい

参考ソース