Omówienie funkcji Gemini Code Assist Standard i Enterprise w edytorze Google Cloud Shell dla deweloperów

1. Wprowadzenie

W tym module skorzystasz z Gemini Code Assist, opartej na AI usługi wspomagającej w Google Cloud. Dowiesz się, jak korzystać z Gemini Chat i pomocy w kodowaniu w tekście, aby generować kod, rozumieć go i wykonywać inne zadania związane z kodowaniem przy użyciu AI.

Co musisz zrobić...

  • Za pomocą środowiska IDE Cloud Shell pobierzesz istniejący szablon kodu aplikacji internetowej.
  • Będziesz używać Gemini Chat w środowisku IDE Cloud Shell, aby zadawać ogólne pytania dotyczące Google Cloud.
  • Będziesz używać Gemini Code Assist – pomocy przy kodowaniu w wierszu w środowisku IDE Cloud Shell do generowania, podsumowywania i uzupełniania kodu.

Czego się nauczysz...

  • Jak korzystać z Gemini Code Assist w przypadku różnych zadań programistycznych, takich jak generowanie, uzupełnianie i streszczanie kodu.
  • Jak korzystać z Cloud Assist, aby dowiedzieć się więcej o Google Cloud.

Co będzie Ci potrzebne...

  • przeglądarki Chrome,
  • konto Gmail,
  • Projekt w chmurze z włączonymi płatnościami
  • Usługa Gemini Code Assist jest włączona w Twoim projekcie w Cloud

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

2. Konfiguracja

W tej sekcji znajdziesz wszystko, co musisz zrobić, aby rozpocząć ten moduł.

Włączanie Cloud Assist w projekcie Google Cloud

Teraz włączymy Cloud Assist w projekcie Google Cloud. Wykonaj te czynności:

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

28f084ec1e159938.png

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

3d9ae68104b49a5b.png

  1. Po włączeniu tej funkcji możesz przetestować Cloud Assist, zadając 1–2 pytania. Wyświetlonych jest kilka przykładowych zapytań, ale możesz też wypróbować zapytanie What is Cloud Run?.

27835a44c7b7f7c.png

Cloud Assist odpowie na Twoje pytanie. Aby zamknąć okno czatu Cloud Assist, w prawym górnym rogu kliknij ikonę f68286b2b2ea5c0a.png.

Włączanie Gemini Code Assist w środowisku IDE Cloud Shell

W pozostałej części tego samouczka będziemy używać Cloud Shell IDE, w pełni zarządzanego środowiska programistycznego opartego na Code OSS. Musimy włączyć i skonfigurować Code Assist w środowisku IDE Cloud Shell. Poniżej znajdziesz instrukcje:

  1. Otwórz stronę ide.cloud.google.com. Wyświetlenie środowiska IDE może zająć trochę czasu, więc uzbrój się w cierpliwość.
  2. Na pasku stanu u dołu kliknij przycisk Cloud Code – zaloguj się, jak pokazano na ilustracji. Autoryzuj wtyczkę zgodnie z instrukcjami. Jeśli na pasku stanu widzisz „Cloud Code – brak projektu”, wybierz tę opcję, a następnie wybierz z listy projekt Google Cloud, z którym chcesz pracować.

609d1645201cc7a3.png

  1. Kliknij przycisk Gemini w prawym dolnym rogu, jak pokazano, i jeszcze raz wybierz właściwy projekt w chmurze Google. Jeśli pojawi się prośba o włączenie interfejsu Gemini for Google Cloud API, zrób to i przejdź dalej.
  2. Po wybraniu projektu Google Cloud sprawdź, czy jest on widoczny w komunikacie o stanie Cloud Code na pasku stanu oraz czy po prawej stronie na pasku stanu masz włączoną funkcję Code Assist, jak pokazano poniżej:

365a09ae0c4b1ac6.png

Usługa Gemini Code Assist jest gotowa do użycia.

Opcjonalnie: jeśli nie widzisz Gemini na pasku stanu w prawym dolnym rogu, musisz włączyć Gemini w Cloud Code. Zanim to zrobisz, upewnij się, że Gemini jest włączony w IDE. W tym celu otwórz rozszerzenie Cloud Code → Ustawienia, a następnie wpisz tekst Gemini, jak pokazano poniżej. Sprawdź, czy pole wyboru jest zaznaczone. Należy ponownie załadować IDE.Włączy to Gemini w Cloud Code, a ikona Gemini na pasku stanu pojawi się w IDE.

