Personalizando o Copilot

Desenvolvimento de Software com GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Desenvolvimento de Software com GitHub Copilot

Desenvolvimento de Software com GitHub Copilot

Desenvolvimento de Software com GitHub Copilot

Desenvolvimento de Software com GitHub Copilot

Como funcionam as instruções personalizadas

$$

Defina:

  • Convenções de codificação
  • Preferências de ferramentas
  • Contexto do projeto

Desenvolvimento de Software com GitHub Copilot

Como funcionam as instruções personalizadas

$$

Defina:

  • Convenções de codificação
  • Preferências de ferramentas
  • Contexto do projeto

Desenvolvimento de Software com GitHub Copilot

Como definir instruções personalizadas

Inclua em: .github/copilot-instructions.md

## Contexto do projeto
Projeto Python para processar pipelines de dados com Airflow.

## Estilo de codificação - Use type hints para todas as funções
- Siga o PEP8
- Use snake_case para nomes
- Escreva docstrings no estilo Google
## Testes - Use pytest
- Inclua um teste por função
## Mais instruções...
Desenvolvimento de Software com GitHub Copilot

O que torna uma instrução eficaz

$$

✅ Instruções eficazes:

  • Curtas e específicas
  • Autossuficientes
  • Adicionam contexto ou informações relevantes

$$

❌ Instruções ineficazes:

  • Documentos ou repositórios externos
  • Tom específico ou estilo de escrita
  • Limite de detalhes ou formatação
1 https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
Desenvolvimento de Software com GitHub Copilot

$$

$$

## Diretrizes de estilo

- Conformar-se aos estilos de codificação definidos 
em styleguide.md no repositório my-org/my-repo

- Responder no estilo de um colega amigável, 
usando linguagem informal

- Responder em menos de 1.000 caracteres

Desenvolvimento de Software com GitHub Copilot

$$

$$

## Diretrizes de estilo

- Conformar-se aos estilos de codificação definidos 
em styleguide.md no repositório my-org/my-repo

- Responder no estilo de um colega amigável, 
usando linguagem informal

- Responder em menos de 1.000 caracteres

Desenvolvimento de Software com GitHub Copilot

Como habilitar instruções personalizadas

  • Salve o arquivo copilot-instructions.md
  • Ele será incluído automaticamente nos seus prompts

Desenvolvimento de Software com GitHub Copilot

Como habilitar instruções personalizadas

  • Salve o arquivo copilot-instructions.md
  • Ele será incluído automaticamente nos seus prompts

Desenvolvimento de Software com GitHub Copilot

Usando múltiplos arquivos de instrução

Desenvolvimento de Software com GitHub Copilot

Usando múltiplos arquivos de instrução

Desenvolvimento de Software com GitHub Copilot

Usando múltiplos arquivos de instrução

$$

Desenvolvimento de Software com GitHub Copilot

Definindo instruções a nível organizacional

$$

Desenvolvimento de Software com GitHub Copilot

Definindo instruções a nível organizacional

$$

Exemplos de regras da empresa:

  • Use ferramentas internas
  • Imponha bibliotecas específicas
  • Aplique estilo consistente
  • Alerta sobre padrões obsoletos
Desenvolvimento de Software com GitHub Copilot

Prioridade de instruções em múltiplos níveis

$$

$$

$$

Escopo Prioridade
Instruções pessoais Alta
Instruções de projeto Média
Instruções organizacionais Baixa
Desenvolvimento de Software com GitHub Copilot

$$

Exemplo de prompt: "Escreva uma função que calcule a média de uma lista de números."

def calculate_average(numbers: List[float]) -> float:
    """Calcular a média de uma lista de números.

    Args:
        numbers (List[float]): Uma lista de números para calcular a média.

    Returns:
        float: O valor médio dos números.

    Raises:
        ValueError: Se a lista estiver vazia.
    """
    if not numbers:
        raise ValueError("A lista de números não pode estar vazia.")
    return sum(numbers) / len(numbers)
Desenvolvimento de Software com GitHub Copilot

$$

Exemplo de prompt: "Escreva uma função que calcule a média de uma lista de números."

def calculate_average(numbers: List[float]) -> float:
    """Calcular a média de uma lista de números.

    Args:
        numbers (List[float]): Uma lista de números para calcular a média.

    Returns:
        float: O valor médio dos números.

    Raises:
        ValueError: Se a lista estiver vazia.
    """
    if not numbers:
        raise ValueError("A lista de números não pode estar vazia.")
    return sum(numbers) / len(numbers)

$$

Desenvolvimento de Software com GitHub Copilot

Vamos praticar!

Desenvolvimento de Software com GitHub Copilot

Preparing Video For Download...