Skip to main content

Comparaison des modèles IA à l’aide de différentes tâches

Explorez des exemples réels de tâches de développement courantes, ainsi que des exemples d’invites, de réponses et de conseils pour vous aider à choisir le modèle IA approprié pour votre flux de travail.

Vue d’ensemble

Chaque modèle d'IA pris en charge dans Copilot Chat possède des atouts différents. Pour vous aider à choisir le modèle à utiliser, cet article fournit des exemples concrets de tâches courantes pour les développeurs, ainsi que des exemples d’invites, de réponses et de conseils sur les raisons justifiant l'utilisation d'un modèle particulier.

Ces exemples montrent la diversité des modèles en ce qui concerne le style de raisonnement, la profondeur de réponse et la capacité à gérer les données visuelles. Utilisez-les pour comparer la qualité de sortie et choisir le modèle approprié pour votre flux de travail spécifique.

Pour obtenir la liste complète des modèles pris en charge et des comparaisons de fonctionnalités côte à côte, consultez Choix du modèle IA approprié pour votre tâche.

GPT-4o

GPT-4o est un excellent choix par défaut pour les tâches de développement courantes qui bénéficient de la vitesse, de la réactivité et du raisonnement à usage général. Si vous travaillez sur des tâches nécessitant une connaissance étendue, une itération rapide ou une compréhension de code de base, GPT-4o est probablement le meilleur modèle à utiliser.

Exemple de scénario

Envisagez un scénario dans lequel vous écrivez des fonctions d’assistance pour le contrôle d’accès dans un service Python. Vous souhaitez ajouter des documents pour clarifier l’objectif de la fonction.

Voici la fonction d’assistance qui accorde à l’éditeur l’accès à un document :

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
    )

Exemples d’invite

Add a docstring to the function that explains what it does.

Exemple de réponse

Note

La réponse suivante est un exemple. Copilot Chat Les réponses ne sont pas déterministes, il est donc possible que vous obteniez une réponse différente de celle présentée ici.

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
    )

Pourquoi GPT-4o est une bonne solution

  • La fonction est courte et autonome, ce qui la rend idéale pour la génération rapide de chaînes de documents.
  • GPT-4o peut reconnaître le modèle et fournir une explication claire et concise.
  • La tâche ne nécessite aucun raisonnement approfondi ni aucune logique complexe.

o3-mini

OpenAI o3-mini est un modèle de raisonnement rapide et économique conçu pour fournir des performances de codage tout en conservant une latence plus faible et l’utilisation des ressources. o3-mini outperforme o1 sur les benchmarks de codage avec des temps de réponse comparables à o1-mini. Copilot est configuré pour utiliser l’effort de raisonnement «  moyen » d’OpenAI.

Exemple de scénario

Envisagez un scénario dans lequel vous travaillez sur un système de gestion des licences logicielles. Vous avez une liste d’enregistrements utilisateur, chacun stocké en tant que dictionnaire avec des champs tels que name, activeet signup_date. Vous souhaitez rechercher uniquement les utilisateurs actifs, triés par leur date d’inscription, afin que les utilisateurs les plus récents apparaissent en dernier.

Vous trouverez ci-dessous la liste des utilisateurs que vous utilisez :

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"}
]

Exemples d’invite

Filter the list of users to only include active users, and sort them by signup_date.

Exemple de réponse

Note

La réponse suivante est un exemple. Copilot Chat Les réponses ne sont pas déterministes, il est donc possible que vous obteniez une réponse différente de celle présentée ici.

# 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)

Pourquoi o3-mini est un ajustement adéquat

  • La tâche implique un filtrage et un tri simples, ce qui ne nécessite aucun raisonnement profond.
  • Ses réponses rapides le rendent idéal pour l’itération rapide pendant le développement.

Flash Gemini 2.0

