Prezentacja Gemini Code Assist (wcześniej Duet AI) dla deweloperów

1. Wprowadzenie

W tym module użyjesz Gemini Code Assist (dawniej Duet AI dla programistów), opartym na AI pomocą w Google Cloud. Dowiesz się, jak korzystać z Gemini Chat i wbudowanej pomocy dotyczącej kodu, aby m.in. generować i interpretować kod.

Co możesz zrobić...

  • Użyjesz IDE Cloud Shell do pobrania istniejącego szablonu kodu dla aplikacji internetowej.
  • W Cloud Shell IDE będziesz używać Gemini Chat, żeby zadawać ogólne pytania na temat Google Cloud.
  • Do generowania, podsumowywania i uzupełnienia kodu będziesz korzystać z pomocy Gemini Code Assist w IDE Cloud Shell.

Czego się nauczysz...

  • Jak używać Gemini Code Assist do różnych zadań programistycznych, takich jak generowanie kodu, uzupełnianie i podsumowywanie kodu.
  • Jak używać Gemini w Cloud, aby poznać Google Cloud.

Co będzie Ci potrzebne...

  • Przeglądarka Chrome
  • konto Gmail,
  • Projekt Cloud z włączonymi płatnościami
  • Usługa Gemini Code Assist została włączona w Twoim projekcie Cloud

Ten moduł jest przeznaczony dla programistów na wszystkich poziomach zaawansowania, w tym początkujących. Chociaż przykładowa aplikacja jest w języku Python, nie musisz znać się na programowaniu, by zrozumieć, co się dzieje. Skupimy się na zapoznania się z możliwościami Gemini Code Assist dla deweloperów.

2. Konfiguracja

W tej sekcji znajdziesz informacje o wszystkim, co jest potrzebne, aby rozpocząć korzystanie z tego modułu.

Włączanie Gemini dla Cloud w projekcie Google Cloud

Teraz włączymy Gemini dla Cloud w naszym projekcie Google Cloud. Wykonaj te czynności:

  1. Otwórz stronę https://console.cloud.google.com i upewnij się, że wybrany jest projekt Google Cloud, z którym zamierzasz pracować w tym module. Kliknij ikonę Otwórz Gemini widoczną w prawym górnym rogu.

28f084ec1e159938.png

  1. Po prawej stronie konsoli otworzy się okno czatu Gemini w Cloud. Kliknij przycisk Włącz, jak pokazano poniżej. Jeśli nie widzisz przycisku Włącz, a zamiast niego widzisz interfejs Google Chat, prawdopodobnie usługa Gemini for Cloud została już włączona w projekcie i możesz przejść bezpośrednio do następnego kroku.

e8df9adc4ea43a37.png

  1. Gdy zostanie włączona, możesz przetestować Gemini dla Cloud, zadając mu jedno lub dwa zapytania. Wyświetlamy kilka przykładowych zapytań, ale możesz użyć np. What is Cloud Run?

9859Ea86a8310cb.png

Gemini w Cloud odpowie na Twoje pytanie. Możesz kliknąć ikonę f68286b2b2ea5c0a.png w prawym górnym rogu, aby zamknąć okno czatu Gemini w Cloud.

Włącz Gemini Code Assist w Cloud Shell IDE

Do pozostałej części tych ćwiczeń będziemy używać Cloud Shell IDE – w pełni zarządzanego środowiska programistycznego opartego na Code OSS. Musimy włączyć i skonfigurować funkcję Code Assist w IDE Cloud Shell. Poniżej znajdziesz instrukcje:

  1. Otwórz stronę ide.cloud.google.com. IDE może pojawić się dopiero po pewnym czasie, dlatego prosimy o cierpliwość.
  2. Kliknij przycisk Cloud Code – Zaloguj się na dolnym pasku stanu, jak pokazano na ilustracji. Autoryzuj wtyczkę zgodnie z instrukcjami. Jeśli na pasku stanu widzisz komunikat „Cloud Code – no project” (Cloud Code – brak projektu), zaznacz tę pozycję, a następnie wybierz konkretny projekt Google Cloud z listy projektów, z którymi zamierzasz pracować.

