Sterowanie Copilotem za pomocą kontekstu

Programowanie z GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Znaczenie kontekstu

Programowanie z GitHub Copilot

Znaczenie kontekstu

Programowanie z GitHub Copilot
Programowanie z GitHub Copilot

Zmienna #codebase

$$

#codebase: Wykonuje semantyczne wyszukiwanie kodu w całym projekcie

Przykładowy monit:

Jak obsługiwane jest uwierzytelnianie użytkowników? #codebase

Wynik:

  • 🔍 Skanuje całą bazę kodu
  • 💻 Uwzględnia odpowiednią logikę, wywołania funkcji i ustawienia konfiguracji
Programowanie z GitHub Copilot

Jak Copilot rozumie Twoją bazę kodu

Typy indeksów:

  • Indeks lokalny: Przechowywany na Twoim komputerze
  • Indeks zdalny: Dla repozytoriów hostowanych na GitHub
Programowanie z GitHub Copilot

Sprawdzanie typu indeksu

Programowanie z GitHub Copilot

Sprawdzanie typu indeksu

Programowanie z GitHub Copilot

Zmienna #changes

$$

#changes: Odwołuje się do ostatnich zmian w kontroli wersji

Przykładowy monit:

Czy któraś z tych zmian może zepsuć przepływ logowania? #changes

Stosować gdy:

  • 💾 Ocenianie modyfikacji kodu
Programowanie z GitHub Copilot

Zmienna #selection

$$

#selection: Odwołuje się do zaznaczonych fragmentów kodu

Przykładowy monit:

Czy możesz to zrefaktoryzować? #selection

Stosować gdy:

  • 🔧 Szybkie edycje
  • 📝 Tworzenie precyzyjnych monitów
Programowanie z GitHub Copilot

Zmienna #fetch

  • Dokumentacja 📚, dokumentacja API 💻, wpis na blogu 📰

$$

#fetch: Pobiera zawartość strony internetowej

Przykładowy monit:

Streść mi tę dokumentację #fetch https://example.com/docs

Wynik:

  • 🌐 Pobiera stronę i używa jej jako kontekstu
Programowanie z GitHub Copilot

Zmienna #files

$$

#files: Dołącza określone pliki do monitu

Przykładowy monit:

Czy możesz sprawdzić ten plik pod kątem obsługi błędów? #files:utils/data_loader.py

Wynik:

  • 🔍 Analizuje zawartość wskazanego pliku
  • 📄 Dołącza go jako część kontekstu monitu
Programowanie z GitHub Copilot

Inne zmienne i narzędzia czatu

$$

Variable/tool Description
#search Umożliwia wyszukiwanie plików w bieżącym obszarze roboczym.
#testFailure Dostarcza informacji o nieudanych testach jednostkowych. Przydatne przy uruchamianiu i diagnozowaniu testów.
#problems Dodaje problemy z obszaru roboczego z panelu Problems jako kontekst. Przydatne przy naprawianiu kodu lub debugowaniu.
#terminalLastCommand Pobiera ostatnie polecenie terminala i jego dane wyjściowe.
#githubRepo Wykonuje wyszukiwanie kodu w repozytorium GitHub.
1 https://code.visualstudio.com/docs/copilot/reference/copilot-vscode-features#_chat-tools
Programowanie z GitHub Copilot
Programowanie z GitHub Copilot

Budowanie progresywnej rozmowy z Copilotem

Pojedynczy, złożony monit:

Dodaj integrację z PostgreSQL z uwierzytelnianiem, trwałością, sesjami, obsługą błędów i pulą połączeń

Stopniowe zwiększanie złożoności:

  1. Jakie jest najlepsze podejście do dodania trwałości bazy danych? #codebase
  2. Zaimplementuj połączenie z bazą danych zgodnie z sugerowanym podejściem
  3. Pomóż mi z projektem schematu dla klas Task i User
  4. Teraz dodaj zarządzanie sesjami i podstawową obsługę błędów
  5. ...
Programowanie z GitHub Copilot

Rozpoczynanie nowego czatu w celu wyczyszczenia kontekstu

Programowanie z GitHub Copilot

Rozpoczynanie nowego czatu w celu wyczyszczenia kontekstu

Programowanie z GitHub Copilot

Programowanie z GitHub Copilot

Czas na ćwiczenia!

Programowanie z GitHub Copilot

Preparing Video For Download...