# さまざまなタスクを使った AI モデルの比較

ワークフローに適した AI モデルを選ぶのに役立つサンプル プロンプト、回答、ガイダンスと共に、一般的な開発者タスクの実際の例を確認します。

## 概要

Copilot Chatでサポートされる各 AI モデルの長所は異なります。 この記事では、どのモデルを使うかを判断できるように、一般的な開発者タスクの実際の例と、サンプル プロンプト、回答、特定のモデルが適している理由に関するガイダンスを提供します。

これらの例は、モデルの推論スタイル、回答の深さ、視覚的な入力を処理する能力がどのように異なるかを示しています。 これらを使って出力の品質を比較し、特定のワークフローに適したモデルを選びます。

サポートされているモデルの詳細な一覧と機能の比較については、「[AI モデルの比較](/ja/copilot/reference/ai-models/model-comparison)」を参照してください。

## GPT-4.1

GPT-4.1 は、速度、応答性、汎用推論から恩恵を得られる一般的な開発タスクに適した選択肢です。 広範な知識、速い繰り返し、またはコードの基本的な理解を必要とするタスクの作業を行っている場合に使うべきモデルは、おそらく GPT-4.1 です。

### サンプル シナリオ

Python サービスでaccess controlのヘルパー関数を記述するシナリオについて考えてみましょう。 あなたは、関数の目的を明確にするために docstring を追加したいと考えています。

ドキュメントに編集者アクセスを付与するヘルパー関数を以下に示します。

```python id=grant-editor-access
def grant_editor_access(user_id, doc_id):
    access = AccessManager()
    access.assign_role(
        resource_type="document",
        resource_id=doc_id,
        role="editor",
        user_id=user_id
    )
```

### プロンプトの例

```copilot prompt copy ref=grant-editor-access
Add a docstring to the function that explains what it does.
```

### 応答の例

> \[!NOTE] 次の応答は例です。 Copilot Chat の応答は非決定的であるため、ここで示したものとは異なる応答が返される可能性があります。

```python
def grant_editor_access(user_id, doc_id):
    """
    Grants editor access to a specific document for a given user.

    This function uses the AccessManager to assign the "editor" role
    to the specified user for the provided document ID.

    Args:
        user_id (str): The ID of the user to grant access to.
        doc_id (str): The ID of the document to which access is being granted.
    """
    access = AccessManager()
    access.assign_role(
        resource_type="document",
        resource_id=doc_id,
        role="editor",
        user_id=user_id
    )
```

### GPT-4.1が適している理由

* この関数は短く、自己完結型であるため、docstring を迅速に生成するのに最適です。
* GPT-4.1 パターンを認識し、明確で簡潔な説明を提供できます。
* このタスクには、深い推論や複雑なロジックは必要ありません。

## GPT-5 mini

OpenAI GPT-5 mini は、単純なコーディング タスクや反復的なコーディング タスク用に設計された、高速でコスト効率の高いモデルです。 信頼性が高く簡潔な回答を非常に短い待ち時間で提供し、リアルタイムの提案や軽量の開発ワークフローに最適です。
GPT-5 mini は速度と応答性のために最適化されているため、小さなコード変更をすばやく繰り返したり、簡単なプロンプトに関する即座のフィードバックを得ることができます。

### サンプル シナリオ

ユーティリティ スクリプトを作成していて、アクティブなユーザーのみを含むようにユーザー レコードのリストをフィルター処理し、サインアップ日で並べ替える必要があるとします。 タスクは単純であり、深い推論や複数ステップのロジックは必要ありません。

ユーザーのサンプル リストを次に示します。

```python id=user-list
users = [
    {"name": "Alice", "active": True, "signup_date": "2023-12-10"},
    {"name": "Bob", "active": False, "signup_date": "2023-11-05"},
    {"name": "Charlie", "active": True, "signup_date": "2024-01-15"}
]
```

### プロンプトの例

```copilot prompt copy ref=user-list
Filter the list of users to only include active users, and sort them by signup_date.
```

### 応答の例

> \[!NOTE] 次の応答は例です。 Copilot Chat の応答は非決定的であるため、ここで示したものとは異なる応答が返される可能性があります。

```python
# Filter to only include active users
active_users = [user for user in users if user["active"]]

# Sort active users by signup_date
active_users_sorted = sorted(active_users, key=lambda user: user["signup_date"])

print(active_users_sorted)
```

### GPT-5 miniが適している理由

* タスクは簡単であり、高速で低遅延の応答に利点があります。
* GPT-5 mini はコストと速度に最適化されているため、クイック編集、プロトタイプ作成、ユーティリティ コードに最適です。
* 単純なコーディングの質問について、不必要な深さまで待つことなく、信頼性の高い回答を得たいときは、このモデルを使います。

## GPT-5.2

