Sobre o GitHub Copilot Chat in GitHub
O GitHub Copilot Chat in GitHub é uma interface de chat que permite interagir com o GitHub Copilot, para fazer perguntas e receber respostas sobre codificação em GitHub.
A interface de chat dá acesso a informações de codificação e suporte sem exigir que você navegue na documentação ou pesquise fóruns online.
Note
Observação: o Copilot Chat também está disponível no Visual Studio Code, no Visual Studio e no conjunto de IDEs da JetBrains. No entanto, os recursos disponíveis nesses IDEs diferem dos recursos disponíveis no GitHub.
O GitHub Copilot Chat pode responder a uma ampla variedade de perguntas relacionadas à codificação sobre tópicos, incluindo sintaxe, conceitos de programação, casos de teste, depuração e muito mais. O GitHub Copilot Chat não foi projetado para responder a perguntas que não sejam de codificação nem fornecer informações gerais sobre tópicos que não sejam de codificação.
O idioma principal com suporte para o Copilot Chat in GitHub é o inglês.
O GitHub Copilot Chat funciona usando uma combinação de processamento de linguagem natural e machine learning para entender a pergunta e fornecer uma resposta. Esse processo pode ser dividido em várias etapas.
Processamento de entrada
O prompt de entrada do usuário é pré-processado pelo sistema do Copilot Chat, combinado com informações contextuais (por exemplo, a data e hora atuais e o nome do repositório que o usuário está visualizando no momento) e enviado para um modelo de idioma grande. A entrada do usuário pode assumir a forma de snippets de código ou linguagem sem codificação.
O modelo de linguagem grande usará o prompt, coletará contexto adicional (por exemplo, dados do repositório armazenados no GitHub ou resultados de pesquisa do Bing) e fornecerá uma resposta com base no prompt. O sistema se destina apenas a responder a perguntas relacionadas à codificação.
Análise de modelo de linguagem
Em seguida, o prompt pré-processado passa pelo modelo de linguagem do Copilot Chat, que é uma rede neural treinada em um grande corpo de dados de texto. O modelo de linguagem analisa o prompt de entrada.
Geração de resposta
O modelo de linguagem gera uma resposta com base na análise do prompt de entrada e no contexto fornecido. O modelo de linguagem pode coletar contexto adicional (por exemplo, dados do repositório armazenados no GitHub ou resultados de pesquisa do Bing) e fornecer uma resposta com base no prompt. Essa resposta pode assumir a forma de código gerado, sugestões de código ou explicações do código existente.
Formatação de saída
A resposta gerada pelo Copilot Chat é formatada e apresentada ao usuário. O Copilot Chat pode usar realce de sintaxe, recuo e outros recursos de formatação para que a resposta gerada fique mais clara. Dependendo do tipo de pergunta do usuário, também podem ser fornecidos links para o contexto que o modelo usou ao gerar uma resposta, como arquivos de código-fonte, problemas, resultados de pesquisa do Bing ou documentação.
O Copilot Chat se destina a fornecer a resposta mais relevante à pergunta. Mas, nem sempre ele consegue fornecer a resposta que você está procurando. Os usuários do Copilot Chat são responsáveis por revisar e validar as respostas geradas pelo sistema para garantir que elas sejam precisas e apropriadas. Além disso, como parte de nosso processo de desenvolvimento de produtos, realizamos equipes vermelhas para entender e melhorar a segurança do Copilot Chat. Prompts de entrada e conclusões de saída são executados por meio de filtros de conteúdo. O sistema de filtragem de conteúdo detecta e impede a saída em categorias específicas de conteúdo, incluindo conteúdo prejudicial, ofensivo ou fora do tema. Para obter mais informações de como aprimorar o desempenho do Copilot Chat, confira Como aprimorar o desempenho do Copilot Chat.
Casos de uso do Copilot Chat
O Copilot Chat pode fornecer assistência de codificação em uma variedade de cenários.
Respostas a perguntas de codificação
Você pode pedir ajuda ou esclarecimento ao Copilot Chat sobre problemas de codificação específicos e receber respostas no formato de linguagem natural ou no formato de snippet de código.
A resposta gerada pelo Copilot Chat pode usar o conjunto de dados de treinamento do modelo, os resultados de pesquisa do Bing, o código em seus repositórios e a documentação de Markdown em suas bases de dados de conhecimento para responder às suas perguntas.
Isso pode ser uma ferramenta útil para programadores, pois pode fornecer diretrizes e suporte para tarefas e desafios comuns de codificação.
Explicar o código e sugerir melhorias
O Copilot Chat pode ajudar a explicar o código selecionado gerando descrições de linguagem natural da funcionalidade e da finalidade do código. Isso ajuda você a entender o comportamento do código ou stakeholders não técnicos que precisem entender como o código funciona. Por exemplo, se você selecionar uma função ou um bloco de código no editor de código, o Copilot Chat poderá gerar uma descrição de linguagem natural sobre o que o código faz e como ele se encaixa no sistema geral. Isso pode incluir informações como os parâmetros de entrada e saída da função, as dependências e a finalidade no aplicativo maior.
O Copilot Chat também pode sugerir possíveis melhorias no código selecionado, como melhor tratamento de erros e casos de borda ou alterações no fluxo lógico para tornar o código mais legível.
Ao gerar explicações e sugerir a documentação relacionada, o Copilot Chat ajuda a entender o código selecionado, aprimorando a colaboração e aumentando a eficiência do desenvolvimento de software. No entanto, é importante observar que as explicações e a documentação geradas nem sempre são precisas ou completas, portanto, você examine e, se necessário, corrija a saída do Copilot Chat.
Propostas de correções de código
O Copilot Chat pode propor uma correção de bugs no código sugerindo snippets de código e soluções com base no contexto do erro ou problema. Isso ajuda quando você tem dificuldade de identificar a causa raiz de um bug ou precisa de orientação sobre a melhor maneira de corrigi-lo. Por exemplo, se o código produzir uma mensagem de erro ou um aviso, o Copilot Chat poderá sugerir possíveis correções com base na mensagem de erro, na sintaxe do código e no código ao redor.
O Copilot Chat pode sugerir alterações em variáveis, estruturas de controle ou chamadas de função que possam resolver o problema e gerar snippets de código que possam ser incorporados à base de código. No entanto, é importante observar que as correções sugeridas nem sempre são ideais ou estão completas, portanto, você precisa examinar e testar as sugestões.
Planejar tarefas de codificação
O Copilot Chat pode ler um problema do GitHub e resumi-lo, responder a perguntas sobre ele ou propor as próximas etapas. Isso pode ser útil se você tem um problema longo e complexo com muitos comentários e quer entendê-lo rapidamente ou descobrir o que fazer a seguir.
No entanto, é importante observar que as respostas e os resumos do Copilot Chat podem nem sempre ser precisos ou completos; portanto, você precisará examinar a precisão da saída do Copilot Chat.
Informar-se sobre versões, discussões e commits
O Copilot Chat pode ajudar você a descobrir o que mudou em uma versão específica, pode resumir as informações em uma discussão e pode explicar as alterações em um commit específico. Isso pode ser útil se, por exemplo, você for novo em um projeto, quiser obter rapidamente o gist de uma discussão ou precisar trabalhar no código que outra pessoa escreveu. No entanto, é importante observar que os resumos de versões, discussões e confirmações do Copilot Chat podem nem sempre ser precisos ou completos.
Aprimoramento do desempenho do Copilot Chat
O Copilot Chat pode dar suporte a uma ampla variedade de aplicações práticas, como perguntas e repostas, geração de código, análise de código e correções de código, cada um com diferentes métricas de desempenho e estratégias de mitigação. Para aprimorar o desempenho e resolver algumas das limitações do Copilot Chat, há várias medidas que você pode adotar. Para obter mais informações sobre as limitações do Copilot Chat, confira "Limitações do GitHub Copilot Chat".
Mantenha os prompts no tópico
O Copilot Chat se destina a abordar consultas relacionadas exclusivamente à codificação. Portanto, manter o prompt limitado a perguntas ou tarefas de codificação pode aprimorar a qualidade de saída do modelo.
Use o Copilot Chat como ferramenta, não como substituição
Embora o Copilot Chat seja ferramenta poderosa para gerar código, é importante usá-lo como ferramenta em vez de substituir a programação humana. Você sempre deve revisar e testar o código gerado pelo Copilot Chat para garantir que ele atenda aos requisitos e não tenha erros ou questões de segurança.
Use práticas seguras de codificação e revisão de código
Embora o Copilot Chat possa gerar um código sintaticamente correto, nem sempre isso é seguro. Você sempre deve seguir as práticas recomendadas para codificação segura, como evitar senhas embutidas em código ou vulnerabilidades de injeção de SQL, além de seguir as práticas recomendadas de revisão de código, para resolver as limitações do Copilot Chat.
Fornecer comentários
Note
Nota: a capacidade de fornecer comentários para GitHub sobre Copilot pull request summaries depende das configurações da empresa. Para obter mais informações, confira "Gerenciando políticas e recursos do Copilot em sua empresa".
Se você encontrar algum issue ou limitação com o Copilot Chat in GitHub, recomendamos que você forneça comentários clicando no ícone de polegar para baixo abaixo de cada resposta de chat. Isso ajuda os desenvolvedores a aprimorar a ferramenta e resolver questões ou limitações.
Fique atualizado
O Copilot Chat é uma nova tecnologia e provavelmente evoluirá ao longo do tempo. No GitHub Copilot Chat in GitHub, você sempre terá acesso à experiência de produto mais recente. Você deve se manter atualizado com relação a quaisquer novos riscos de segurança ou práticas recomendadas que possam surgir.
Limitações do GitHub Copilot Chat
Dependendo de fatores como a base de código e dados de entrada, você pode obter diferentes níveis de desempenho ao usar o Copilot Chat. As informações a seguir ajudam a entender as limitações do sistema e os principais conceitos sobre desempenho, pois se aplicam ao Copilot Chat.
Escopo limitado
O Copilot Chat foi treinado em um grande corpo de código, mas ainda tem um escopo limitado e pode não conseguir lidar com estruturas de código mais complexas ou linguagens de programação obscuras. Para cada linguagem, a qualidade das sugestões recebidas pode depender do volume e da diversidade de dados de treinamento para essa linguagem. Por exemplo, o JavaScript é bem representado nos repositórios públicos e é uma das linguagens com melhor suporte do GitHub Copilot. No caso de linguagens com menos representação em repositórios públicos, o Copilot Chat pode encontrar mais dificuldades para ajudar. Além disso, o Copilot Chat só pode sugerir código com base no contexto do código que está sendo escrito, portanto, ele pode não conseguir identificar problemas maiores de design ou arquitetura.
Possíveis desvios
Os dados de treinamento do Copilot (extraídos de repositórios de código existentes) e o contexto coletado pelo modelo de linguagem grande (por exemplo, resultados de pesquisa do Bing) podem conter vieses e erros que podem ser perpetuados pela ferramenta. Além disso, o Copilot Chat pode ser tendencioso em relação a determinadas linguagens de programação ou estilos de codificação, o que pode levar a sugestões de código abaixo do ideal ou incompletas.
Riscos à segurança
O Copilot Chat gera código com base no contexto do código que está sendo escrito, que poderá expor informações confidenciais ou vulnerabilidades se não for usado com cuidado. Tenha cuidado ao usar o Copilot Chat para gerar código para aplicativos sensíveis à segurança e sempre revise e teste completamente o código gerado.
Correspondências com código público
O Copilot Chat consegue gerar um novo código de maneira probabilística. Embora seja baixa a probabilidade de que ele possa gerar um código que corresponda ao código no conjunto de treinamento, uma sugestão do Copilot Chat pode conter alguns snippets de código que correspondem ao código no conjunto de treinamento.
Se você tiver desabilitado sugestões que correspondam ao código público, Copilot Chat utilizará filtros que o impedem de mostrar código que corresponda ao código encontrado em repositórios públicos no GitHub. No entanto, você deve sempre tomar as mesmas precauções que tomaria com qualquer código que escrevesse que utilizasse material não originado de forma independente, incluindo precauções para garantir sua adequação. Isso inclui testes rigorosos, verificação de IP e acompanhamento de vulnerabilidades de segurança.
Se você tiver habilitado sugestões que correspondam ao código público, Copilot Chat exibirá uma mensagem se o código correspondente for encontrado. A mensagem inclui links para repositórios no GitHub que contêm código correspondente e os detalhes de licença que foram encontrados. Para saber mais, confira Como procurar um código público que corresponde às sugestões do GitHub Copilot.
Código impreciso
Uma das limitações do Copilot Chat é que ele pode gerar um código que parece ser válido, mas pode não estar correto semantica ou sintaticamente ou não refletir com precisão a intenção do desenvolvedor. Para atenuar o risco de código impreciso, revise e teste cuidadosamente o código gerado, ainda mais ao lidar com aplicativos críticos ou confidenciais. Você também deve garantir que o código gerado siga práticas recomendadas e os padrões de design e se encaixe na arquitetura geral e no estilo da base de código.
Respostas imprecisas a tópicos que não são de codificação
O Copilot Chat não foi projetado para responder a perguntas não relacionadas a codificação e, portanto, as respostas nem sempre são precisas ou úteis nesses contextos. Se um usuário fizer uma pergunta ao Copilot Chat que não seja sobre codificação, ele poderá gerar uma resposta irrelevante ou sem sentido ou simplesmente indicar que não é possível dar uma resposta útil.
Aproveitando uma pesquisa na Web para responder a uma pergunta
Dependendo da pergunta que você fizer, o GitHub Copilot Chat poderá opcionalmente usar uma pesquisa do Bing para ajudar a responder à sua pergunta. O Copilot usará o Bing para consultas sobre eventos recentes, novas tendências ou tecnologias, assuntos altamente específicos ou quando uma pesquisa na Web for explicitamente solicitada pelo usuário. Seu administrador do GitHub Enterprise pode habilitar o Bing para toda a empresa ou pode delegar essa decisão ao administrador da organização. Para saber mais, confira Gerenciando políticas e recursos do Copilot em sua empresa.
Ao aproveitar o Bing, o Copilot usará o conteúdo do prompt, bem como o contexto disponível adicional, para gerar uma consulta de pesquisa do Bing em seu nome enviada à API de Pesquisa do Bing. O Copilot fornecerá um link para os resultados da pesquisa com sua resposta. A consulta de pesquisa enviada ao Bing é regida pela Política de Privacidade da Microsoft.
Próximas etapas
Para obter detalhes sobre como usar o GitHub Copilot Chat in GitHub, confira:
- Como fazer perguntas ao GitHub Copilot no GitHub na documentação do GitHub Enterprise Cloud