6f5ce865fc7a3ef5.png

  1. W prawym dolnym rogu kliknij przycisk Gemini, jak pokazano na ekranie, i po raz ostatni wybierz właściwy projekt Google Cloud. Jeśli pojawi się prośba o włączenie interfejsu Cloud AI Companion API, zrób to i przejdź dalej.
  2. Po wybraniu projektu Google Cloud sprawdź, czy widzisz komunikat o stanie Cloud Code na pasku stanu oraz czy masz włączoną funkcję Code Assist po prawej stronie, na pasku stanu, jak pokazano poniżej:

709e6c8248ac7d88.png

Możesz już korzystać z Gemini Code Assist.

Opcjonalnie: jeśli nie widzisz Gemini na pasku stanu na dole po prawej, musisz włączyć Gemini in Cloud Code. Zanim to zrobisz, sprawdź, czy usługa Gemini jest włączona w IDE. Aby to zrobić, otwórz Cloud Code Extension → Settings (Rozszerzenie Cloud Code → Ustawienia) i wpisz tekst Gemini, jak pokazano poniżej. Upewnij się, że pole wyboru jest zaznaczone. Załaduj IDE ponownie.Spowoduje to włączenie Gemini w Cloud Code i w Twoim IDE pojawi się ikona Gemini na pasku stanu.

228c9c9c6b956c8e.png

3. Tworzenie przykładowej aplikacji

Przygotujemy przykładową aplikację (aplikację w języku Python Flask), której użyjemy do poznawania funkcji Gemini Code Assist.

Aby to zrobić:

  1. Kliknij nazwę projektu Google Cloud na pasku stanu poniżej.

f151759c156c124e.png

  1. Pojawi się lista opcji. Na liście poniżej kliknij New Application (Nowa aplikacja).

91ea9836f38b7f74.png

  1. Wybierz aplikację Cloud Run.
  2. Wybierz szablon aplikacji Python (Flask): Cloud Run.
  3. Zapisz nową aplikację w wybranej przez siebie lokalizacji.
  4. Zostanie wyświetlone powiadomienie z potwierdzeniem utworzenia aplikacji oraz otwarcie nowego okna z aplikacją załadowaną w sposób pokazany poniżej. Otwarto plik README.md. Możesz na razie zamknąć ten widok.

aaa3725b17ce27cf.png

4. Czatuj z Gemini

Zaczniemy od tego, jak zacząć korzystać z Gemini. Gemini jest dostępny jako asystent czatu w Cloud Shell IDE w ramach rozszerzenia Cloud Code w VS Code. Aby go wyświetlić, kliknij przycisk Gemini na pasku nawigacyjnym po lewej stronie. Znajdź ikonę Gemini a489f98a34898727.png na lewym pasku nawigacyjnym i kliknij ją.

Spowoduje to wyświetlenie panelu Google Chat: GeminiI w Cloud Shell IDE. Możesz w nim porozmawiać z Gemini, aby uzyskać pomoc w Google Cloud.

14ad103efaa0ddaa.png

Użyjmy panelu czatu z Gemini, aby wpisać prompt i wyświetlić odpowiedź z Gemini. Wpisz ten prompt:

What is Cloud Run? 

Gemini powinien odpowiedzieć, podając szczegóły dotyczące Cloud Run. Prompty to pytania lub oświadczenia, które opisują potrzebną pomoc. Prompty mogą zawierać kontekst z istniejącego kodu, który analizuje Google Cloud, aby dostarczyć bardziej przydatne lub pełne odpowiedzi. Więcej informacji o tworzeniu promptów w celu generowania dobrych odpowiedzi znajdziesz w artykule Tworzenie lepszych promptów dla Gemini w Google Cloud (w języku angielskim).

Aby zadać pytania dotyczące Google Cloud, wypróbuj te przykładowe prompty lub swoje:

  • What is the difference between Cloud Run and Cloud Functions?
  • What services are available on Google Cloud to run containerized workloads?
  • What are the best practices to optimize costs while working with Google Cloud Storage?

Zwróć uwagę na ikonę kosza u góry – to dobry sposób na zresetowanie kontekstu historii czatu z Asystentem do tworzenia kodu. Pamiętaj też, że interakcja na czacie jest uzależniona od kontekstu w odniesieniu do plików, nad którymi pracujesz w IDE.

5. Objaśnienie kodu

Aby pomóc Ci zwiększyć produktywność i jednocześnie zminimalizować przełączanie kontekstu, Gemini Code Assist udostępnia inteligentne działania oparte na AI bezpośrednio w edytorze kodu. Po wybraniu kodu w edytorze kodu możesz wyświetlić i wybrać z listy działania odpowiednie do Twojego kontekstu.