Flash Gemini 2.0 prend en charge l’entrée d’image afin que les développeurs puissent intégrer le contexte visuel dans des tâches telles que l’inspection de l’interface utilisateur, l’analyse de diagramme ou le débogage de disposition. Cela rend les données Flash Gemini 2.0 particulièrement utiles pour les scénarios où l’entrée basée sur l’image améliore la résolution des problèmes, comme demander à Copilot d’analyser une capture d’écran de l’interface utilisateur pour les problèmes d’accessibilité ou pour mieux comprendre un bogue visuel dans une disposition.

Exemple de scénario

Vous concevez un système de panier d’achat et disposez d’un diagramme de classes UML qui décrit les relations entre Cart, Product, Useret Order. Au lieu d’écrire le système à partir de zéro, vous souhaitez charger l’image du diagramme et demander à Copilot de générer les classes.

Capture d'écran d'un diagramme UML de panier d'achat, montrant les détails des classes pour le panier, le produit, l'utilisateur et la commande.

Exemples d’invite

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

Exemple de réponse

Note

La réponse suivante est un exemple. Copilot Chat Les réponses ne sont pas déterministes, il est donc possible que vous obteniez une réponse différente de celle présentée ici.

% data variables.product.prodname_copilot_short %} génère une classe pour chacune des classes du diagramme, y compris les relations entre elles. Voici l’exemple de code généré pour la classe Cart :

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)

Pourquoi Flash Gemini 2.0 est un choix judicieux

  • Il peut interpréter des ressources visuelles, telles que des diagrammes UML, des wireframes ou des organigrammes, pour générer une structure de code ou suggérer une architecture.
  • Il peut être utile d’examiner les captures d’écran des dispositions de l’interface utilisateur ou des conceptions de formulaires et de générer.

Claude 3.5 Sonnet

Claude 3.5 Sonnet est un choix judicieux pour l'aide au codage au quotidien, notamment la rédaction de documentation, la réponse à des questions spécifiques au langage ou la génération de code standard. Il offre des réponses utiles et directes sans compliquer la tâche. Si vous travaillez avec des contraintes de coûts, Claude 3.5 Sonnet est recommandé car il offre de bonnes performances sur de nombreuses tâches identiques à Claude 3.7 Sonnet, mais avec une utilisation des ressources nettement inférieure.

Exemple de scénario

Envisagez un scénario dans lequel vous implémentez des tests unitaires et des tests d’intégration pour une application. Vous devez vous assurer de l'exhaustivité des tests et de la prise en compte de tous les cas de figure auxquels vous n'avez peut-être pas pensé.

Pour obtenir une procédure pas à pas complète du scénario, consultez Écrire des tests avec GitHub Copilot.

Pourquoi Claude 3.5 Sonnet est un choix judicieux

  • Il est performant pour les tâches de codage quotidiennes telles que la génération de tests, l'échafaudage de modèles et la logique de validation.
  • La tâche s'appuie sur un raisonnement en plusieurs étapes, mais reste dans la zone de confiance d'un modèle moins avancé en raison du caractère peu approfondi de la logique.

Claude 3.7 Sonnet

Claude 3.7 Sonnet excelle tout au long du cycle de développement du logiciel, de la conception initiale à la correction des bogues, de la maintenance à l'optimisation. Il est particulièrement adapté à la refactorisation multi-fichiers ou à la planification architecturale, où la compréhension du contexte entre les composants est importante.

Exemple de scénario

Prenons l'exemple d'un scénario dans lequel vous modernisez une application COBOL existante en la réécrivant en Node.js. Le projet implique la compréhension d'un code source peu familier, la conversion de la logique d'un langage à l'autre, la construction itérative du remplacement et la vérification de l'exactitude par le biais d'une suite de tests.

Pour obtenir une procédure pas à pas complète du scénario, consultez Modernisation du code hérité avec GitHub Copilot.

Pourquoi Claude 3.7 Sonnet est une bonne solution

  • Claude 3.7 Sonnet gère efficacement les contextes complexes, ce qui le rend adapté aux flux de travail couvrant plusieurs fichiers ou langues.
  • Son architecture de raisonnement hybride lui permet de basculer entre les réponses rapides et la résolution de problèmes pas à pas plus approfondie.

Pour aller plus loin