Odkrywanie Tabnine

https://aie24.pl/

Tabnine to asystent kodowania AI i nazwa firmy, która go stworzyła. Firma została założona w 2012 roku i wydała pierwszą wersję swojego asystenta kodowania w 2018 roku, dzięki czemu Tabnine jest jednym z najdłużej działających narzędzi do kodowania opartych na AI. Tabnine jest dostępny w trzech wersjach: startowej, pro i korporacyjnej. Wersja startowa oferuje podstawowe uzupełnianie kodu. Plan pro oferuje funkcje kodu AI podobne do tych w Copilot: uzupełnianie kodu całych wierszy i funkcji, uzupełnianie kodu z języka naturalnego i interfejs czatu. Wersja korporacyjna umożliwia firmie zlokalizowanie modelu w korporacyjnej zaporze sieciowej i zapewnienie dostępu każdemu programiście w firmie. Dostępny jest 7-dniowy bezpłatny okres próbny (który w moim przypadku okazał się 14-dniowym okresem próbnym) planu pro. W tym rozdziale pokazuję funkcje zarówno planu startowego, jak i planu pro. Jedną z największych różnic między Tabnine a innymi narzędziami wspomagającymi kodowanie AI jest to, że Tabnine działa na własnym modelu, który został wytrenowany na publicznie dostępnym kodzie open-source z licencjami permisywnymi. Dzięki temu programiści i organizacje powinny móc korzystać z kodu wygenerowanego przez Tabnine bez narażania się na problemy prawne dotyczące naruszeń praw własności intelektualnej. To dodatkowe zapewnienie sprawiło, że Tabnine stał się popularny wśród dużych organizacji. Możesz wyświetlić całą listę repozytoriów, na których trenowano Tabnine, przechodząc na stronę https://trust.tabnine.com/. Należy pamiętać o ryzyku naruszenia licencji kodu, na którym trenowano model. W 2022 r. złożono pozew zbiorowy przeciwko Microsoft (właścicielowi GitHub i GitHub Copilot) i OpenAI, twierdząc, że firmy naruszyły licencje open-source programistów, których kod został użyty do trenowania modelu używanego przez Copilot. Tabnine poważnie traktuje prywatność kodu. Ich polityka prywatności (dostępna pod adresem https://tabnine.com/code-privacy) stanowi, że nigdy nie przechowują ani nie udostępniają żadnego kodu. Ten punkt jest ważny dla firm, które obawiają się, że asystenci kodowania AI mogą przypadkowo ujawnić ich własność intelektualną. Firmy korzystające z Tabnine mogą tworzyć własne modele, które mogą znajdować się w siedzibie firmy lub w chmurze. Aby utworzyć prywatny model kodu, Tabnine trenuje swój publiczny model przy użyciu bazy kodu klienta. Gdy klienci z prywatnym modelem przesyłają zapytanie, jest ono wysyłane do publicznego modelu Tabnine i prywatnego modelu i wybiera najbardziej odpowiednią sugestię kodu z dwóch zwróconych opcji. Prywatny model jest stale trenowany na podstawie kodu i decyzji podejmowanych przez jego użytkowników.

Korzystanie ze skrótów klawiaturowych

https://aie24.pl/

Chociaż możesz z powodzeniem używać Copilota, po prostu kodując tak, jak zwykle, i używając klawisza Tab do akceptowania sugestii, znajomość kilku dodatkowych skrótów klawiaturowych sprawi, że sesje kodowania będą bardziej produktywne. Skrót Ctrl+Enter jest szczególnie przydatny. Kiedy Copilot daje Ci sugestię i chcesz się dowiedzieć, czy może zasugerować coś lepszego, naciśnij Ctrl+Enter. W edytorze kodu otworzy się nowy panel i (po około minucie) wyświetli do 10 innych sugestii,

Otwórz powiązane pliki

https://aie24.pl/

Copilot pobiera kontekst dla pliku, nad którym pracujesz, z innych plików otwartych w edytorze. Jeśli pracujesz nad plikiem JavaScript, który będzie miał wpływ na stronę HTML lub importuje kod z innych plików JavaScript, otwórz te pliki w oddzielnych kartach. W moim przykładzie aplikacji do zadań JavaScript będzie miał wpływ na wyświetlanie strony HTML, więc utworzenie strony HTML i otwarcie jej w innej karcie pomoże Copilotowi wygenerować dokładniejszy kod JavaScript.

Podaj przykłady

https://aie24.pl/

Jeśli masz już pomysł, co chcesz, aby Copilot wygenerował, zacznij od podania mu jednego lub dwóch przykładów. Na przykład, jeśli chcesz, aby wygenerował tablicę obiektów, powiedz mu, jak powinien wyglądać obiekt. W poniższym przykładzie doprecyzowałem swój pierwszy krok z poprzedniego, aby określić, czego szukam:

