生成AI入門 2026.04.30
プロンプトとは?ChatGPTへの指示文を5つのコツで完全マスター【初心者向け】
プロンプトとは: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}")