GPT-5.2 は画像入力をサポートしているため、開発者は UI 検査、図分析、レイアウト デバッグなどのタスクに視覚的なコンテキストを取り込むことができます。 これにより、画像ベースの入力が問題解決を強化するシナリオ、例えばUIスクリーンショットを分析してアクセシビリティの問題を検出したり、レイアウトにおける視覚的なバグを理解したりする際に、GPT-5.2 を利用することが特に効果的です。Copilot はこれらのプロセスで非常に有用です。

### サンプル シナリオ

ショッピング カート システムを設計しており、`Cart`、`Product`、`User`、`Order` 間の関係の概要を示す UML クラス ダイアグラムがあります。 システムを最初から書き出す代わりに、図の画像をアップロードし、クラスを生成するように Copilot に依頼します。

![カート、製品、ユーザー、注文のクラスの詳細を示すショッピング カートの UML ダイアグラムのスクリーンショット。](/assets/images/help/copilot/shopping-cart-uml.png)

### プロンプトの例

```copilot copy
Use this UML diagram to generate the classes for a shopping cart system.
```

### 応答の例

> \[!NOTE] 次の応答は例です。 Copilot Chat の応答は非決定的であるため、ここで示したものとは異なる応答が返される可能性があります。

Copilot では、ダイアグラム内の各クラスのクラス (それらの間のリレーションシップを含む) が生成されます。
`Cart` クラスに対して生成されたコード例を次に示します。

```python
from cart_item import CartItem
from order import Order

class Cart:
    def __init__(self, cart_id, user_id):
        self.cart_id = cart_id
        self.user_id = user_id
        self.items = []

    def add_item(self, item):
        self.items.append(item)

    def remove_item(self, item):
        self.items = [i for i in self.items if i != item]

    def calculate_total(self):
        return sum(item.quantity * item.product.price for item in self.items)

    def place_order(self):
        # Implementation for placing an order
        return Order("", None, 0)
```

### GPT-5.2が適している理由

* UML ダイアグラム、ワイヤーフレーム、フローチャートなどの視覚的な資産を解釈して、コードのスキャフォールディングを生成したり、アーキテクチャを提案したりできます。
* UI レイアウトやフォーム デザインのスクリーンショットをレビューして生成する場合に役立ちます。

## Claude Haiku 4.5

Claude Haiku 4.5 は、ドキュメントの記述、言語固有の質問への回答、定型コードの生成など、日常的なコーディングサポートに適しています。 タスクを過度に複雑にすることなく、役立つ直接的な回答を提供します。 コストの制約内で作業している場合は、Claude Haiku 4.5 をお勧めします。Claude Sonnet 4.5 と同じタスクの多くで確実なパフォーマンスを実現しますが、リソース使用量は少なくなります。

### サンプル シナリオ

アプリケーションの単体テストと統合テストの両方を実装するシナリオを考えてみましょう。 あなたは、包括的であり、考え得る、または考えもしなかったあらゆるエッジ ケースをカバーしたテストにしたいと考えています。

シナリオの完全なチュートリアルについては、「[GitHub Copilot を使用したテストの記述](/ja/copilot/tutorials/write-tests)を参照してください。

### Claude Haiku 4.5が適している理由

* テスト生成、定型スキャフォールディング、検証ロジックなどの日常的なコーディング タスクで優れたパフォーマンスを発揮します。
* このタスクは複数ステップの推論に重点を置きますが、ロジックはそれほど深くないため、高度ではないモデルの信頼ゾーン内に収まります。

## Claude Sonnet 4.5

Claude Sonnet 4.5 は、初期設計からバグ修正、メンテナンス、最適化まで、ソフトウェア開発ライフサイクル全体にわたって優れています。 コンポーネント間のコンテキストを理解することが重要な、複数ファイルのリファクタリングまたはアーキテクチャ計画に特に適しています。

### サンプル シナリオ

レガシ COBOL アプリケーションを Node.js 形式に書き直して最新化するシナリオを考えてみましょう。 projectには、未知のソース コードの理解、言語間でのロジックの変換、置換の反復的な構築、テスト スイートによる正確性の検証が含まれます。

シナリオの完全なチュートリアルについては、「[GitHub Copilotを使用してレガシ コードを最新化する](/ja/copilot/tutorials/modernize-legacy-code)を参照してください。

### Claude Sonnet 4.5が適している理由

* Claude Sonnet 4.5 は複雑なコンテキストを適切に処理するため、複数のファイルまたは言語にまたがるワークフローに適しています。
* そのハイブリッド推論アーキテクチャにより、迅速な回答と、より深く段階的な問題解決を切り替えることができます。

## 参考資料

* [AI モデルの比較](/ja/copilot/reference/ai-models/model-comparison)
* [GitHub Copilot クックブック](/ja/copilot/tutorials/copilot-cookbook)