Настройка Copilot

Разработка программного обеспечения с GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Разработка программного обеспечения с GitHub Copilot

Разработка программного обеспечения с GitHub Copilot

Разработка программного обеспечения с GitHub Copilot

Разработка программного обеспечения с GitHub Copilot

Как работают пользовательские инструкции

$$

Определите:

  • Соглашения о написании кода
  • Предпочтительные инструменты
  • Контекст проекта

Разработка программного обеспечения с GitHub Copilot

Как работают пользовательские инструкции

$$

Определите:

  • Соглашения о написании кода
  • Предпочтительные инструменты
  • Контекст проекта

Разработка программного обеспечения с GitHub Copilot

Как задать пользовательские инструкции

Поместите их в: .github/copilot-instructions.md

## Project context
Python project for processing data pipelines with Airflow.

## Coding style - Use type hints for all functions
- Follow PEP8
- Use snake_case naming
- Write Google-style docstrings
## Testing - Use pytest
- Include one test per function
## More instructions...
Разработка программного обеспечения с GitHub Copilot

Что делает инструкцию эффективной

$$

✅ Эффективные инструкции:

  • Короткие и конкретные
  • Самодостаточные
  • Содержат контекст и нужную информацию

$$

❌ Неэффективные инструкции:

  • Ссылки на внешние документы или репозитории
  • Требования к тону или стилю изложения
  • Ограничения на детализацию или форматирование
1 https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions
Разработка программного обеспечения с GitHub Copilot

$$

$$

## Style guidelines

- Conform to the coding styles defined 
in styleguide.md in repo my-org/my-repo

- Answer in the style of a friendly 
colleague, using informal language

- Answer in fewer than 1,000 characters

Разработка программного обеспечения с GitHub Copilot

$$

$$

## Style guidelines

- Conform to the coding styles defined 
in styleguide.md in repo my-org/my-repo

- Answer in the style of a friendly 
colleague, using informal language

- Answer in fewer than 1,000 characters

Разработка программного обеспечения с GitHub Copilot

Как включить пользовательские инструкции

  • Сохраните файл copilot-instructions.md
  • Он будет автоматически включён в ваши запросы

Разработка программного обеспечения с GitHub Copilot

Как включить пользовательские инструкции

  • Сохраните файл copilot-instructions.md
  • Он будет автоматически включён в ваши запросы

Разработка программного обеспечения с GitHub Copilot

Использование нескольких файлов инструкций

Разработка программного обеспечения с GitHub Copilot

Использование нескольких файлов инструкций

Разработка программного обеспечения с GitHub Copilot

Использование нескольких файлов инструкций

$$

Разработка программного обеспечения с GitHub Copilot

Настройка инструкций на уровне организации

$$

Разработка программного обеспечения с GitHub Copilot

Настройка инструкций на уровне организации

$$

Примеры корпоративных правил:

  • Использовать внутренние инструменты
  • Применять определённые библиотеки
  • Соблюдать единый стиль кода
  • Предупреждать об устаревших паттернах
Разработка программного обеспечения с GitHub Copilot

Приоритет инструкций на разных уровнях

$$

$$

$$

Область действия Приоритет
Личные инструкции Высший
Инструкции проекта Средний
Инструкции организации Низший
Разработка программного обеспечения с GitHub Copilot

$$

Пример запроса: «Напишите функцию, которая вычисляет среднее значение списка чисел.»

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)
Разработка программного обеспечения с GitHub Copilot

$$

Пример запроса: «Напишите функцию, которая вычисляет среднее значение списка чисел.»

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)

$$

Разработка программного обеспечения с GitHub Copilot

Давайте потренируемся!

Разработка программного обеспечения с GitHub Copilot

Preparing Video For Download...