Personalizar Copilot

Desarrollo de software con GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Desarrollo de software con GitHub Copilot

Desarrollo de software con GitHub Copilot

Desarrollo de software con GitHub Copilot

Desarrollo de software con GitHub Copilot

Cómo funcionan las instrucciones personalizadas

$$

Definir:

  • Convenciones de codificación
  • Preferencias de herramientas
  • Contexto del proyecto

Desarrollo de software con GitHub Copilot

Cómo funcionan las instrucciones personalizadas

$$

Definir:

  • Convenciones de codificación
  • Preferencias de herramientas
  • Contexto del proyecto

Desarrollo de software con GitHub Copilot

Cómo definir instrucciones personalizadas

Inclúyelas en: .github/copilot-instructions.md

## Contexto del proyecto
Proyecto Python para procesar pipelines de datos con Airflow.

## Estilo de codificación - Usa type hints para todas las funciones
- Sigue PEP8
- Usa snake_case para nombres
- Escribe docstrings estilo Google
## Pruebas - Usa pytest
- Incluye una prueba por función
## Más instrucciones...
Desarrollo de software con GitHub Copilot

Qué hace una instrucción efectiva

$$

✅ Instrucciones efectivas:

  • Cortas y específicas
  • Autónomas
  • Añaden contexto o información relevante

$$

❌ Instrucciones ineficaces:

  • Documentos o repositorios externos
  • Tono o estilo de escritura específico
  • Límite en detalle o formato
1 https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
Desarrollo de software con GitHub Copilot

$$

$$

## Guías de estilo

- Cumple con los estilos de codificación definidos 
en styleguide.md en el repo my-org/my-repo

- Responde como un colega amigable, usando lenguaje informal
- Responde en menos de 1,000 caracteres

Desarrollo de software con GitHub Copilot

$$

$$

## Guías de estilo

- Cumple con los estilos de codificación definidos 
en styleguide.md en el repo my-org/my-repo

- Responde como un colega amigable, usando lenguaje informal
- Responde en menos de 1,000 caracteres

Desarrollo de software con GitHub Copilot

Cómo habilitar instrucciones personalizadas

  • Guarda el archivo copilot-instructions.md
  • Se incluirá automáticamente en tus indicaciones

Desarrollo de software con GitHub Copilot

Cómo habilitar instrucciones personalizadas

  • Guarda el archivo copilot-instructions.md
  • Se incluirá automáticamente en tus indicaciones

Desarrollo de software con GitHub Copilot

Usando múltiples archivos de instrucciones

Desarrollo de software con GitHub Copilot

Usando múltiples archivos de instrucciones

Desarrollo de software con GitHub Copilot

Usando múltiples archivos de instrucciones

$$

Desarrollo de software con GitHub Copilot

Configurando instrucciones a nivel organizacional

$$

Desarrollo de software con GitHub Copilot

Configurando instrucciones a nivel organizacional

$$

Ejemplos de reglas a nivel empresa:

  • Usa herramientas internas
  • Impone bibliotecas específicas
  • Aplica estilo consistente
  • Advierte sobre patrones obsoletos
Desarrollo de software con GitHub Copilot

Prioridad de instrucciones multinivel

$$

$$

$$

Alcance Prioridad
Instrucciones personales Alta
Instrucciones de proyecto Media
Instrucciones de organización Baja
Desarrollo de software con GitHub Copilot

$$

Ejemplo de indicación: "Escribe una función que calcule el promedio de una lista de números."

def calculate_average(numbers: List[float]) -> float:
    """Calculate the average of a list of numbers.

    Args:
        numbers (List[float]): A list of numbers to average.

    Returns:
        float: The average value of the numbers.

    Raises:
        ValueError: If the list is empty.
    """
    if not numbers:
        raise ValueError("The list of numbers cannot be empty.")
    return sum(numbers) / len(numbers)
Desarrollo de software con GitHub Copilot

$$

Ejemplo de indicación: "Escribe una función que calcule el promedio de una lista de números."

def calculate_average(numbers: List[float]) -> float:
    """Calculate the average of a list of numbers.

    Args:
        numbers (List[float]): A list of numbers to average.

    Returns:
        float: The average value of the numbers.

    Raises:
        ValueError: If the list is empty.
    """
    if not numbers:
        raise ValueError("The numbers list cannot be empty.")
    return sum(numbers) / len(numbers)

$$

Desarrollo de software con GitHub Copilot

¡Vamos a practicar!

Desarrollo de software con GitHub Copilot

Preparing Video For Download...