/*

  1. Create an array of to-do items with the following shape:

[{todoTitle:”, todoDesc:”, date:”, completed:false}]

*/

const toDoItems = [

{

todoTitle: ‘item1’,

todoDesc: ‘item1 description’,

date: ‘2024-07-01’,

completed: false,

},

{

todoTitle: ‘item2’,

todoDesc: ‘item2 description’,

date: ‘2024-07-02’,

completed: false,

},

{todoTitle: ‘item3’,

todoDesc: ‘item3 description’,

date: ‘2024-07-03’,

completed: false,

},

];

Podziel rzeczy na części

https://aie24.pl/

Modele GenAI mają ograniczony czas skupienia uwagi. Aby poprawić wyniki, przekaż Copilotowi informacje jako serię kroków, a nie jako prośbę o duży blok kodu na raz. Po każdym kroku pozwól Copilotowi wygenerować trochę kodu, a następnie napisz następny krok. Na przykład w poniższym przykładzie podzieliłem aplikację zadań, którą chcę napisać, na obszary funkcjonalności i zaakceptowałem pierwszą sugestię Copilot dla każdego kroku.

/*

  1. Create a constant called toDoItems

containing an array of objects. Each object should have a todoText property and a completed property.

*/

const toDoItems = [

{

todoText: ‘item1’,

completed: false,

},

{

todoText: ‘item2’,

completed: false,

},

{

todoText: ‘item3’,

completed: false,

},

];

/*

  1. Create a function that displays a list of to-do

items in an element with an id attribute set to “to-dos”

in the browser.

*/

