生成AI入門 2026.04.19
ChatGPT vs Claude vs Gemini【2026年版】機能・料金・使い分け完全比較
3大AIの基本比較(2026年8月版)
| 項目 | ChatGPT (GPT-5) | Claude Sonnet 4.5 | Gemini 2.0 Flash |
|---|---|---|---|
| 開発元 | OpenAI | Anthropic | |
| 月額(個人) | $20 Plus / $200 Pro | $20 Pro / $100 Max | $20 Advanced |
| API入力料金 | ~$10/1M | $3/1M | $0.075/1M |
| コンテキスト | 128K | 200K | 1M |
| 得意分野 | 創造的タスク・画像生成 | コード・長文分析 | 検索連携・Google連携 |
用途別おすすめAI
コード生成・リファクタリング → Claude Sonnet 4.5
理由: 200Kコンテキストで大きなコードベース処理、CLAUDE.md設定可能
最新情報の調査・リサーチ → Gemini 2.0 Flash
理由: Google検索連携で最新情報を引用
DALL-E画像生成が必要 → ChatGPT Plus
理由: DALL-E 3が統合済み
日常的な文章作成 → 3つとも無料版で十分
理由: 価格差ほどの品質差はない
API経由の自動化 → コスト優先ならGemini、品質優先ならClaude
マルチモデル比較コード
# compare_three_ais.py
# 同じ質問をClaude・GPT・Geminiに送って回答を比較する
import anthropic
import openai
import google.generativeai as genai # pip install google-generativeai
import os
claude_client = anthropic.Anthropic()
openai_client = openai.OpenAI()
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
MODELS = {
"claude-sonnet": ("claude-sonnet-4-5", "claude"),
"gpt-4o": ("gpt-4o", "openai"),
"gemini-flash": ("gemini-2.0-flash-exp", "gemini"),
}
def ask_claude(prompt: str) -> tuple[str, float]:
response = claude_client.messages.create(
model="claude-sonnet-4-5",
max_tokens=512,
messages=[{"role": "user", "content": prompt}]
)
cost = (response.usage.input_tokens * 3.00 + response.usage.output_tokens * 15.00) / 1_000_000
return response.content[0].text, cost
def ask_gpt(prompt: str) -> tuple[str, float]:
response = openai_client.chat.completions.create(
model="gpt-4o", max_tokens=512,
messages=[{"role": "user", "content": prompt}]
)
tokens = response.usage.total_tokens
cost = tokens * 2.50 / 1_000_000 # GPT-4o $2.50/1M
return response.choices[0].message.content, cost
def ask_gemini(prompt: str) -> tuple[str, float]:
model = genai.GenerativeModel("gemini-2.0-flash-exp")
response = model.generate_content(prompt)
cost = 0.00001 # Gemini Flash は超安価
return response.text, cost
def compare_ais(question: str) -> dict:
"""3つのAIに同じ質問して回答とコストを比較する"""
results = {}
for name, func in [("Claude", ask_claude), ("GPT-4o", ask_gpt), ("Gemini", ask_gemini)]:
answer, cost = func(question)
results[name] = {
"answer_preview": answer[:200] + "..." if len(answer) > 200 else answer,
"cost_usd": round(cost, 5)
}
print(f"[{name}] コスト: ${cost:.5f}")
return results
# 使用例
results = compare_ais("Pythonのデコレータパターンを3行で説明してください")
for ai, data in results.items():
print(f"\n=== {ai} (${data['cost_usd']}) ===")
print(data["answer_preview"])