3741f07b73a939c8.png

3. Tworzenie przykładowej aplikacji

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

Wykonaj te czynności:

  1. Na pasku stanu poniżej kliknij nazwę projektu Google Cloud.

d3652354efac576d.png

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

91ea9836f38b7f74.png

  1. Wybierz aplikację Cloud Run.
  2. Wybierz szablon aplikacji Python (Flask): Cloud Run.
  3. Zapisz nową aplikację w wybranej lokalizacji.
  4. Pojawi się powiadomienie potwierdzające utworzenie aplikacji, a w nowym oknie otworzy się aplikacja, jak pokazano poniżej. Otworzy się plik README.md. Możesz na razie zamknąć ten widok.

aaa3725b17ce27cf.png

4. Czat z Gemini

Zacznijmy od nauki czatowania z Gemini. Gemini jest dostępny jako asystent czatu w środowisku IDE Cloud Shell w ramach rozszerzenia Cloud Code w VS Code. Aby go otworzyć, kliknij przycisk Gemini na pasku nawigacyjnym po lewej stronie. Na pasku narzędzi nawigacyjnych po lewej stronie znajdź ikonę Gemini a489f98a34898727.png i kliknij ją.

Spowoduje to wyświetlenie panelu Czat: Gemini w środowisku IDE Cloud Shell. Możesz czatować z Gemini, aby uzyskać pomoc dotyczącą Google Cloud.

41bbcb85e89f4ff4.png

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

What is Cloud Run? 

Gemini powinien odpowiedzieć, podając szczegóły dotyczące Cloud Run. Prompty to pytania lub stwierdzenia opisujące, w czym potrzebujesz pomocy. Prompty mogą zawierać kontekst z istniejącego kodu, który Google Cloud analizuje, aby udzielać bardziej przydatnych lub pełniejszych odpowiedzi. Więcej informacji o pisaniu promptów, które generują dobre odpowiedzi, znajdziesz w artykule Pisanie lepszych promptów dla Gemini w Google Cloud.

Wypróbuj te prompty lub dowolne inne, aby zadawać pytania o Google Cloud:

  • 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?

U góry zobaczysz ikonę kosza na śmieci – to sposób na zresetowanie kontekstu historii czatu Code Assist. Pamiętaj też, że ta rozmowa na czacie jest powiązana z plikami, nad którymi pracujesz w IDE.

5. Wyjaśnienie kodu

Aby zwiększyć Twoją produktywność i ograniczyć 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ć listę działań odpowiednich w danym kontekście i wybrać z niej odpowiednie działanie.

Gemini Code Assist może pomóc Ci zrozumieć fragmenty kodu aplikacji. Wróć do aplikacji utworzonej w poprzednim kroku i użyj Gemini Code Assist, aby wyjaśnić pliki i kod dostępne w IDE.

  1. Jeśli pliki nie są widoczne, na pasku aktywności IDE kliknij Eksplorator ( Menu Eksploratora Code OSS).
  2. W panelu Eksplorator wybierz Dockerfile.
  3. Możesz wybrać dowolną część zawartości pliku, kliknąć żarówkę ( Żarówka Duet AI w Code OSS), a następnie kliknąć Gemini: wyjaśnij to. Na przykład wybierz wiersz rozpoczynający się od ENTRYPOINT, kliknij żarówkę ( Żarówka Duet AI w Code OSS), a następnie kliknij Gemini: wyjaśnij to. Gemini wygeneruje wyjaśnienie w języku naturalnym dotyczące konkretnej sekcji pliku Dockerfile, o której chcesz dowiedzieć się więcej. Gemini odpowiada szczegółami 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 Code OSS), a następnie wybierz app.py.
  5. W definicji funkcji hello() możesz wybrać wiersze, o których chcesz dowiedzieć się więcej. Następnie kliknij ikonę żarówki ( Żarówka Duet AI w Code OSS) i wybierz Gemini : wyjaśnij to. W naszym przykładzie wybraliśmy te 2 wiersze kodu, a następnie wywołaliśmy działanie Gemini: wyjaśnij.