Gemini Code Assist pomoże Ci zrozumieć fragmenty kodu aplikacji. Wróć do aplikacji utworzonej w poprzednim kroku i możesz skorzystać z Gemini Code Assist, aby wyjaśnić pliki i kod, które są dostępne w Twoim IDE.

  1. Jeśli pliki nie są widoczne, na pasku aktywności IDE kliknij Explorer ( Menu Eksploratora OSS Code).
  2. W panelu Eksploratora wybierz Dockerfile.
  3. Możesz zaznaczyć dowolną część zawartości pliku, kliknąć żarówkę ( Kod żarówki OSS Duet AI), a następnie kliknąć Gemini: wyjaśniaj to. Na przykład wybierz wiersz zaczynający się od ENTRYPOINT, kliknij żarówkę ( Kod żarówki OSS Duet AI), a następnie kliknij Gemini: wyjaśniaj to. Gemini generuje w języku naturalnym wyjaśnienie dotyczące konkretnej sekcji pliku Dockerfile, o której potrzebujesz więcej informacji. W odpowiedzi Gemini podaje szczegółowe informacje na temat instrukcji ENTRYPOINT. Dowiadujesz się, że dzięki tej instrukcji Docker uruchomi plik app.py po uruchomieniu kontenera.
  4. Aby wyświetlić zawartość pliku app.py, na pasku aktywności kliknij Eksplorator ( Menu Eksploratora OSS Code), a następnie app.py.
  5. W definicji funkcji hello() możesz wybrać wiersze, o których chcesz dowiedzieć się więcej. Następnie kliknij żarówkę ( Kod żarówki OSS Duet AI) i Gemini : wyjaśnij to. W naszym przykładzie wybraliśmy 2 wiersze kodu i aktywowaliśmy działanie Gemini: Wyjaśnij to.

14d9c56af016b65d.png

  1. W odpowiedzi Gemini podaje szczegółowe objaśnienie 2 zmiennych środowiskowych Cloud Run (K_SERVICE, K_REVISION) oraz sposób ich wykorzystania w kodzie aplikacji. Pamiętaj, że Gemini ma swoją wiedzę o Google Cloud i usługach takich jak Cloud Run nie tylko omówiła kod Pythona, ale także uwzględniła kontekst znaczenia tych zmiennych w Cloud Run.

Aby uzyskać wyjaśnienia dotyczące kodu, wypróbuj te dodatkowe sposoby:

  1. Zachowaj app.py jako aktualnie otwarty plik w IDE. W VS Code otwórz panel czatu z Gemini na lewym pasku nawigacyjnym i wpisz prompt Wyjaśnij ten plik. Spowoduje to analizę całego pliku i wyjaśnienie go.
  2. Możesz też zaznaczyć dowolną część pliku, a następnie w panelu czatu z Gemini po lewej stronie wpisać prompt Wyjaśnij to. Spowoduje to wyjaśnienie tylko zaznaczonej części pliku. To działanie jest podobne do kliknięcia żarówki( Kod żarówki OSS Duet AI), a następnie kliknięcia Gemini: wyjaśnij to.
  3. Możesz też zaznaczyć fragment tekstu i kliknąć Gemini: inteligentne działania w prawym górnym rogu IDE, jak pokazano poniżej, aby wyświetlić listę działań, które można wykonać na zaznaczonym tekście. Jedna z tych opcji to działanie Wyjaśnij to:

adeb72acd708174.png

6. Generowanie kodu za pomocą promptów

Ta sekcja pokazuje, jak używać Gemini Code Assist do generowania kodu na podstawie komentarzy.

