
Duże modele językowe są z nami już od dobrej chwili, a integracja tych rozwiązań z codziennymi narzędziami przybiera na sile. Tak zwane AI znacznie przyśpiesza codzienną prace, nawet z PowerShell. Dlatego dzisiaj chcielibyśmy Wam pokazać jak używam GitHub Copilot pisząc skrypt PowerShell w edytorze Visual Studio Code. Zatem jak uruchomić asystenta GitHub Copilot w Visual Studio Code? W jaki sposób dodać do edytora Visual Studio Code model językowy GitHub Copilot? Czy można używać GitHub Copilot pisząc skrypty PowerShell? Jak wydajnie pisać skrypty w Visual Studio Code?
Dlaczego wtyczka w GitHub Copilot? Dlaczego Visual Studio Code i PowerShell ?
Oba rozwiązania wzajemnie się uzupełniają. Plugin oferuje sugestie dla naszego kodu w czasie rzeczywistym, podczas pisania. Sama wtyczka jest zaprojektowana, aby pomagać w pisaniu kodu szybciej i bardziej efektywnie poprzez automatyczne uzupełnianie, generowanie funkcji, a nawet całych klas. Pamiętajmy też, że GitHub, Visual Studio i GitHub Copilot to jeden i ten sam vendor. Nie będzie więc problemów z integracją i zgodnością tych trzech elementów.
Zacznijmy od początku GitHub Copilot jest modelem językowym dostarczanym przez platformę GitHub dla jej wszystkich użytkowników – różni się planami cenowymi a co za tym idzie, również możliwościami. Najtańszy plan to $0 a jak mawia klasyk „za darmo to uczciwa cena”, dlatego w naszym przykładzie użyjemy właśnie tej wersji z edytorem Visual Studio Code:

Najprostszym sposobem na integracje jest dodanie wtyczki z poziomu samego Visual Studio Code, przejdźmy w tej aplikacji do sekcji Extensions i wyszukajmy GitHub Copilot następnie kliknijmy po prostu Install

po instalacji pluginu pojawi się boczny panel GitHub Copilot z prośbą o zalogowanie się do usługi:

kolejnym krokiem jest wprowadzenie poświadczeni GitHub oknie przeglądarki tak aby zalogować się do tej platformy:

w ostatnim etapie autoryzujemy nasze konto do użycia w aplikacji:

Jesteśmy gotowi do działania, zaczynamy! Nasz edytor Visual Studio Code powinien wyglądać po instalacji w ten sposób (u Was może być inna kolorystyka i dodatki):

Na starcie w nowo zainstalowanej wtyczce GitHub Copilot a raczej jej panelu mamy dostępne dwie opcje i reprezentujące je zakładki:
- CHAT
- COPILOT EDITS

Użyjmy pierwszej z nich, jesto klasyczny Chat modelu językowego. To on pozwoli nam zapytać GitHub Copilota o co tylko chcemy w aplikacji. Nasz prompt powinien być dość zwięzły i logiczny, tak aby na samym początku zdefiniować ogólne założenia skryptu PowerShell. Ewentualnie w kolejnych krokach rozbudować/dołożyć wymagane przez nas dodatkowe elementy.
Przykładowy prompt:
Napisz funkcje o nazwie Get-FileCount, która będzie posiadała dwa parametry. Pierwszy parametr to -typ (będzie to rozszerzenie pliku np .pdf), drugi parametr to -path (będzie to zadana ścieżka). Funkcja ma za zadnie zliczyć ilość plików danego typu w danej ścieżce.

Czat poradził sobie z całkiem nieźle i wygenerował poniższą funkcje która wklejamy do naszego pliku i testujemy:
#my first powershell script with GitHub Copilot
function Get-FileCount {
param (
[string]$typ,
[string]$path
)
if (-Not (Test-Path -Path $path)) {
Write-Error "Ścieżka '$path' nie istnieje."
return
}
$files = Get-ChildItem -Path $path -Filter "*$typ" -File
$fileCount = $files.Count
Write-Output "Ilość plików typu '$typ' w ścieżce '$path' to: $fileCount"
}
# Przykład użycia:
# Get-FileCount -typ ".pdf" -path "C:\data\documents"


W konsoli sprawdzamy naszą funkcje a testy wskazują, że ogólne założenia są poprawne:

Jak widzicie całość procesu pisania takiej prostej funkcji zajęła dobre 45 sekund – nawet mając szablony funkcji PowerShell które modyfikujemy zaczynając tworzenie skryptu to 5 razy szybciej!
Dodajmy w Chat jeszcze opcje debugowania i sprawdzamy dalej:Czy możesz uzupełnić funkcje o debugowanie czyli Write-Debug?

pojawia się poprawiona funkcja którą kopiujemy i przeklejamy do pliku:

GitHub Copilot znowu bez zaskoczenia poprawnie wykonał zadanie, jednak praca w tym trybie zbytnio nie różni się o przeklejania wyników z okna przeglądarki do pliku. Czy można inaczej i szybciej? Można.
Sprawdźmy drugą zakładkę w panelu czyli Copilot Edits. Pozwala ona na pisanie czy poprawiane naszego skryptu w oknie edytora. Nasz otwarty plik z automatu jest wskazany w oknie edytora – możemy też dodać ich kilka:

wpiszmy nowy prompt poniżej, pobawmy się kolorami w naszej funkcji:
Czy możesz poprawić tak załączony skrypt aby wynik pojawiał się w kolorze zielonym

GitHub Copilot tym razem zacznie edytować nasz otwarty plik – konsola chatu przeniosła się do okna edycji:

Pojawiły się zmiany (kolorowe linie):

Wystarczy zasugerowane zmiany zaakceptować:

i przetestować naszą funkcje – znowu sukces!

Na sam koniec pozostała nam jeszcze jedna funkcja

Pojawi się okno z odpowiedzią – wystarczy przeczytać (aby zrozumieć) i zaakceptować:

pojawi się kod funkcji w oknie edycji

sprawdzamy działanie:

bez zaskoczenia – działa!
Reasumując GitHub Copilot dla Visual Studio Code, działa doskonale z naszym ulubionym edytorem, sama wtyczka funkcji ma znacznie więcej np analiza kodu, poprawki itp. W powyższym przykładzie funkcja PowerShell była naprawdę prosta natomiast oszczędność dla czasu olbrzymia. Sprawdźcie działanie z własnym przykładem.
W pracy z każdym modelem językowym należy skupić się na analizie tego co otrzymujemy. To nadal nie jest inteligencja a dobrze nauczone „uczenie maszynowe”, wszystkie modele na koniec 2024 roku popełniają błędy albo „śnią”. Bardzo dobrze radzą sobie z logiką ale potrafią wymyślać na poczekaniu nie istniejące polecenia czy funkcje. Dlatego nasz prompt na wstępie powinien skupiać się na logice czy mechanizmie działania, piszemy co chcemy uzyskać, sprawdzamy! Następnie dokładamy elementy i znowu sprawdzamy! A co najważniejsze: czytamy co nam GitHub Copilot napisał.
Jeżeli mój wpis Ci się spodobał, pomógł w pracy? Chcesz mnie wspierać? Postaw kawę! To dzięki waszemu wsparciu nie ma reklam! Poniżej kod QR do płatności który jest jednocześnie linkiem do PayPal.