14d9c56af016b65d.png

  1. Gemini odpowiada szczegółowym wyjaśnieniem tych 2 zmiennych środowiskowych Cloud Run (K_SERVICE, K_REVISION) i sposobu ich użycia w kodzie aplikacji. Pamiętaj, że Gemini, dzięki swojej wiedzy o Google Cloud i usługach takich jak Cloud Run, nie tylko wyjaśnił kod Pythona, ale także podał kontekst, w jakim te zmienne są używane w Cloud Run.

Wypróbuj te dodatkowe sposoby uzyskiwania wyjaśnień kodu:

  1. Pozostaw app.py jako aktualnie otwarty plik w IDE. Otwórz panel rozmowy z Gemini na pasku nawigacyjnym po lewej stronie w VS Code i wpisz prompt Wyjaśnij ten plik. Uwzględni cały plik i wyjaśni go.
  2. Możesz też wybrać dowolną część pliku, a następnie użyć panelu rozmowy z Gemini po lewej stronie i wpisać prompt Wyjaśnij to. Wyjaśniona zostanie tylko wybrana część pliku. To tak, jakby kliknąć żarówkę Żarówka Duet AI w Code OSS, a następnie Gemini: wyjaśnij to.
  3. Możesz też zaznaczyć część 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. Jedną z tych opcji będzie działanie Wyjaśnij to:

fb4d25c7d9240f14.png

6. Generowanie kodu za pomocą promptów

W tej sekcji dowiesz się, 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 z kodem w nowym wierszu wpisz # Function to print a list of blobs in a Google Cloud Storage bucket, a następnie naciśnij Enter (w systemach Windows i Linux) lub Return (w systemie macOS). Gemini może próbować generować kod podczas pisania, ale nie akceptuj go. W następnym kroku wywołamy generowanie kodu.
  3. Aby wywołać generowanie kodu, naciśnij Control+Enter (w systemach Windows i Linux) lub Control+Return (w systemie macOS). Obok tekstu prompta w pliku Pythona Gemini Code Assist wygeneruje kod w postaci szarego tekstu. Wyświetli on co najmniej jedną sugestię kodu z paskiem narzędzi, za pomocą którego możesz przechodzić między sugestiami (jeśli jest ich więcej). Możesz nawet zaakceptować dowolną z sugerowanych opcji kodu za pomocą paska narzędzi. Jeśli nie widzisz paska narzędzi lub zniknął, najedź kursorem na wygenerowany kod, aby ponownie się pojawił.
  4. Opcjonalnie: aby zaakceptować wygenerowany kod, naciśnij Tab. Jeśli jest kilka sugestii, możesz nacisnąć Tab kilka razy, aby przechodzić między sugerowanymi fragmentami kodu.

Spowoduje to wstawienie zaakceptowanego kodu do pliku utils.py. Przykładowy zrzut ekranu znajdziesz poniżej. Kod, który otrzymasz, może się różnić od kodu pokazanego poniżej. Jeśli wygenerowane zostaną dodatkowe metody, możesz je usunąć po zaakceptowaniu kodu.

d6d7915885c5e74b.png

W kodzie mogą się pojawić lub nie pojawić faliste linie. Jeśli tak jest, to cytowanie kodu działa prawidłowo. Jeśli najedziesz kursorem na dowolną linię, wyświetli się atrybucja kodu i inne istotne informacje dotyczące licencji. Przykład znajdziesz poniżej:

c7473cadcf15d887.png

Możesz zignorować ostrzeżenie o cytowaniu, klikając Szybka poprawka…. Wyświetli się sugestia szybkiej poprawki, której przykładowa wersja jest pokazana poniżej:

10f4672830954c90.png

Jeśli akceptujesz licencję kodu, możesz kliknąć Ignore Citation Warning (Zignoruj ostrzeżenie o cytowaniu).

(Opcjonalnie) Oto kilka innych sugestii dotyczących generowania kodu:

  1. Możesz też użyć funkcji rozmowy z Gemini, aby zadać ten sam prompt i uzyskać odpowiedź w oknie czatu. W interfejsie Google Chat pojawią się opcje skopiowania kodu lub wstawienia go do bieżącego pliku.
  2. Wypróbuj własne prompty, aby uzyskać przykładowy kod, który Cię interesuje. Poniżej znajdziesz kilka sugestii (zakładamy, że jesteś w jednym z plików Pythona): lub wybierz jedną z poniższych podpowiedzi:
  • Pisanie kodu w Pythonie do publikowania wiadomości w Google Cloud Pub/Sub
  • Napisz kod w Pythonie, aby zainicjować klienta BigQuery
  • Pisanie kodu w Pythonie, aby połączyć aplikację z Cloud SQL