Wypróbujmy te funkcje. Wykonaj te czynności:

  1. Utwórz nowy plik o nazwie utils.py.
  2. W nowym pliku kodu wpisz w nowym wierszu # Function to print a list of blobs in a Google Cloud Storage bucket, a następnie naciśnij Enter (Windows i Linux) lub Return (MacOS). Gemini może próbować wygenerować kod podczas pisania, ale go nie zaakceptuje. W następnym kroku aktywujemy generowanie kodu.
  3. Aby uruchomić wygenerowanie kodu, naciśnij Control+Enter (Windows i Linux) lub Control+Return (MacOS). Obok tekstu promptu w pliku Pythona usługa Gemini Code Assist generuje kod w postaci tekstu w postaci ducha. Wyświetli się jedna lub więcej sugestii dotyczących kodu z paskiem narzędzi, który umożliwia przechodzenie od jednej sugestii dotyczącej kodu do drugiej (jeśli jest ich wiele). Możesz nawet zaakceptować dowolną sugestię dotyczącą kodu na pasku narzędzi. Jeśli nie widzisz paska narzędzi lub zniknie, najedź kursorem na wygenerowany kod, aby pojawił się ponownie.
  4. Opcjonalnie: aby zaakceptować wygenerowany kod, naciśnij Tab. Jeśli pojawi się wiele sugestii, możesz wielokrotnie nacisnąć Tab, aby przejść od jednego sugerowanego fragmentu kodu do następnego.

Spowoduje to wstawienie zatwierdzonego kodu w pliku utils.py. Poniżej znajduje się przykładowy zrzut ekranu. Dostarczony Ci kod może się różnić od tego widocznego poniżej. Jeśli zostaną wygenerowane dodatkowe metody, możesz je usunąć po zaakceptowaniu kodu.

d6d7915885c5e74b.png

Zwróć uwagę na falistą linię wokół kodu. Dowiedz się, jak działa Cytowanie kodu. Gdy najedziesz kursorem na dowolny wiersz, pojawi się źródło kodu i inne informacje związane z licencjonowaniem. Przykład poniżej:

c7473cadcf15d887.png

Następnie możesz zignorować ostrzeżenie o cytacie, klikając Szybkie poprawianie .... Spowoduje to wyświetlenie proponowanej szybkiej poprawki. Oto przykład:

10f4672830954c90.png

Jeśli zgadzasz się na zaakceptowanie licencji na kod, możesz wybrać opcję Ignoruj ostrzeżenie o cytowaniu.

(Opcjonalnie) Oto kilka innych sugestii, które warto wypróbować przy generowaniu kodu:

  1. Możesz też użyć funkcji czatu z Gemini, żeby zadać ten sam prompt i otrzymać odpowiedź w oknie czatu. Następnie w interfejsie czatu zostaną wyświetlone opcje umożliwiające skopiowanie kodu lub wstawienie go do bieżącego pliku.
  2. Przetestuj własne prompty, aby uzyskać przykładowy kod. Poniżej znajdziesz kilka sugestii (przy założeniu, że jesteś w jednym z plików Pythona): lub wybierz jeden z promptów widocznych poniżej:
  • Napisz kod w Pythonie, aby opublikować wiadomość w Google Cloud Pub/Sub
  • Pisanie kodu w Pythonie w celu zainicjowania klienta BigQuery
  • Napisz kod w Pythonie, aby połączyć moją aplikację z Cloud SQL

7. Otrzymuj wbudowane sugestie dotyczące kodu podczas programowania

Podczas pisania kodu Gemini Code Assist wyświetla wbudowane sugestie kodu, które możesz zaakceptować lub zignorować. Aby wypróbować tę funkcję, zmodyfikujemy plik utils.py utworzony w poprzedniej sekcji :

  1. Otwórz plik utils.py jako bieżący w IDE Cloud Shell.
  2. Możemy na przykład podać prawidłowe instrukcje import, jeśli nie ma ich w wygenerowanym kodzie.
  3. Zacznij wpisywać słowo import. Usługa Gemini Code Assist zasugeruje kod w postaci tekstu w postaci ducha. Aby zaakceptować sugerowany kod z usługi Gemini Code Assist, naciśnij Tab. Jeśli nie chcesz tego robić, naciśnij Esc lub kontynuuj pisanie kodu. Na przykładowym ekranie poniżej sugeruje zaimportowanie klasy storage, ponieważ jest ona używana w kodzie. Aby zaakceptować sugerowany kod, naciśnij Tab. To także sugerowane wyrażenie import os, ale ponieważ nie jest potrzebne, możemy je usunąć.

cb3dfff74172959d.png

  1. Na końcu pliku utils.py dodaj wiersz wywołujący funkcję, jeśli nie został on podany. W tym przypadku jest to funkcja print_blobs. Możesz zacząć wpisywać nazwę funkcji, a ukończenie kodu pomoże Ci dokończyć instrukcję.
  2. Musisz podać nazwę zasobnika i możesz użyć tej publicznej nazwy zasobnika : gemini-codeassist-bucket.Poniżej znajdziesz przykładowe wywołanie funkcji. Możesz zauważyć drobne różnice pod względem nazw funkcji itp.