function displayTodos() {

const todosUl = document.querySelector(‘#to-dos’);

todosUl.innerHTML = ”;

toDoItems.forEach((item) => {

const todoLi = document.createElement(‘li’);

todoLi.textContent = item.todoText;

todosUl.appendChild(todoLi);

});

}Ten kod jest o wiele bliższy temu, czego szukałem i stanowi dobry punkt wyjścia dla mojej aplikacji

Określ swój cel

https://aie24.pl/

Szczególnie jeśli zaczynasz od pustego pliku lub pustego repozytorium, będziesz chciał zacząć kodować, opisując szczegółowo, co chcesz utworzyć. Najczęściej robisz to, pisząc komentarze do kodu na początku pliku. Niejasny komentarz nie spowoduje, że Copilot będzie pomocny. Oto początkowy kod wygenerowany przez Copilot w odpowiedzi na monit aplikacji zadań:

// a to-do app

var todoList = {

todos: [],

displayTodos: function () {

console.log(‘My Todos:’, this.todos);

}

};

Zamiast tego spróbuj zacząć od podania co najmniej takiej ilości szczegółów, jaką podałbyś innemu programiście:

/* A to-do app. Users can check a box to mark a task

complete, and completed tasks will be shown in a separate

list below the uncompleted tasks. */

var todoList = {

todos: [],

displayTodos: function () {

console.log(‘My Todos:’, this.todos);

},

addTodo: function (todoText) {

this.todos.push({

todoText: todoText,

completed: false,

});

this.displayTodos();

},

changeTodo: function (position, todoText) {

this.todos[position].todoText = todoText;

this.displayTodos();

},

deleteTodo: function (position) {

this.todos.splice(position, 1);

this.displayTodos();

},

toggleCompleted: function (position) {

var todo = this.todos[position];

todo.completed = !todo.completed;

this.displayTodos();

},

};

Z dodatkowymi szczegółami Copilot nadal nie zrobił tego dobrze, ale przynajmniej wziął pod uwagę niektóre elementy mojego polecenia, takie jak to, że użytkownicy mogą oznaczać zadania jako ukończone.

Efektywna praca z Copilot

https://aie24.pl/

Po zainstalowaniu i włączeniu Copilot, korzystanie z niego to tylko kwestia rozpoczęcia pisania kodu. Jednak tak jak w przypadku każdego narzędzia GenAI, kontekst jest wszystkim. Pierwszym elementem kontekstu, który powinieneś podać Copilot, jest typ kodu, który zamierzasz napisać. Możesz to zrobić, rozpoczynając nowy plik z rozszerzeniem pliku języka programowania, którego będziesz używać, takim jak .js dla JavaScript lub .py dla Pythona.Wybierz ostrożnie nazwę pliku, ponieważ określa ona typy sugestii, które podaje Copilot. Copilot generuje sugestie, korzystając z kontekstu z pliku, nad którym aktualnie pracujesz, i sąsiednich kart — inne pliki są otwierane w edytorze. Więc jeśli Twój bieżący projekt zawiera inne pliki, które będą powiązane z nowym, który zaczynasz, otwórz je również, aby Copilot mógł z nich wyciągnąć informacje. Celem nauczenia się, jak zapewnić dobry kontekst dla Copilot, jest zwiększenie jego dokładności. Im dłużej używasz Copilot w projekcie, tym bardziej jego dokładność będzie się poprawiać sama z siebie. Możesz jeszcze bardziej zwiększyć dokładność sugestii poprzez lepsze podpowiedzi i zapewnienie lepszego kontekstu. Według badań opublikowanych przez GitHub, programiści akceptowali średnio 30 procent sugestii Copilota natychmiast. Po sześciu miesiącach korzystania z Copilota średni wskaźnik akceptacji sugestii wzrósł do 34 procent. Przeczytanie tej książki może pomóc Ci pokonać średnią! Oto kilka najlepszych praktyk, aby uzyskać najdokładniejsze sugestie od Copilot:

»»Określ swój cel na początku.

»»Podziel wszystko na małe kroki.

»»Podaj przykłady Copilot.

»»Otwórz powiązane pliki.

Instalowanie wtyczki Copilot

https://aie24.pl/

Pierwszym krokiem w korzystaniu z Copilot jest zainstalowanie wtyczki GitHub (lub rozszerzenia, jak jest nazywane w VS Code). Proces instalowania rozszerzenia różni się w zależności od IDE. Szczegółowe instrukcje instalacji dla każdego IDE obsługiwanego przez Copilot można znaleźć na stronie https://docs.github.com/en/copilot/getting-started-withgithub-copilot. W rozdziale 1 podaję szczegóły dotyczące instalowania i włączania rozszerzenia Copilot dla VS Code. Aby śledzić przykłady w tym rozdziale, należy użyć VS Code lub edytora kodu w przeglądarce GitHub, CodeSpaces (https://github.com/codespaces). CodeSpaces jest oparty na VS Code i dlatego jest bardzo podobny do instalowalnej wersji VS Code. Po zainstalowaniu rozszerzenia Copilot w VS Code rozszerzenie Copilot Chat jest instalowane automatycznie. Po zainstalowaniu Copilot ikona statusu Copilot pojawi się w prawym dolnym rogu VS Code (patrz Rysunek 3-1, u góry). Jeśli nie jesteś obecnie zalogowany na koncie GitHub z dostępem do Copilot, ikona statusu Copilot pojawi się ze znakiem wykrzyknienia. Chociaż możesz zainstalować wtyczkę bez konta Copilot, musisz mieć konto GitHub i indywidualną subskrypcję (10 USD miesięcznie) lub subskrypcję biznesową (19 USD za użytkownika miesięcznie), aby korzystać z Copilot. Dostępna jest bezpłatna 30-dniowa wersja próbna, a także bezpłatne konta dla studentów i nauczycieli. Możesz kliknąć ikonę Konta w VS Code, aby utworzyć konto GitHub, jeśli to konieczne. Rozszerzenia Copilot nie mają wielu regulowanych ustawień. Być może najważniejszym ustawieniem, które możesz kontrolować, jest to, czy Copilot aktywnie udziela Ci sugestii. Aby wyłączyć Copilot, aby móc myśleć, kliknij ikonę stanu Copilot. W menu, które pojawi się u góry interfejsu VS Code, wybierz Wyłącz uzupełnienia. (Gdy uzupełnienia są wyłączone, w menu pojawi się łącze Włącz uzupełnienia). Aby uzyskać dostęp do innych ustawień, kliknij ikonę Rozszerzenia w lewym panelu VS Code. Następnie kliknij ikonę koła zębatego obok rozszerzenia i wybierz Ustawienia rozszerzenia z wyświetlonego menu.

Nawigacja po GitHub Copilot

https://aie24.pl/

GitHub Copilot to oparte na chmurze narzędzie do kodowania AI opracowane przez GitHub (który jest częścią Microsoft) i OpenAI (twórców modeli GPT-x stojących za ChatGPT i wieloma innymi narzędziami). Copilot został uruchomiony w czerwcu 2021 r. i obecnie integruje się z kilkoma edytorami kodu i IDE, w tym Visual Studio Code, Visual Studio, Neovim i IDE JetBrains. Model GenAI stojący za Copilotem nosi nazwę OpenAI Codex. Codex opiera się na GPT-3 OpenAI i jest również trenowany na kodzie źródłowym z milionów publicznych repozytoriów GitHub i innych publicznie dostępnych kodów źródłowych. Chociaż Copilot najlepiej działa z Pythonem, JavaScript, TypeScript, Ruby i Go, został przeszkolony na kodzie źródłowym z ponad tuzina języków programowania i z czasem będzie stawał się coraz bardziej biegły w kolejnych językach