7. Otrzymuj sugestie kodu podczas pisania

Podczas pisania kodu Gemini Code Assist wyświetla sugestie dotyczące kodu w tekście, 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 plik w środowisku IDE Cloud Shell.
  2. Możemy na przykład dodać do wygenerowanego kodu prawidłowe instrukcje import, jeśli ich tam nie ma.
  3. Zacznij pisać słowo import, a Gemini Code Assist powinien zaproponować kod w formie tekstu widma. Aby zaakceptować sugestię kodu od Gemini Code Assist, naciśnij Tab. Aby zignorować sugestię, naciśnij Esc lub kontynuuj pisanie kodu. Na przykładowym ekranie poniżej sugeruje się zaimportowanie klasy storage, ponieważ jest ona używana w kodzie. Aby zaakceptować sugerowany kod, naciśnij Tab. Jest to również sugerowane import os, ale ponieważ nie jest to konieczne, możemy je usunąć.

cb3dfff74172959d.png

  1. Przejdź na koniec pliku utils.py i dodaj wiersz, aby wywołać funkcję, jeśli nie jest on podany. W tym przypadku jest to funkcja print_blobs. Możesz po prostu zacząć wpisywać nazwę funkcji, a funkcja uzupełniania kodu pomoże Ci dokończyć instrukcję.
  2. Musisz podać nazwę zasobnika. Możesz użyć tej publicznej nazwy zasobnika : gemini-codeassist-bucket. Poniżej znajdziesz przykładowe wywołanie funkcji. Pamiętaj, że mogą występować niewielkie różnice w nazwach funkcji itp.

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

(Opcjonalnie) Uruchom przykładowy kod

Ponieważ napisaliśmy kod do wyświetlania listy 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. Poniżej znajduje się przykładowy plik requirements.txt.

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

Zapisz plik requirements.txt.

Aby zobaczyć działanie kodu, musimy uruchomić nową sesję terminala w edytorze Cloud Shell, klikając ikonę 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

Powinny się wyświetlić obiekty blob znajdujące się w publicznym zasobniku Cloud Storage. W danych wyjściowych powinny się wyświetlić 2 obiekty blob (file1.txtfile2.txt).

Rozwiązywanie problemów

Jeśli podczas wyświetlania obiektów w powyższym publicznym zasobniku pojawi się błąd „access”, możesz utworzyć własny zasobnik Google Cloud Storage i używać go zamiast gemini-codeassist-bucket. W następnej sekcji dowiesz się, jak to zrobić.

(Opcjonalnie) Tworzenie własnego zasobnika Cloud Storage

Poprośmy Gemini o podanie poleceń umożliwiających utworzenie zasobnika, ustawienie go jako dostępnego publicznie i przesłanie do niego przykładowych obiektów.

Zacznij od tego prompta: „Jakie jest polecenie gcloud do utworzenia publicznego zasobnika w Google Cloud Storage?”

Powinno to spowodować wyświetlenie polecenia gcloud do utworzenia zasobnika. Dokładne polecenie znajdziesz poniżej:

gcloud storage buckets create gs://<BUCKET_NAME>

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

Utworzyliśmy już zasobnik i chcemy, aby był on publicznie dostępny. Zapytajmy Gemini o polecenie, które to umożliwi, używając tego promptu: „Jak udostępnić zasobnik Google Cloud Storage publicznie?”

Powinno to dać polecenie gcloud, które umożliwi publiczny dostęp. 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> nazwą zasobnika, której używasz, i wykonaj polecenie.

Na koniec prześlemy do zasobnika kilka przykładowych plików. Uruchom w terminalu te polecenia (pamiętaj, aby 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, używając nazwy <BUCKET_NAME> zamiast gemini-codeassist-bucket.

Czyszczenie

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

Zasobnik możesz usunąć za pomocą tego polecenia:

gcloud storage buckets delete gs://<BUCKET_NAME>

8. Gratulacje!

Gratulacje! Udało Ci się skorzystać z Gemini Code Assist w projekcie przykładowym, aby dowiedzieć się, jak może on pomagać w generowaniu, uzupełnianiu i podsumowywaniu kodu oraz w uzyskiwaniu odpowiedzi na pytania dotyczące Google Cloud.

Dokumentacja