print_blobs(bucket_name="gemini-codeassist-bucket")

(Opcjonalnie) Uruchamianie przykładowego kodu

Ponieważ napisaliśmy kod dający listę obiektów blob w zasobniku Google Cloud Storage, musimy zainstalować bibliotekę Pythona google-cloud-storage.

Otwórz plik requirements.txt i dodaj nowy wiersz z zależnością google-cloud-storage, jak pokazano poniżej. Przykładowy plik requirements.txt znajdziesz poniżej.

Flask==2.3.3
requests==2.31.0
debugpy # Required for debugging.
google-cloud-storage

Zapisz plik requirements.txt.

Aby zobaczyć, jak działa kod, będziemy musieli uruchomić nową sesję terminala w Cloud Shell IDE za pomocą ikony menu w lewym górnym rogu. Kliknij ikonę menu, a następnie Terminal → Nowy terminal, jak pokazano poniżej:

289173c68f1addb5.png

W sesji terminala zainstaluj zależności Pythona za pomocą tego polecenia:

pip3 install -r requirements.txt

Na koniec możesz uruchomić plik utils.py za pomocą tego polecenia:

python utils.py

Powinno to wyświetlić obiekty blob znajdujące się w publicznym zasobniku Google Cloud Storage. W wynikach powinny wyświetlić się 2 obiekty blob (file1.txt i file2.txt).

Rozwiązywanie problemów

W przypadku uzyskania dostępu podczas wyświetlania obiektów w powyższym zasobniku publicznym, możesz utworzyć własny zasobnik Google Cloud Storage i użyć go zamiast gemini-codeassist-bucket. W następnej sekcji znajdziesz wskazówki, jak to zrobić.

(Opcjonalnie) Tworzenie własnego zasobnika Cloud Storage

Skorzystaj z pomocy Gemini, aby przekazać nam polecenia tworzenia zasobnika, udostępnienia go publicznie i przesyłania do niego przykładowych obiektów.

Zacznij od następującego promptu: „Czym jest polecenie gcloud do utworzenia zasobnika publicznego w Google Cloud Storage?”

Powinno Ci to udostępnić polecenie gcloud do utworzenia zasobnika. Dokładne polecenie znajduje się poniżej:

gcloud storage buckets create gs://<BUCKET_NAME>

Wybierz unikalną nazwę elementu <BUCKET_NAME> i wykonaj polecenie w terminalu.

Gdy zasobnik został już utworzony, chcemy, aby był on dostępny publicznie. Poproś Gemini o to polecenie, wpisując w tym promptie: „Jak ustawić zasobnik Google Cloud Storage jako dostępny publicznie?”

Powinno to spowodować wyświetlenie polecenia gcloud, które sprawi, że będzie on publicznie dostępny. Odpowiedź powinna wyglądać mniej więcej tak:

gcloud storage buckets add-iam-policy-binding gs://<BUCKET_NAME> --member=allUsers --role=roles/storage.objectViewer

Zastąp <BUCKET_NAME> wcześniej używaną nazwą zasobnika i wykonaj polecenie.

Na koniec chcemy przesłać do zasobnika kilka przykładowych plików. Wykonaj w terminalu te polecenia (pamiętaj, by zastąpić zmienną <BUCKET_NAME> nazwą swojego zasobnika).

touch f1.txt
touch f2.txt

gcloud storage cp f1.txt gs://<BUCKET_NAME>
gcloud storage cp f2.txt gs://<BUCKET_NAME>

Możesz teraz wykonać plik utils.py za pomocą zasobnika <BUCKET_NAME> zamiast gemini-codeassist-bucket.

Czyszczenie

Jeśli masz własny zasobnik Google Cloud Storage, zdecydowanie zalecamy jego usunięcie, aby uniknąć opłat i potencjalnych zagrożeń bezpieczeństwa.

Możesz usunąć zasobnik za pomocą tego polecenia:

gcloud storage buckets delete gs://<BUCKET_NAME>

8. Gratulacje!

Gratulujemy – udało Ci się z pomocą Gemini Code Assist na przykładowym projekcie zrozumieć, jak może on pomóc w generowaniu, uzupełnianiu i podsumowywaniu kodu, a także w uzyskiwaniu odpowiedzi na pytania dotyczące Google Cloud.

Dokumentacja