Informacje o tym ćwiczeniu (w Codelabs)
1. Omówienie
W tym laboratorium skonfigurujesz przepływ pracy GitHub Actions i zintegrujesz go z Gemini, aby zautomatyzować weryfikację kodu.
Czego się nauczysz
W tym laboratorium nauczysz się:
- Jak dodać kroki automatyzacji sprawdzania kodu za pomocą GenAI w GitHubie
- Jak uruchomić devai na komputerze lokalnym, aby zautomatyzować sprawdzanie kodu
Wymagania wstępne
- Ten moduł zakłada, że znasz środowiska Cloud Console i Cloud Shell.
2. Konfiguracja i wymagania
Konfiguracja projektu Cloud
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.
- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, którego nie używają interfejsy API Google. Zawsze możesz ją zaktualizować.
- Identyfikator projektu jest niepowtarzalny w ramach wszystkich projektów Google Cloud i nie można go zmienić (po ustawieniu). Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie ma znaczenia, jaki to ciąg. W większości laboratoriów z kodem musisz podać identyfikator projektu (zwykle oznaczony jako
PROJECT_ID
). Jeśli nie podoba Ci się wygenerowany identyfikator, możesz wygenerować inny losowy. Możesz też spróbować użyć własnego adresu e-mail, aby sprawdzić, czy jest on dostępny. Po wykonaniu tego kroku nie można go zmienić. Pozostanie on na stałe w ramach projektu. - Informacyjnie: istnieje jeszcze 3 wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć rozliczenia w konsoli Cloud, aby korzystać z zasobów i interfejsów API Cloud. Przejście przez ten samouczek nie będzie kosztowne. Aby wyłączyć zasoby i uniknąć obciążenia opłatami po zakończeniu samouczka, możesz usunąć utworzone zasoby lub usunąć projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Konfiguracja środowiska
Otwórz czat Gemini.
Możesz też wpisać „Zapytaj Gemini” na pasku wyszukiwania.
Włączanie Gemini for Google Cloud API:
Kliknij „Start chatting
” i wybierz jedno z przykładowych pytań lub wpisz własne prompty, aby je wypróbować.
Prompty do wypróbowania:
- Opisz Cloud Run w 5 kluczowych punktach.
- Jesteś menedżerem produktu Google Cloud Run. Wyjaśnij studentowi, na czym polega Cloud Run, w 5 krótkich punktach.
- Jesteś menedżerem produktu Cloud Run w Google. Wyjaśnij certyfikowanemu deweloperowi Kubernetes, na czym polega Cloud Run, w 5 kluczowych punktach.
- Jesteś menedżerem produktu Cloud Run w Google i chcesz wyjaśnić starszemu deweloperowi, kiedy należy używać Cloud Run, a kiedy GKE. W tym celu przedstawiasz 5 krótkich kluczowych punktów.
Aby dowiedzieć się więcej o pisaniu lepszych promptów, zapoznaj się z przewodnikiem po promptach.
Jak Gemini dla Google Cloud korzysta z Twoich danych
Zobowiązanie Google do ochrony prywatności
Google jako jedna z pierwszych firm w branży opublikowała zobowiązanie do ochrony prywatności w systemach AI/ML, w którym wyraziliśmy przekonanie, że klienci powinni mieć najwyższy poziom bezpieczeństwa i kontroli nad swoimi danymi przechowywanymi w chmurze.
Dane, które przesyłasz i odbierasz
Pytania, które zadajesz Gemini, w tym wszelkie informacje wejściowe lub kod, które przesyłasz do Gemini w celu analizy lub uzupełnienia, nazywamy promptami. Odpowiedzi lub dokończenia kodu, które otrzymujesz od Gemini, nazywane są odpowiedziami. Gemini nie używa Twoich promptów ani swoich odpowiedzi jako danych do trenowania swoich modeli.
Szyfrowanie promptów
Gdy przesyłasz prompty do Gemini, Twoje dane są szyfrowane podczas przesyłania i przekazywane do modelu podstawowego w Gemini.
Dane programu wygenerowane przez Gemini
Gemini jest trenowany na podstawie kodu własnego Google Cloud oraz wybranego kodu innych firm. Ponosisz odpowiedzialność za bezpieczeństwo, testowanie i skuteczność kodu, w tym za uzupełnianie, generowanie i analizowanie kodu przez Gemini.
Dowiedz się więcej o tym, jak Google radzi sobie z Twoimi prośbami.
3. Opcje testowania promptów
Jeśli chcesz zmienić lub rozszerzyć istniejące prompty devai cli, masz do dyspozycji kilka opcji.
Vertex AI Studio jest częścią platformy Vertex AI w Google Cloud, która została zaprojektowana z myślą o uproszczeniu i przyspieszeniu tworzenia oraz stosowania modeli generatywnej AI.
Google AI Studio to internetowe narzędzie do tworzenia prototypów i eksperymentowania z inżynierią promptów oraz interfejsem Gemini API.
- Aplikacja internetowa Gemini (gemini.google.com)
Aplikacja internetowa Google Gemini (gemini.google.com) to narzędzie internetowe, które ułatwia poznawanie i wykorzystywanie potencjału modeli sztucznej inteligencji Gemini od Google.
- aplikację mobilną Google Gemini na Android i aplikację Google na iOS.
4. Utwórz konto usługi
Aktywuj Cloud Shell, klikając ikonę po prawej stronie paska wyszukiwania.
W otwartym terminalu włącz wymagane usługi, aby korzystać z interfejsów API Vertex AI i czatu Gemini.
gcloud services enable \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
cloudresourcemanager.googleapis.com \
secretmanager.googleapis.com
Jeśli pojawi się pytanie o autoryzację, kliknij „Autoryzuj”, aby kontynuować.
Aby utworzyć nowe konto usługi i klucze, uruchom te polecenia.
Użyjesz tego konta usługi do wywoływania interfejsu API Vertex AI Gemini z pipeline’ów CICD.
PROJECT_ID=$(gcloud config get-value project)
SERVICE_ACCOUNT_NAME='vertex-client'
DISPLAY_NAME='Vertex Client'
KEY_FILE_NAME='vertex-client-key'
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --display-name "$DISPLAY_NAME"
Przypisz role.
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.admin" --condition None
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor" --condition None
gcloud iam service-accounts keys create $KEY_FILE_NAME.json --iam-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com
5. Utwórz rozwidlenie repozytorium GitHub na swoim osobistym repozytorium GitHub
Otwórz stronę https://github.com/GoogleCloudPlatform/genai-for-developers/fork i wybierz swój identyfikator użytkownika GitHuba jako właściciela.
Kliknij „Create fork
”.
6. Włączanie przepływu pracy GitHub Actions
Otwórz rozwidlone repozytorium GitHub w przeglądarce i przełącz się na kartę „Actions
”, aby włączyć workflow.
7. Dodawanie obiektów tajnych repozytorium
Utwórz obiekt tajny repozytorium w sekcji „Settings / Secrets and variables / Actions
” w rozwidlonym repozytorium GitHub.
Dodaj obiekt tajny repozytorium o nazwie „GOOGLE_API_CREDENTIALS
”.
Przełącz się na okno lub kartę Google Cloud Shell i uruchom w terminalu Cloud Shell podane niżej polecenie.
cat ~/vertex-client-key.json
Skopiuj zawartość pliku i wklej ją jako wartość obiektu tajnego.
Dodaj obiekt tajny PROJECT_ID
, podając jako wartość identyfikator projektu Qwiklabs:
8. Uruchamianie przepływu pracy GitHub Actions
Otwórz w przeglądarce repozytorium GitHub i uruchom przepływ pracy.
Przepływ pracy jest skonfigurowany tak, aby działał na żądanie.
9. Sprawdzanie danych wyjściowych przepływu pracy
Omówienie poleceń dotyczących potoków
Konfiguracja przepływu pracy GitHub Actions: devai-review.yml
Wyniki polecenia dotyczącego pokrycia testem:
devai review testcoverage -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Ten polecenie devai review testcoverage
analizuje kod i powiązany z nim zestaw testów (jeśli jest dostępny) za pomocą modelu generatywnej AI Gemini. Ocenia pokrycie testów dostarczonego kodu, identyfikując pliki i metody z testami jednostkowymi lub bez nich. Następnie polecenie korzysta z modelu, aby podać podsumowanie pokrycia, w tym dane takie jak objęte linie i odgałęzi/warunki. Na podstawie analizy zaleca, jak zwiększyć zasięg testów, sugeruje, które testy należy dodać, i podaje ogólne wskazówki dotyczące sprawdzonych metod testowania. Na koniec generuje odpowiedź modelu Gemini, która zawiera szczegóły takie jak pliki bez pokrycia, oraz sugestie dotyczące ulepszenia istniejących testów, które użytkownik otrzymuje w wierszu poleceń.
Wyniki polecenia sprawdzania kodu:
devai review code -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Polecenie devai review code
przeprowadza kompleksową kontrolę kodu w ramach przesłanego fragmentu kodu za pomocą modelu generatywnej AI. Kod musi zostać sprawdzony jako dane wejściowe (kontekst) i ustawienie formatu wyjściowego (dane wyjściowe). Korzysta on z dużego modelu językowego, aby analizować kod pod kątem poprawności, wydajności, możliwości utrzymania, bezpieczeństwa i zgodności ze sprawdzonymi metodami. Polecenie tworzy szczegółowy prompt, który instruuje Gemini, jak przeprowadzić weryfikację, a potem wysyła go do modelu, aby ocenił podany kod. Na koniec przetwarza odpowiedź Gemini, formatując ją w formacie markdown, JSON lub tabeli zgodnie z preferencjami użytkownika, i wyprowadza wyniki weryfikacji.
Wyniki polecenia sprawdzania zgodności:
devai review compliance -c ${{ github.workspace }}/sample-app/k8s --config ${{ github.workspace }}/devai-cli/gemini/styleguide.md
Polecenie devai review compliance
analizuje kod pod kątem zestawu sprawdzonych metod, zwykle w przypadku konfiguracji Kubernetes. Polecenie to wykorzystuje model Gemini do sprawdzenia przesłanego kodu (context
) i porównania go ze standardami określonymi w osobnym pliku konfiguracji (config
). Polecenie wykorzystuje prompt, aby polecić modelowi Gemini działanie jako eksperta ds. inżynierii Kubernetes i przedstawienie raportu zgodności. Następnie formatuje wyniki w postaci krótkiego wyjaśnienia, koncentrując się na przykładach kodu, które pokazują, jak rozwiązać wykryte problemy. Na koniec polecenie wydrukuje w konsoli wyniki sprawdzenia zgodności Gemini. Dzięki temu użytkownik może łatwo sprawdzić, czy jego kod jest zgodny z wymaganiami.
10. Klonowanie repozytorium
Wróć do terminala Cloud Shell i sklonuj repozytorium.
Przed wykonaniem poleceń zmień YOUR-GITHUB-USERID
na swój identyfikator użytkownika GitHub.
git clone https://github.com/YOUR-GITHUB-USERID/genai-for-developers.git
Zmień folder i otwórz plik workflow w edytorze Cloud Shell.
cd genai-for-developers
cloudshell edit .github/workflows/devai-review.yml
Poczekaj, aż plik konfiguracji wyświetli się w IDE.
11. Wyjaśnianie kodu za pomocą Gemini Code Assist
Kliknij prawym przyciskiem myszy dowolne miejsce w pliku devai-review.yml
i wybierz Gemini Code Assist > Explain
.
Wyjaśnienie dotyczące weryfikacji:
12. Rozwój interfejsu wiersza poleceń DevAI
W tej sekcji wprowadzisz zmiany w devai cli
.
Na początek skonfiguruj wirtualne środowisko Pythona, zainstaluj wymagane komponenty i uruchom przykładowe polecenie.
cd ~/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo
Ustaw wymagane zmienne środowiskowe.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
Uruchom polecenie sprawdzania kodu, aby sprawdzić, czy wszystko działa prawidłowo:
devai review code -c ~/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader > code-review.md
cloudshell edit code-review.md
Sprawdź wyniki za pomocą podglądu Markdown w edytorze Cloud Shell.
Użyj palety poleceń i wybierz „Markdown: Open Preview
”.
13. Poznawanie poleceń interfejsu wiersza poleceń devai
Polecenie sprawdzania zasięgu testu
devai review testcoverage -c ~/genai-for-developers/sample-app/src > testcoverage.md
cloudshell edit testcoverage.md
Polecenie weryfikacji zgodności z zasadami
devai review compliance --context ~/genai-for-developers/sample-app/k8s --config ~/genai-for-developers/devai-cli/.gemini/styleguide.md > k8s-review.md
cloudshell edit k8s-review.md
Komenda sprawdzania wyników
devai review performance -c ~/genai-for-developers/sample-app/src/main/java > performance-review.md
cloudshell edit performance-review.md
Polecenie sprawdzania zabezpieczeń
devai review security -c ~/genai-for-developers/sample-app/src/main/java > security-review.md
cloudshell edit security-review.md
Polecenia dotyczące sprawdzania blokujących
devai review blockers -c ~/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/genai-for-developers/sample-app/setup.md
Sprawdzanie i podsumowanie obrazu lub diagramu
Diagram wejściowy [~/genai-for-developers/images/extension-diagram.png
]:
Sprawdź polecenie:
devai review image \
-f ~/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram" > image-review.md
cloudshell edit image-review.md
Dane wyjściowe:
The diagram outlines a process for conducting local code reviews using a VS Code extension or CLI, leveraging Google Cloud's Vertex AI (Gemini Pro) for generating review prompts. **Process Flow:** 1. **Code Style Check:** Developers initiate the process by checking their code for adherence to pre-defined style guidelines. 2. **Prompt Generation:** The VS Code extension/CLI sends the code to Vertex AI (Gemini Pro) on Google Cloud. 3. **Vertex AI Review:** Vertex AI analyzes the code and generates relevant review prompts. 4. **Local Review:** The prompts are sent back to the developer's IDE for their consideration. 5. **Optional Actions:** Developers can optionally: - Create new JIRA issues directly from the IDE based on the review prompts. - Generate new issues in a GitLab repository. **Key Components:** * **VS Code Extension/CLI:** Tools facilitating the interaction with Vertex AI and potential integrations with JIRA and GitLab. * **Vertex AI (Gemini Pro):** Google Cloud's generative AI service responsible for understanding the code and generating meaningful review prompts. * **Google Cloud Secret Manager:** Securely stores API keys and access tokens required to authenticate and interact with Google Cloud services. * **JIRA/GitLab (Optional):** Issue tracking and project management tools that can be integrated for a streamlined workflow. **Benefits:** * **Automated Review Assistance:** Leveraging AI to generate review prompts saves time and improves the consistency and quality of code reviews. * **Local Development:** The process empowers developers to conduct reviews locally within their familiar IDE. * **Integration Options:** The flexibility to integrate with project management tools like JIRA and GitLab streamlines workflow and issue tracking.
Analiza różnic w obrazach
devai review imgdiff \
-c ~/genai-for-developers/images/devai-api.png \
-t ~/genai-for-developers/images/devai-api-slack.png > image-diff-review.md
cloudshell edit image-diff-review.md
Dane wyjściowe:
The following UI elements are missing in the "AFTER UPGRADE STATE" image compared to the "BEFORE UPGRADE STATE" image: 1. **Slack:** The entire Slack element, including the icon, "Team channel" label, and the arrow indicating interaction, is absent in the AFTER UPGRADE image. 2. **Storage Bucket:** The "Storage Bucket" element with its icon and "PDFs" label is missing in the AFTER UPGRADE image. 3. **"GenAI Agents" label in Vertex AI block:** The BEFORE UPGRADE image has "Vertex AI Agents" and "GenAI Agent" labels within the Vertex AI block, while the AFTER UPGRADE image only has "Vertex AI." 4. **"Open JIRA Issue" and "Team Project" labels:** In the BEFORE UPGRADE image, these labels are connected to the JIRA block with an arrow. These are missing in the AFTER UPGRADE image. **Decision Explanation:** The analysis is based on a direct visual comparison of the two provided images, noting the presence and absence of specific UI elements and their associated labels. The elements listed above are present in the BEFORE UPGRADE image but absent in the AFTER UPGRADE image.
Analiza pliku wideo:
devai review video \
-f "/tmp/video.mp4" \
-p "Review user journey video and create unit tests using jest framework"
Polecenie generowania dokumentacji
devai document readme -c ~/genai-for-developers/sample-app/src/main/
Dane wyjściowe:
# Bank of Anthos - Balance Reader Service ## Description The Balance Reader service is a component of the Bank of Anthos sample application. It provides a REST endpoint for retrieving the current balance of a user account. This service demonstrates key concepts for building microservices with Spring Boot and deploying them to a Kubernetes cluster. ## Features ...
Sprawdź dostępne polecenia devai w edytorze Cloud Shell:
cloudshell edit ~/genai-for-developers/devai-cli/README.md
Możesz też zapoznać się z plikiem README.md w repozytorium GitHub.
14. Gratulacje!
Gratulacje! Masz ukończoną tę lekcję.
Omówione zagadnienia:
- Dodawanie kroków automatyzacji sprawdzania kodu za pomocą GenAI w GitHubie
- Uruchamianie interfejsu wiersza poleceń devai w środowisku lokalnym
Co dalej:
- Wkrótce odbędą się kolejne praktyczne sesje.
Czyszczenie danych
Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, możesz usunąć projekt zawierający te zasoby lub zachować projekt i usunąć poszczególne zasoby.
Usuwanie projektu
Najprostszym sposobem na uniknięcie płatności jest usunięcie projektu utworzonego na potrzeby samouczka.
©2024 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.