Omówienie funkcji Gemini Code Assist Standard i Enterprise w edytorze Google Cloud Shell dla deweloperów
Informacje o tym ćwiczeniu (w Codelabs)
1. Wprowadzenie
W tym module użyjesz Gemini Code Assist, czyli opartej na AI usługi wspomagającej w Google Cloud. Poznasz sposoby korzystania z Gemini Chat i pomocy w pisaniu kodu w ramach tego narzędzia do generowania kodu, interpretowania kodu i wykonywania innych zadań związanych z kodowaniem przy użyciu AI.
Co musisz zrobić...
- Aby pobrać istniejący szablon kodu aplikacji internetowej, użyjesz środowiska IDE Cloud Shell.
- Korzystając z Gemini Chat w Cloud Shell IDE, możesz zadawać ogólne pytania dotyczące Google Cloud.
- W środowisku IDE Cloud Shell możesz używać funkcji wstawiania kodu przez Gemini Code Assist w celu generowania, podsumowywania i uzupełniania kodu.
Czego się nauczysz…
- Jak korzystać z Gemini Code Assist do wykonywania różnych zadań programistycznych, takich jak generowanie kodu, uzupełnianie kodu i streszczanie kodu.
- Jak korzystać z Cloud Assist, aby dowiedzieć się więcej o Google Cloud.
Co będzie Ci potrzebne…
- przeglądarka Chrome,
- konto Gmail,
- projekt w chmurze z włączonymi płatnościami,
- Gemini Code Assist jest włączona w Twoim projekcie Cloud
Ten moduł jest przeznaczony dla deweloperów na wszystkich poziomach, w tym początkujących. Przykładowa aplikacja jest napisana w języku Python, ale nie musisz znać tego języka, aby zrozumieć, co się dzieje. Naszym celem będzie zapoznanie się z możliwościami Gemini Code Assist dla deweloperów.
2. Konfiguracja
W tej sekcji znajdziesz wszystko, co musisz zrobić, aby rozpocząć pracę z tym laboratorium.
Włączanie Cloud Assist w projekcie Google Cloud
Teraz włączymy Cloud Assist w projekcie Google Cloud. Wykonaj te czynności:
- Wejdź na https://console.cloud.google.com i sprawdź, czy wybrany jest projekt Google Cloud, z którym będziesz pracować w tym laboratorium. W prawym górnym rogu kliknij ikonę Otwarte Gemini.
- Po prawej stronie konsoli otworzy się okno czatu Cloud Assist. Kliknij przycisk Włącz, jak pokazano na rysunku. Jeśli nie widzisz przycisku Włącz, a zamiast tego widzisz interfejs czatu, prawdopodobnie masz już włączoną usługę Cloud Assist w tym projekcie i możesz przejść od razu do następnego kroku.
- Po włączeniu tej funkcji możesz przetestować Cloud Assist, prosząc o wyświetlenie kilku promptów. Wyświetla się kilka przykładowych zapytań, ale możesz też wypróbować coś takiego:
What is Cloud Run?
Cloud Assist odpowie na Twoje pytanie. Aby zamknąć okno czatu Cloud Assist, w prawym górnym rogu kliknij ikonę .
Włączanie Gemini Code Assist w Cloud Shell IDE
W dalszej części tego ćwiczenia będziemy używać Cloud Shell IDE, czyli w pełni zarządzanego środowiska programistycznego opartego na Code OSS. Musimy włączyć i skonfigurować Code Assist w IDE Cloud Shell. Aby to zrobić, wykonaj te czynności:
- Otwórz stronę ide.cloud.google.com. Poczekaj chwilę, aż IDE się uruchomi.
- Na pasku stanu na dole kliknij przycisk Cloud Code – Zaloguj się. Autoryzuj wtyczkę zgodnie z instrukcjami. Jeśli na pasku stanu widzisz „Cloud Code – brak projektu”, kliknij tę opcję, a następnie wybierz konkretny projekt Google Cloud z listy projektów, nad którymi chcesz pracować.
- W prawym dolnym rogu kliknij przycisk Gemini i po raz ostatni wybierz odpowiedni projekt Google Cloud. Jeśli pojawi się prośba o włączenie interfejsu Gemini for Google Cloud API, zrób to i kontynuuj.
- Po wybraniu projektu Google Cloud sprawdź, czy na pasku stanu Cloud Code widać komunikat o stanie Cloud Code. Sprawdź też, czy po prawej stronie na pasku stanu masz włączone narzędzie Code Assist.
Gemini Code Assist jest gotowe 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łączone w IDE. Aby to zrobić, otwórz Cloud Code Extension → Settings (Rozszerzenie Cloud Code → Ustawienia) i wpisz Gemini, jak pokazano poniżej. Upewnij się, że pole wyboru jest zaznaczone. Zaktualizuj środowisko IDE. W ten sposób włączysz Gemini w Cloud Code. Ikona Gemini pojawi się na pasku stanu w IDE.
3. Tworzenie przykładowej aplikacji
Utworzymy przykładową aplikację (aplikację Flask w Pythonie), której użyjemy do zapoznania się z funkcjami asystenta kodu w Gemini.
Aby to zrobić:
- Na pasku stanu poniżej kliknij nazwa projektu Google Cloud.
- Pojawi się lista opcji. Na liście poniżej kliknij Nowa aplikacja.
- Wybierz aplikację Cloud Run.
- Wybierz szablon aplikacji Python (Flask): Cloud Run.
- Zapisz nową aplikację w wybranym miejscu.
- Pojawi się powiadomienie potwierdzające utworzenie aplikacji. Otworzy się nowe okno z załadaną aplikacją, jak pokazano poniżej. Otwiera się plik
README.md
. Możesz na razie zamknąć to okno.
4. Czat z Gemini
Zaczniemy od tego, jak rozmawiać z Gemini. Gemini jest dostępny jako asystent na czacie w Cloud Shell IDE w ramach rozszerzenia Cloud Code w VS Code. Możesz go otworzyć, klikając przycisk Gemini na lewym pasku nawigacyjnym. W panelu nawigacyjnym po lewej stronie kliknij ikonę Gemini .
Spowoduje to wyświetlenie okna Czat: Gemini w środowisku IDE Cloud Shell. Możesz wtedy porozmawiać na czacie z Gemini, aby uzyskać pomoc w Google Cloud.
Użyj panelu czatu Gemini, aby wpisać prompt i wyświetlić odpowiedź Gemini. Wpisz ten prompt:
What is Cloud Run?
Gemini powinien odpowiedzieć z szczegółami dotyczącymi Cloud Run. Prompty to pytania lub stwierdzenia opisujące pomoc, której potrzebujesz. Prompty mogą zawierać kontekst z dotychczasowego kodu, który Google Cloud analizuje, aby udzielać bardziej przydatnych lub pełnych odpowiedzi. Więcej informacji o pisaniu promptów, które generują dobre odpowiedzi, znajdziesz w artykule Tworzenie lepszych promptów dla Gemini w Google Cloud.
Aby zadać pytania dotyczące Google Cloud, możesz skorzystać z tych przykładowych promptów lub zaproponować własne:
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 znajdziesz ikonę kosza na śmieci. Pozwala ona zresetować kontekst historii czatu Code Assist. Pamiętaj też, że ta rozmowa na czacie jest kontekstowa w stosunku do plików, nad którymi pracujesz w IDE.
5. Wyjaśnienie kodu
Aby pomóc Ci zwiększyć produktywność przy jednoczesnym minimalizowaniu potrzeby przełączania 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 dla danego kontekstu i wybrać jedno z nich.
Możesz używać Gemini Code Assist, aby lepiej zrozumieć części kodu aplikacji. Wróć do aplikacji utworzonej w poprzednim kroku i użyj Gemini Code Assist, aby uzyskać informacje o plikach i kodzie dostępnych w Twoim środowisku IDE.
- Jeśli pliki są niewidoczne, na pasku aktywności IDE kliknij Eksplorator (
).
- W panelu Eksplorator wybierz Dockerfile.
- Możesz wybrać dowolną część zawartości pliku, kliknąć żarówkę (
), a następnie Gemini: wyjaśnij to. Wybierz na przykład wiersz rozpoczynający się od ENTRYPOINT, kliknij żarówkę (
), a następnie Gemini: wyjaśnij to. Gemini generuje wyjaśnienie w języku naturalnym dotyczące konkretnej sekcji pliku Dockerfile, o której chcesz dowiedzieć się więcej. Gemini odpowiada szczegółami dotyczącymi instrukcji ENTRYPOINT. Dowiedz się, że dzięki tym instrukcjom Docker uruchomi plik
app.py
podczas uruchamiania kontenera. - Aby wyświetlić zawartość pliku
app.py
, na pasku aktywności kliknij Eksplorator (), a następnie wybierz
app.py
. - W definicji funkcji hello() możesz wybrać wiersze, o których chcesz dowiedzieć się więcej. Następnie kliknij żarówkę (
), a potem Gemini : wyjaśnij to. W naszym przykładzie wybraliśmy 2 wiersze kodu, a następnie wywołaliśmy działanie Gemini: Explain this.
- Gemini odpowiada, podając szczegółowe wyjaśnienie tych 2 zmiennych środowiska Cloud Run (
K_SERVICE, K_REVISION
) i sposobu ich użycia w kodzie aplikacji. Pamiętaj, że Gemini, który ma doświadczenie z Google Cloud i usługami takimi jak Cloud Run, nie tylko wyjaśnił kod Pythona, ale także podał kontekst, w którym występują te zmienne w Cloud Run.
Aby uzyskać wyjaśnienie kodu, możesz też skorzystać z tych dodatkowych metod:
- Plik app.py pozostaw jako otwarty plik w IDE. Otwórz panel czatu Gemini na pasku nawigacyjnym po lewej stronie w VS Code i wpisz prompt Explain this file (Wyjaśnij ten plik). W ten sposób możesz przeanalizować cały plik i poznać jego szczegóły.
- Możesz też wybrać dowolną część pliku, a następnie użyć panelu czatu Gemini po lewej stronie, aby wpisać prompt Explain this (Wyjaśnij to). W ten sposób zostanie wyjaśniona tylko wybrana część pliku. Jest to podobne do kliknięcia żarówki(
), a następnie Gemini: Wyjaśnij to.
- Możesz też zaznaczyć część tekstu i w prawym górnym rogu IDE kliknąć Gemini: inteligentne działania (jak pokazano na ilustracji 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:
6. Generowanie kodu z promptami
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:
- Utwórz nowy plik o nazwie
utils.py
. - W nowym pliku kodu na nowej linii wpisz
# Function to print a list of blobs in a Google Cloud Storage bucket
, a potem naciśnijEnter
(w systemie Windows i Linux) lubReturn
(w systemie macOS). Gemini może próbować wygenerować kod podczas pisania, ale nie akceptuje go. W następnym kroku specjalnie uruchomimy generowanie kodu. - Aby wywołać wygenerowanie kodu, naciśnij
Control+Enter
(w systemie Windows i Linux) lubControl+Return
(w systemie macOS). Obok promptu w pliku Pythona Gemini Code Assist generuje kod w postaci tekstu niewidocznego. Uzyskasz sugestie kodu z paskiem narzędzi, za pomocą którego możesz przechodzić od jednej sugestii do drugiej (jeśli jest ich więcej). Możesz nawet zaakceptować dowolną sugestię kodu za pomocą paska narzędzi. Jeśli nie widzisz paska narzędzi lub zniknie on z ekranu, najedź kursorem na wygenerowany kod, aby go ponownie wyświetlić. - Opcjonalnie: aby zaakceptować wygenerowany kod, naciśnij
Tab
. Jeśli jest kilka sugestii, możesz kilkakrotnie nacisnąćTab
, aby przejść od jednego sugerowanego fragmentu kodu do następnego.
Spowoduje to wstawienie kodu, który zaakceptowałeś/zaakceptowałaś, do pliku utils.py
. Poniżej znajdziesz przykładowy zrzut ekranu. Kod, który otrzymasz, może się różnić od tego, który jest widoczny poniżej. Jeśli wygenerowane zostaną dodatkowe metody, możesz je usunąć po zaakceptowaniu kodu.
W kodzie mogą pojawić się linie faliste. Jeśli tak, to jest cytowanie kodu w akcji. Jeśli najedziesz kursorem na dowolny wiersz, zobaczysz informacje o autorze kodu i inne istotne informacje dotyczące licencji. Poniżej znajdziesz przykład:
Możesz zignorować ostrzeżenie o cytacie, klikając Szybka poprawka.... Spowoduje to wyświetlenie sugerowanej szybkiej poprawki. Przykład takiej poprawki znajdziesz poniżej:
Jeśli akceptujesz licencję kodu, możesz wybrać Ignoruj ostrzeżenie o cytowaniu.
(Opcjonalnie) Oto kilka innych sugestii dotyczących generowania kodu:
- Możesz też użyć funkcji czatu Gemini, aby zadać to samo promptowanie i uzyskać odpowiedź w oknie czatu. W interfejsie Google Chat pojawią się opcje kopiowania kodu lub wstawiania go do bieżącego pliku.
- Wypróbuj własne prompty, aby uzyskać przykładowy kod. Poniżej znajdziesz kilka sugestii (zakładając, że jesteś w jednym z plików Pythona): lub wybierz jedną z poniższych opcji:
- Pisanie kodu Pythona do publikowania wiadomości w Google Cloud Pub/Sub
- Tworzenie kodu Pythona do inicjowania klienta BigQuery
- Tworzenie kodu Pythona do łączenia aplikacji z Cloud SQL
7. Wyświetlaj sugestie kodu podczas pisania
Podczas pisania kodu Gemini Code Assist wyświetla sugestie kodu, które możesz zaakceptować lub zignorować. Aby wypróbować tę funkcję, zmodyfikujemy plik utils.py
utworzony w poprzedniej sekcji :
- Otwórz plik
utils.py
jako bieżący plik w środowisku IDE Cloud Shell. - Możemy na przykład podać prawidłowe instrukcje
import
, jeśli nie występują one w wygenerowanym kodzie. - Zacznij wpisywać słowo
import
, a Gemini Code Assist powinien zaproponować kod w postaci tekstu widmo. Aby zaakceptować sugestię kodu z Gemini Code Assist, naciśnijTab
. Aby zignorować sugestię, naciśnijEsc
lub kontynuuj wpisywanie kodu. Na przykładowym ekranie poniżej sugerujemy zaimportowanie klasystorage
, ponieważ jest ona używana w kodzie. Aby zaakceptować sugestię kodu, naciśnijTab
. Sugerowane jest też oświadczenieimport os
, ale ponieważ nie jest ono potrzebne, możemy je usunąć.
- Przejdź na koniec pliku
utils.py
i dodaj wiersz wywołania funkcji, jeśli nie został podany. W tym przypadku jest to funkcjaprint_blobs
. Wystarczy, że zaczniesz wpisywać nazwę funkcji, a uzupełnianie kodu dokończy za Ciebie instrukcję. - Musisz podać nazwę zasobnika (bucket_name). Możesz użyć tej publicznej nazwy zasobnika :
gemini-codeassist-bucket
. Przykładowe wywołanie funkcji zostało pokazane poniżej. Pamiętaj, że mogą wystąpić drobne różnice w nazwach funkcji itp.
print_blobs(bucket_name="gemini-codeassist-bucket")
(Opcjonalnie) Uruchamianie przykładowego kodu
Ponieważ napisaliśmy kod, który wyświetla listę blobów w zasobniku Google Cloud Storage, musimy zainstalować bibliotekę Pythona google-cloud-storage
.
Otwórz plik requirements.txt
i dodaj nową linię 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ć kod w akcji, musimy uruchomić nową sesję terminala z poziomu Cloud Shell IDE, klikając ikonę menu w lewym górnym rogu. Kliknij ikonę menu, a następnie Terminal → Nowy terminal, jak pokazano na ilustracji:
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ę tam wyświetlić bloby znajdujące się w publicznym zasobniku Google Cloud Storage. W idealnej sytuacji w danych wyjściowych powinny być widoczne 2 bloby (file1.txt
i file2.txt
).
Rozwiązywanie problemów
Jeśli podczas wyświetlania obiektów w powyższym publicznym zasobie pojawi się błąd „dostęp”, możesz utworzyć własny zasób Google Cloud Storage i użyć go zamiast gemini-codeassist-bucket
. W następnej sekcji dowiesz się, jak to zrobić.
(Opcjonalnie) Utwórz własny zasobnik Cloud Storage
Użyj Gemini, aby uzyskać polecenia tworzenia zasobnika, udostępniania go publicznie i przesyłania do niego przykładowych obiektów.
Zacznij od tego prompta: "What is the gcloud command to create a public bucket in Google Cloud Storage?"
Powinieneś otrzymać polecenie gcloud do utworzenia zasobnika. Dokładne polecenie:
gcloud storage buckets create gs://<BUCKET_NAME>
Wybierz niepowtarzalną nazwę dla <BUCKET_NAME>
i wykonaj polecenie w terminalu.
Gdy utworzyliśmy już zasobnik, chcemy, aby był on dostępny publicznie. Poprośmy Gemini o polecenie, które to umożliwi, używając tego prompta: "How do I make a google cloud storage bucket publicly accessible?"
Powinien on zawierać polecenie gcloud, które umożliwia udostępnienie go publicznie. 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 użytego wcześniej i wykonaj polecenie.
Na koniec chcemy przesłać do zasobnika kilka przykładowych plików. Uruchom te polecenia w terminalu (pamiętaj, aby zastąpić zmienną <BUCKET_NAME>
nazwą zasobnika).
touch f1.txt touch f2.txt gcloud storage cp f1.txt gs://<BUCKET_NAME> gcloud storage cp f2.txt gs://<BUCKET_NAME>
Teraz możesz uruchomić plik utils.py
, podając swoją nazwę zasobnika <BUCKET_NAME> zamiast gemini-codeassist-bucket
.
Czyszczenie
Jeśli masz utworzony własny zasobnik Google 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ę pracować z Gemini Code Assist nad przykładowym projektem, aby poznać jego możliwości w zakresie generowania, uzupełniania i podsumowywania kodu oraz uzyskiwania odpowiedzi na pytania dotyczące Google Cloud.