Visão geral
Cada modelo de IA com suporte no Copilot Chat tem vantagens diferentes. Para ajudar você a decidir qual modelo usar, este artigo fornece exemplos reais de tarefas comuns do desenvolvedor, juntamente com prompts de exemplo, respostas e diretrizes sobre por que um modelo específico é uma boa opção.
Esses exemplos mostram como os modelos variam em seu estilo de raciocínio, profundidade de resposta e capacidade de lidar com a entrada visual. Use-os para comparar a qualidade da saída e escolher o modelo certo para seu fluxo de trabalho específico.
Para obter uma lista completa de modelos com suporte e comparações de recursos lado a lado, confira Como escolher o modelo de IA certo para sua tarefa.
GPT-4o
O GPT-4o é uma opção padrão forte para tarefas comuns de desenvolvimento que se beneficiam da velocidade, da capacidade de resposta e do raciocínio de uso geral. Se você estiver trabalhando em tarefas que exigem conhecimento amplo, iteração rápida ou compreensão básica de código, o GPT-4o provavelmente será o melhor modelo a ser usado.
Cenário de exemplo
Considere um cenário em que você está escrevendo funções auxiliares para controle de acesso em um serviço Python. Você deseja adicionar docstrings para esclarecer a finalidade da função.
Abaixo está a função auxiliar que concede ao editor acesso a um documento:
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
)
Solicitação de exemplo
Add a docstring to the function that explains what it does.
Exemplo de resposta
Note
A resposta a seguir é um exemplo. Respostas do Copilot Chat são não determinísticas, portanto, você pode obter uma resposta diferente da mostrada aqui.
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
)
Por que o GPT-4o é uma boa opção?
- A função é curta e autocontida, tornando-a ideal para a geração rápida de docstring.
- O GPT-4o pode reconhecer o padrão e fornecer uma explicação clara e concisa.
- A tarefa não requer raciocínio profundo ou lógica complexa.
o3-mini
O OpenAI o3-mini é um modelo de raciocínio rápido e econômico projetado para fornecer desempenho de codificação, mantendo a latência e o uso de recursos mais baixos. O o3-mini supera o o1 em parâmetros de comparação de codificação com tempos de resposta comparáveis ao do o1-mini. O Copilot está configurado para usar o esforço de raciocínio "médio" do OpenAI.
Cenário de exemplo
Considere um cenário em que você está trabalhando em um sistema de licenciamento de software. Você tem uma lista de registros de usuário, cada um armazenado como um dicionário com campos como name
, active
e signup_date
. Você deseja encontrar apenas os usuários ativos, classificados pela data de inscrição, para que os usuários mais recentes apareçam por último.
Veja abaixo a lista de usuários com os quais você está trabalhando:
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"}
]
Solicitação de exemplo
Filter the list of users to only include active users, and sort them by signup_date.
Exemplo de resposta
Note
A resposta a seguir é um exemplo. Respostas do Copilot Chat são não determinísticas, portanto, você pode obter uma resposta diferente da mostrada aqui.
# 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)
Por que o o3-mini é uma boa opção?
- A tarefa envolve filtragem e classificação simples, o que não requer um raciocínio profundo.
- Suas respostas rápidas o tornam ideal para iteração rápida durante o desenvolvimento.
Gemini 2.0 Flash
O Gemini 2.0 Flash dá suporte à entrada de imagem para que os desenvolvedores possam colocar o contexto visual em tarefas como inspeção de interface do usuário, análise de diagrama ou depuração de layout. Isso torna o Gemini 2.0 Flash particularmente útil para cenários em que a entrada baseada em imagem aprimora a solução de problemas, como solicitar que o Copilot analise uma captura de tela da interface do usuário quanto a problemas de acessibilidade ou ajude a entender um bug visual em um layout.
Cenário de exemplo
Você está criando um sistema de carrinhos de compras e tem um diagrama de classe UML que descreve as relações entre Cart
, Product
, User
e Order
. Em vez de escrever o sistema do zero, você deseja carregar a imagem do diagrama e solicitar que o Copilot gere as classes.
Solicitação de exemplo
Use this UML diagram to generate the classes for a shopping cart system.
Exemplo de resposta
Note
A resposta a seguir é um exemplo. Respostas do Copilot Chat são não determinísticas, portanto, você pode obter uma resposta diferente da mostrada aqui.
O Copilot gerará uma classe para cada uma das classes no diagrama, incluindo as relações entre elas. Aqui está o código de exemplo gerado para a 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)
Por que o Gemini 2.0 Flash é uma boa opção?
- Ele pode interpretar ativos visuais, como diagramas UML, wireframes ou fluxogramas, para gerar scaffolding de código ou sugerir arquitetura.
- Pode ser útil para revisar capturas de tela de layouts de interface do usuário ou designs de formulário e gerar.
Claude 3.5 Sonnet
O Claude 3.5 Sonnet é uma boa opção para o suporte de codificação diária, incluindo escrever documentação, responder perguntas específicas a um idioma ou gerar código clichê. Ele oferece respostas úteis e diretas sem complicar demais a tarefa. Se você estiver com restrições de custo, o Claude 3.5 Sonnet é recomendado, pois oferece um desempenho sólido em muitas das mesmas tarefas que o Claude 3.7 Sonnet, mas com um uso de recurso significativamente menor.
Cenário de exemplo
Considere um cenário em que você está implementando testes de unidade e testes de integração para um aplicativo. Você deseja garantir que os testes sejam amplos e abranjam casos de borda que você tenha ou não pensado.
Para obter um passo a passo completo do cenário, confira Como escrever testes com o GitHub Copilot.
Por que o Claude 3.5 Sonnet é uma boa opção?
- Ele tem um bom desempenho em tarefas de codificação diárias, como geração de teste, scaffolding clichê e lógica de validação.
- A tarefa tende para o raciocínio de várias etapas, mas ainda permanece dentro da zona de confiança de um modelo menos avançado porque a lógica não é muito profunda.
Claude 3.7 Sonnet
O Claude 3.7 Sonnet se destaca no ciclo de vida de desenvolvimento de software, do design inicial às correções de bugs, à manutenção e às otimizações. Ele é particularmente adequado para refatoração de vários arquivos ou planejamento arquitetônico, em que a compreensão do contexto entre componentes é importante.
Cenário de exemplo
Considere um cenário em que você está modernizando um aplicativo COBOL herdado reescrevendo-o em Node.js. O projeto envolve a compreensão do código-fonte desconhecido, a conversão de lógica entre linguagens, a criação iterativa da substituição e a verificação da correção por meio de um conjunto de testes.
Para obter um passo a passo completo do cenário, confira Modernizar o código herdado com o GitHub Copilot.
Por que o Claude 3.7 Sonnet é uma boa opção?
- O Claude 3.7 Sonnet manipula bem o contexto complexo, tornando-o adequado para fluxos de trabalho que abrangem vários arquivos ou linguagens.
- Sua arquitetura de raciocínio híbrido permite alternar entre respostas rápidas e solução de problemas passo a passo mais profunda.