生成AI入門 2026.04.30

プロンプトとは?ChatGPTへの指示文を5つのコツで完全マスター【初心者向け】

タグ:プロンプト / 生成AI / ChatGPT / AI初心者 / プロンプトエンジニアリング

プロンプトとは:AIへの「注文書」

プロンプトとは、生成AIへの指示文・命令文のことです。ChatGPTやClaudeに文字を打ち込むとき、あなたが入力しているもの、それがすべてプロンプトです。

プロンプトの書き方で回答品質が激変します。

❌ 悪いプロンプト:
「まとめて」

✅ 良いプロンプト:
「以下の会議議事録を200文字以内・箇条書き3点でまとめてください。
 対象: 月曜の朝礼で共有する内容
 重要: アクションアイテムを必ず含める」

5つのコツ(コピペ可テンプレート)

コツ1: 役割を与える

あなたは[○○の専門家]です。

例:
- あなたはプロのコピーライターです
- あなたはPythonのシニアエンジニアです
- あなたはビジネス戦略コンサルタントです

役割を指定するだけで語調・専門用語・視点が変わります。

コツ2: 出力フォーマットを指定する

以下のフォーマットで出力してください:
- 文字数: 200文字以内
- 形式: 箇条書き3点
- 禁止: 専門用語・英語

または:
- JSON形式で出力してください
- 表形式(markdown)で出力してください
- 番号付きリストで出力してください

コツ3: 制約・条件を追加する

条件:
- 初心者にも分かる言葉で説明してください
- 実例を必ず1つ含めてください
- 数値・データを含めてください
- 「ですます」調で書いてください

コツ4: few-shotで例を示す

以下の例のように出力してください:

入力例: 「機械学習とは」
出力例: 「機械学習とは、コンピューターがデータから自動で学ぶ技術です。
   例: スパムメールの自動判別」

入力: 「ディープラーニングとは」

コツ5: ステップを分ける(chain-of-thought)

以下の手順で考えてください:
1. まず問題を整理してください
2. 次に3つの解決策を検討してください
3. 最後に最善の1案を推奨してください

APIでプロンプトテンプレートを管理する

# prompt_manager.py
# 効果的なプロンプトをテンプレート管理して再利用する

import anthropic
from string import Template

client = anthropic.Anthropic()

# プロンプトテンプレートライブラリ
TEMPLATES = {
    "summarize": Template("""あなたはプロの編集者です。
以下を${format}でまとめてください。

制約:
- 文字数: ${max_chars}文字以内
- 形式: ${bullet_style}
- 対象読者: ${audience}

内容:
${content}"""),

    "analyze": Template("""あなたはデータアナリストです。
以下のデータを分析してください。

分析観点:
- 数値から読み取れるトレンド
- 異常値・特異点
- 改善のための具体的な提案3つ

データ:
${data}"""),

    "code_review": Template("""あなたはシニアエンジニアです。
以下のコードをレビューしてください。

評価観点(1-10点):
1. 可読性: コードの分かりやすさ
2. 効率性: 処理速度・メモリ使用
3. セキュリティ: 脆弱性の有無

```${language}
${code}
```"""),
}

def use_template(template_name: str, model: str = "claude-haiku-4-5-20251001", **kwargs) -> dict:
    """テンプレートに値を埋め込んでAPIを呼び出す"""
    template = TEMPLATES.get(template_name)
    if not template:
        raise ValueError(f"テンプレート '{template_name}' が見つかりません")
    
    prompt = template.substitute(**kwargs)
    
    response = client.messages.create(
        model=model,
        max_tokens=1024,
        messages=[{"role": "user", "content": prompt}]
    )
    
    cost = (response.usage.input_tokens * 0.80 + response.usage.output_tokens * 4.00) / 1_000_000
    
    return {
        "answer": response.content[0].text,
        "cost_usd": round(cost, 5)
    }

# 使用例
result = use_template(
    "summarize",
    content="AIの発展により...",
    format="箇条書き",
    max_chars="200",
    bullet_style="3点",
    audience="経営者"
)
print(result["answer"])
print(f"コスト: ${result['cost_usd']:.5f}")

あわせて読みたい

参考ソース