1. Visão geral
Neste laboratório, você vai configurar o fluxo de trabalho das ações do GitHub e integrá-lo ao Gemini para automatizar as etapas de revisão de código.
O que você vai aprender
Você vai aprender a:
- Como adicionar etapas de automação de análise de código do GenAI no GitHub
- Como executar a CLI devai localmente para automatizar as análises de código
Pré-requisitos
- Para fazer este laboratório, é preciso saber usar o console do Cloud e os ambientes do Cloud Shell.
2. Configuração e requisitos
Configuração do projeto do Cloud
- Faça login no Console do Google Cloud e crie um novo projeto ou reutilize um existente. Crie uma conta do Gmail ou do Google Workspace, se ainda não tiver uma.
- O Nome do projeto é o nome de exibição para os participantes do projeto. É uma string de caracteres não usada pelas APIs do Google e pode ser atualizada quando você quiser.
- O ID do projeto precisa ser exclusivo em todos os projetos do Google Cloud e não pode ser mudado após a definição. O console do Cloud gera automaticamente uma string exclusiva. Em geral, não importa o que seja. Na maioria dos codelabs, é necessário fazer referência ao ID do projeto, normalmente identificado como
PROJECT_ID
. Se você não gostar do ID gerado, crie outro aleatório. Se preferir, teste o seu e confira se ele está disponível. Ele não pode ser mudado após essa etapa e permanece durante o projeto. - Para sua informação, há um terceiro valor, um Número do projeto, que algumas APIs usam. Saiba mais sobre esses três valores na documentação.
- Em seguida, ative o faturamento no console do Cloud para usar os recursos/APIs do Cloud. A execução deste codelab não vai ser muito cara, se tiver algum custo. Para encerrar os recursos e evitar cobranças além deste tutorial, exclua os recursos criados ou exclua o projeto. Novos usuários do Google Cloud estão qualificados para o programa de US$ 300 de avaliação sem custos.
Configuração do ambiente
Abra o chat do Gemini.
Ou digite "Pergunte ao Gemini" na barra de pesquisa.
Ative a API Cloud AI Companion:
Clique em Start chatting
e siga uma das perguntas de exemplo ou digite seu próprio comando para testar.
Sugestões de comandos:
- Explicar o Cloud Run em cinco pontos principais.
- Você é gerente de produto do Google Cloud Run e explica o Cloud Run para um estudante em cinco pontos-chave.
- Você é gerente de produto do Google Cloud Run e explica o Cloud Run para um desenvolvedor certificado do Kubernetes em cinco pontos-chave.
- Você é gerente de produto do Google Cloud Run e explica a um desenvolvedor sênior em cinco pontos principais quando usar o Cloud Run em vez do GKE.
Confira o guia de comandos para saber como escrever comandos melhores.
Como o Gemini para o Google Cloud usa seus dados
Compromisso do Google com a privacidade
O Google foi um dos primeiros no setor a publicar um compromisso de privacidade de IA/ML, que descreve que os clientes precisam ter o mais alto nível de segurança e controle sobre os dados armazenados na nuvem.
Dados que você envia e recebe
As perguntas que você faz ao Gemini, incluindo qualquer informação de entrada ou código que você envia para análise ou conclusão, são chamadas de comandos. As respostas ou códigos que você recebe do Gemini são chamados de respostas. O Gemini não usa seus comandos nem as respostas deles como dados para treinar os modelos.
Criptografia de instruções
Quando você envia comandos para o Gemini, os dados são criptografados em trânsito como entrada para o modelo subjacente no Gemini.
Dados do programa gerados pelo Gemini
O Gemini é treinado com base no código próprio do Google Cloud e em códigos de terceiros selecionados. Você é responsável pela segurança, testes e eficácia do seu código, incluindo qualquer preenchimento, geração ou análise de código que o Gemini oferece.
Saiba mais sobre como o Google processa suas solicitações.
3. Opções para testar solicitações
Se você quiser mudar/ampliar os comandos de cli devai, você tem várias opções para isso.
O Vertex AI Studio faz parte da plataforma Vertex AI do Google Cloud, projetada especificamente para simplificar e acelerar o desenvolvimento e o uso de modelos de IA generativa.
O Google AI Studio é uma ferramenta baseada na Web para prototipagem e experimentação com engenharia de comando e a API Gemini.
- Web app Gemini (gemini.google.com)
O web app Gemini (gemini.google.com) é uma ferramenta baseada na Web projetada para ajudar você a explorar e usar o poder dos modelos de IA do Gemini do Google.
- App Google Gemini para dispositivos móveis no Android e Google app no iOS
4. Criar a conta de serviço
Ative o Cloud Shell clicando no ícone à direita da barra de pesquisa.
No terminal aberto, ative os serviços necessários para usar as APIs Vertex AI e o chat Gemini.
gcloud services enable \
aiplatform.googleapis.com \
cloudaicompanion.googleapis.com \
cloudresourcemanager.googleapis.com \
secretmanager.googleapis.com
Se for preciso autorizar, clique em "Autorizar" para continuar.
Execute os comandos a seguir para criar uma nova conta de serviço e chaves.
Você vai usar essa conta de serviço para fazer chamadas de API para a API Gemini da Vertex AI de pipelines 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"
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. Bifurcar o repositório do GitHub para o repositório pessoal do GitHub
Acesse https://github.com/GoogleCloudPlatform/genai-for-developers/fork e selecione seu ID de usuário do GitHub como proprietário.
Desmarque a opção para copiar apenas a ramificação "main".
Clique em "Create fork
".
6. Ativar o fluxo de trabalho do GitHub Actions
Abra o repositório do GitHub bifurcado no navegador e mude para a guia "Actions
" para ativar os fluxos de trabalho.
7. Adicionar segredos de repositório
Crie um segredo de repositório em "Settings / Secrets and variables / Actions
" no repositório do GitHub bifurcado.
Adicione o secret do repositório com o nome "GOOGLE_API_CREDENTIALS
".
Mude para a janela/guia do Google Cloud Shell e execute o comando abaixo no terminal do Cloud Shell.
cat ~/vertex-client-key.json
Copie o conteúdo do arquivo e cole como um valor para o secret.
Adicione o segredo PROJECT_ID
com o ID do projeto do Qwiklabs como um valor:
8. Executar o fluxo de trabalho do GitHub Actions
Acesse seu repositório do GitHub no navegador e execute o fluxo de trabalho.
O fluxo de trabalho está configurado para ser executado em envio de código ou execução manual.
Analisar resultados:
Resultados do comando de cobertura de teste:
devai review testcoverage -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Resultados do comando de análise de código:
devai review code -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Resultados do comando de análise de desempenho:
devai review performance -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Resultados do comando de análise de segurança:
devai review security -c ${{ github.workspace }}/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Resultados do comando "Analisar bloqueadores":
devai review blockers -c ${{ github.workspace }}/sample-app/pom.xml
9. Clonar o repositório
Volte ao terminal do Cloud Shell e clone o repositório.
Mude YOUR-GITHUB-USERID
para o ID do usuário do GitHub antes de executar os comandos.
git clone https://github.com/YOUR-GITHUB-USERID/genai-for-developers.git
Mude a pasta e abra o arquivo de fluxo de trabalho no editor do Cloud Shell.
cd genai-for-developers
cloudshell edit .github/workflows/devai-review.yml
Aguarde até que o arquivo de configuração seja exibido no ambiente de desenvolvimento integrado.
10. Ativar o Gemini Code Assist
Clique no ícone Gemini
no canto inferior direito .
Clique em "Login to Google Cloud
" e "Select a Google Cloud Project
".
Na janela pop-up, selecione seu projeto do Qwiklabs.
11. Explicar o código com o Gemini Code Assist
Clique com o botão direito do mouse em qualquer lugar do arquivo devai-review.yml
e selecione Gemini Code Assist > Explain
este.
Explicação da revisão:
12. Executar a CLI do DEVAI localmente
Volte ao terminal do Cloud Shell e execute os comandos abaixo para instalar o devai
localmente.
pip3 install devai-cli
A CLI foi instalada, mas não está no PATH.
WARNING: The script devai is installed in '/home/student_00_478dfeb8df15/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Execute o comando abaixo para atualizar a variável de ambiente PATH. Substitua pelo nome da pasta pessoal do usuário. Por exemplo: student_00_478dfeb8df15
export PATH=$PATH:/home/YOUR-USER-HOME-FOLDER/.local/bin
Execute o comando devai cli para realizar a revisão de código localmente. Analise a saída da CLI.
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1
cd ~/genai-for-developers
devai review code -c ./sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Abra o script de análise executando o comando abaixo:
cloudshell edit devai-cli/src/devai/commands/review.py
Clique com o botão direito do mouse em qualquer lugar do arquivo review.py
e selecione Gemini Code Assist > Explain
este.
Leia a explicação.
13. Desenvolvimento da CLI do DevAI
Nesta seção, você vai fazer mudanças no devai cli.
Para começar, configure o virtualenv do Python, instale os requisitos e execute o comando de exemplo.
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
Execute novamente o comando de análise de código para conferir se tudo está funcionando corretamente:
devai review code -c ~/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader
Analise os resultados usando a visualização Markdown no editor do Cloud Shell.
Crie um novo arquivo e cole a resposta do Gemini.
Em seguida, use a paleta de comandos e selecione "Markdown: Open Preview
".
14. Conheça os comandos da CLI deva
Comando de revisão de código
devai review code -c ~/genai-for-developers/sample-app/src/main/java
Comando de análise de performance
devai review performance -c ~/genai-for-developers/sample-app/src/main/java
Comando de análise de segurança
devai review security -c ~/genai-for-developers/sample-app/src/main/java
Comando de análise da cobertura de teste
devai review testcoverage -c ~/genai-for-developers/sample-app/src
Comandos de análise de bloqueadores
devai review blockers -c ~/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/genai-for-developers/sample-app/setup.md
Revisão e resumo de imagens/diagramas:
Diagrama de entrada[~/genai-for-developers/images/extension-diagram.png
]:
Revisar comando:
devai review image \
-f ~/genai-for-developers/images/extension-diagram.png \
-p "Review and summarize this diagram"
Saída:
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.
Análise de diferença de imagem:
devai review imgdiff \
-c ~/genai-for-developers/images/devai-api.png \
-t ~/genai-for-developers/images/devai-api-slack.png
Saída:
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.
Comando de geração de documentação:
devai document readme -c ~/genai-for-developers/sample-app/src/main/
Saída:
# 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 ...
Confira os comandos decli devai disponíveis no editor do Cloud Shell:
cloudshell edit ~/genai-for-developers/devai-cli/README.md
Ou consulte o README.md no repositório do GitHub.
15. Parabéns!
Parabéns, você concluiu o codelab.
O que aprendemos:
- Como adicionar etapas de automação de análise de código do GenAI no GitHub
- Como executar a CLI devai localmente
O que vem em seguida:
- Mais sessões práticas estão chegando!
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto ou mantenha o projeto e exclua cada um dos recursos.
Excluir o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para este tutorial.
©2024 Google LLC Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.