1. Visão geral
Implantar um aplicativo da Web pela primeira vez pode ser assustador. Mesmo após a primeira implantação, se o processo for muito trabalhoso, você poderá evitar a implantação de novas versões do aplicativo. Com a implantação contínua, você pode implantar mudanças no seu aplicativo de forma automática e fácil.
Neste laboratório, você vai criar um aplicativo da Web e configurar o Cloud Run para implantar automaticamente o aplicativo quando uma alteração for feita no código-fonte. Em seguida, modifique e implante o aplicativo novamente.
O que você vai aprender
- Programar um aplicativo da Web com o Cloud Shell Editor
- Armazenar o código do aplicativo no GitHub
- Implantar seu aplicativo automaticamente no Cloud Run
- Adicionar IA generativa ao seu aplicativo usando o Genkit
- Gerenciar comandos de LLM usando a biblioteca dotprompt
2. Pré-requisitos
- Se você ainda não tem uma Conta do Google, crie uma.
- Use uma conta pessoal em vez de uma conta de trabalho ou escolar. As contas escolares e de trabalho podem ter restrições que impedem a ativação das APIs necessárias para este laboratório.
- Se você ainda não tiver uma conta do GitHub, crie uma
- .
- Use uma conta do GitHub existente, se você tiver uma. O GitHub tem mais probabilidade de bloquear uma nova conta como spam.
- Configure a autenticação de dois fatores na sua conta do GitHub para reduzir as chances de sua conta ser marcada como spam.
3. Configurar o projeto
- Faça login no Console do Google Cloud.
- Ative o faturamento no Console do Cloud.
- A conclusão deste laboratório deve custar menos de US $1 em recursos do Cloud.
- Siga as etapas no final deste laboratório para excluir recursos e evitar cobranças.
- Novos usuários estão qualificados para o teste sem custo financeiro de US$300.
- Vai participar de um evento da IA generativa para desenvolvedores? Um crédito de US$1 pode estar disponível.
- Crie um novo projeto ou reutilize um projeto atual.
- Confirme se o faturamento está ativado em Meus projetos no Cloud Billing
- .
- Se o novo projeto mostrar
Billing is disabled
na colunaBilling account
:- Clique nos três pontos na coluna
Actions
. - Clique em Mudar faturamento.
- Selecione a conta de faturamento que você quer usar.
- Clique nos três pontos na coluna
- Se você estiver participando de um evento de IA de última geração para desenvolvedores, a conta provavelmente terá o nome Conta de faturamento de teste do Google Cloud Platform.
- Se o novo projeto mostrar
4. Abrir editor do Cloud Shell
- Acesse o editor do Cloud Shell.
- Se o terminal não aparecer na parte de baixo da tela, abra-o:
- Clique no menu de navegação
.
- Clique em Terminal.
- Clique em Novo Terminal.
- Clique no menu de navegação
- No terminal, defina o projeto com este comando:
- Formato:
gcloud config set project [PROJECT_ID]
- Exemplo:
gcloud config set project lab-project-id-example
- Se você não souber o ID do projeto:
- É possível listar todos os IDs de projetos com:
gcloud projects list | awk '/PROJECT_ID/{print $2}'
- É possível listar todos os IDs de projetos com:
- Formato:
- Se for preciso autorizar, clique em Autorizar para continuar.
- Você vai receber esta mensagem:
Se você receber umaUpdated property [core/project].
WARNING
e receber uma solicitaçãoDo you want to continue (Y/N)?
, provavelmente inseriu o ID do projeto incorretamente. PressioneN
, pressioneEnter
e tente executar o comandogcloud config set project
novamente.
5. Ativar APIs
No terminal, ative as APIs:
gcloud services enable \
run.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com
Esse comando pode levar alguns minutos para ser concluído, mas vai gerar uma mensagem de sucesso semelhante a esta:
Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.
6. Configurar o Git
- Defina o e-mail do usuário global do Git:
git config --global user.email "you@example.com"
- Defina seu nome de usuário global do Git:
git config --global user.name "Your Name"
- Defina a ramificação padrão global do Git como
main
:git config --global init.defaultBranch main
7. Escrever seu código
Para escrever um aplicativo em Node.js:
- Navegue até o diretório principal:
cd ~
- Crie o diretório
codelab-genai
:mkdir codelab-genai
- Navegue até o diretório
codelab-genai
:cd codelab-genai
- Crie um arquivo
index.js
:touch index.js
- Crie o arquivo
package.json
:npm init es6 -y
- Adicionar
express
como uma dependêncianpm install express
- Adicionar arquivo
.gitignore
para evitar o commit denode_modules
echo node_modules/ >> .gitignore
- Abra o arquivo
index.js
no editor do Cloud Shell: Um arquivo vazio vai aparecer na parte de cima da tela. É aqui que você pode editar o arquivocloudshell edit index.js
index.js
. - Copie e cole o código abaixo no arquivo
index.js
aberto: Depois de alguns segundos, o editor do Cloud Shell vai salvar o código automaticamente. Esse código responde a solicitações HTTP com a saudação "Hello world!".import express from 'express'; const app = express(); app.get('/', async (req, res) => { res.send('Hello world!'); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
O código inicial do aplicativo foi concluído e está pronto para ser armazenado no controle de versão.
8. Criar um repositório
- Volte ao terminal do Cloud Shell na parte de baixo da tela.
- Verifique se você ainda está no diretório correto:
cd ~/codelab-genai
- Inicializar seu repositório do Git
git init -b main
- Fazer login na CLI do GitHub
Pressionegh auth login
Enter
para aceitar as opções padrão e siga as instruções na ferramenta CLI do GitHub, incluindo:- Em qual conta você quer fazer login?
GitHub.com
- Qual é seu protocolo preferido para operações do Git neste host?
HTTPS
- Autenticar o Git com suas credenciais do GitHub?
Y
(pule se não aparecer) - Como você quer autenticar o GitHub CLI?
Login with a web browser
- Copiar o código único
- Abra https://github.com/login/device.
- Cole seu código único
- Clique em Autorizar GitHub.
- Concluir o login
- Em qual conta você quer fazer login?
- Confirme que você fez login:
Se você tiver feito login, o nome de usuário do GitHub vai aparecer.gh api user -q ".login"
- Criar uma variável
GITHUB_USERNAME
GITHUB_USERNAME=$(gh api user -q ".login")
- Confirme se você criou a variável de ambiente:
Se você criou a variável, o nome de usuário do GitHub vai ser exibido.echo ${GITHUB_USERNAME}
- Crie um repositório do GitHub vazio chamado
codelab-genai
: Se você receber o erro:gh repo create codelab-genai --private
Você já tem um repositório chamadoGraphQL: Name already exists on this account (createRepository)
codelab-genai
. Você tem duas opções para continuar seguindo este tutorial:- Excluir o repositório do GitHub
- Crie um repositório com um nome diferente e mude o nome nos comandos a seguir.
- Adicione o repositório
codelab-genai
como oorigin
remoto:git remote add origin https://github.com/${GITHUB_USERNAME}/codelab-genai
9. Compartilhar seu código
- Confirme se você está no diretório correto:
cd ~/codelab-genai
- Adicione todos os arquivos no diretório atual a este commit:
git add .
- Crie a primeira confirmação:
git commit -m "add http server"
- Envie a confirmação para a ramificação
main
do repositórioorigin
:git push -u origin main
Execute este comando e acesse o URL resultante para conferir o código do aplicativo no GitHub:
echo -e "\n\nTo see your code, visit this URL:\n \
https://github.com/${GITHUB_USERNAME}/codelab-genai/blob/main/index.js \n\n"
10. Configurar implantações automáticas
- Deixe a guia do editor do Cloud Shell aberta. Vamos voltar a esta guia mais tarde.
- Em uma nova guia, acesse a página do Cloud Run.
- Selecione o projeto correto do Google Cloud no console
- Clique em CONECTAR REPOSITÓRIO.
- Clique em CONFIGURAR COM O CLOUD BUILD
- .
- Selecione GitHub como o provedor do repositório
- .
- Se você não tiver feito login na sua conta do GitHub no navegador, faça login com suas credenciais.
- Clique em Autenticar e em Continuar.
- Depois de fazer login, uma mensagem vai aparecer na página do Cloud Run informando que o app GitHub não está instalado em nenhum dos seus repositórios.
- Clique no botão INSTALL GOOGLE CLOUD BUILD.
- Na página de configuração da instalação, selecione Somente repositórios selecionados e escolha o repositório codelab-genai que você criou pela CLI.
- Clique em Instalar.
- Observação: se você tiver muitos repositórios do GitHub, o carregamento pode levar alguns minutos.
- Selecione
your-user-name/codelab-genai
como Repositório- .
- Se o repositório não estiver presente, clique no link Gerenciar repositórios conectados.
- Deixe Ramificação como
^main$
- Clique em Go, Node.js, Python, Java, .NET Core, Ruby ou PHP usando os buildpacks do Google Cloud
- Deixe os outros campos (
Build context directory
,Entrypoint
eFunction target
) como estão.
- Deixe os outros campos (
- Clique em Salvar.
- Selecione GitHub como o provedor do repositório
- Role a tela para baixo até Autenticação.
- Clique em Permitir invocações não autenticadas.
- Clique em CRIAR.
Quando o build terminar (o que levará vários minutos), execute este comando e acesse o URL resultante para conferir o aplicativo em execução:
echo -e "\n\nOnce the build finishes, visit your live application:\n \
"$( \
gcloud run services list | \
grep codelab-genai | \
awk '/URL/{print $2}' | \
head -1 \
)" \n\n"
11. Mudar o código
Voltar ao editor do Cloud Shell
Se o editor do Cloud Shell ainda estiver aberto, pule estas etapas.
- Acesse o editor do Cloud Shell.
- Se o terminal não aparecer na parte de baixo da tela, abra-o:
- Clique no menu de navegação
.
- Clique em Terminal.
- Clique em Novo Terminal.
- Clique no menu de navegação
- No terminal, defina o projeto com este comando:
- Formato:
gcloud config set project [PROJECT_ID]
- Exemplo:
gcloud config set project lab-project-id-example
- Se você não souber o ID do projeto:
- É possível listar todos os IDs de projetos com:
gcloud projects list | awk '/PROJECT_ID/{print $2}'
- É possível listar todos os IDs de projetos com:
- Formato:
- Se for preciso autorizar, clique em Autorizar para continuar.
- Você vai receber esta mensagem:
Se você receber umaUpdated property [core/project].
WARNING
e receber uma solicitaçãoDo you want to continue (Y/N)?
, provavelmente inseriu o ID do projeto incorretamente. PressioneN
, pressioneEnter
e tente executar o comandogcloud config set project
novamente.
Adicionar o Genkit e a Vertex AI ao seu aplicativo
- Volte ao terminal do Cloud Shell na parte de baixo da tela.
- Verifique se você ainda está no diretório correto:
cd ~/codelab-genai
- Instale o SDK do Genkit para Node.js:
npm install @genkit-ai/ai
- Instale o SDK do Genkit para Node.js na Vertex AI:
npm install @genkit-ai/vertexai
- Reabrir
index.js
no editor do Cloud Shellcloudshell edit ~/codelab-genai/index.js
- Substitua o código no arquivo
index.js
por:import express from 'express'; const app = express(); import { genkit } from 'genkit'; import { gemini15Flash, vertexAI } from '@genkit-ai/vertexai'; const ai = genkit({ plugins: [ vertexAI({ location: 'us-central1' }), ], }); app.get('/', async (req, res) => { const animal = req.query.animal || 'dog'; const prompt = `Give me 10 fun facts about ${animal}. Return this as html without backticks.` const llmResponse = await ai.generate({ model: gemini15Flash, prompt: prompt, }); const html = llmResponse.text; res.send(html); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
- Verifique se você ainda está no diretório correto no Cloud Shell:
cd ~/codelab-genai
- Execute estes comandos para confirmar uma nova versão do aplicativo no repositório local do Git:
git add . git commit -m "add latest changes"
- Envie as alterações para o GitHub:
git push
- Quando o build terminar, execute este comando e acesse o aplicativo implantado:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Pode levar vários minutos para que o build seja concluído e você possa conferir as mudanças.
Confira o histórico de todas as revisões aqui: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
12. (Opcional) Usar arquivos .prompt com o Genkit
- Volte ao terminal do Cloud Shell na parte de baixo da tela.
- Verifique se você ainda está no diretório correto:
cd ~/codelab-genai
- Crie uma pasta
prompts
para armazenar as instruções:mkdir prompts
- Crie um arquivo
animal-facts.prompt
para criar seu primeiro comando:touch prompts/animal-facts.prompt
- Abra o arquivo
animal-facts.prompt
no editor do Cloud Shell:cloudshell edit ~/codelab-genai/prompts/animal-facts.prompt
- Edite
animal-facts.prompt
e cole o seguinte código:--- model: vertexai/gemini-1.5-flash input: schema: animal: string --- Give me 10 fun facts about {{animal}}. Return the results as HTML without markdown backticks.
- Abra o arquivo
index.js
no editor do Cloud Shell:cloudshell edit ~/codelab-genai/index.js
- Substitua o código no arquivo
index.js
por:import express from 'express'; const app = express(); import { genkit } from 'genkit'; import { vertexAI } from '@genkit-ai/vertexai'; const ai = genkit({ plugins: [ vertexAI({ location: 'us-central1' }), ], }); app.get('/', async (req, res) => { const animal = req.query.animal || 'dog'; const animalPrompt = ai.prompt('animal-facts'); const llmResponse = await animalPrompt({animal}); const html = llmResponse.text; res.send(html); }); const port = process.env.PORT || 8080; app.listen(port, () => { console.log(`codelab-genai: listening on port ${port}`); });
- Verifique se você ainda está no diretório correto no Cloud Shell:
cd ~/codelab-genai
- Execute estes comandos para confirmar uma nova versão do aplicativo no repositório local do Git:
git add . git commit -m "add latest changes"
- Envie as alterações para o GitHub:
git push
- Quando o build terminar, execute este comando e acesse o aplicativo implantado:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Pode levar vários minutos para que o build seja concluído e você possa conferir as mudanças.
Confira o histórico de todas as revisões aqui: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
13. (Opcional) Usar comandos do sistema
Nesta etapa, presumimos que você já tenha adicionado arquivos .prompt
na etapa anterior.
- Volte ao terminal do Cloud Shell na parte de baixo da tela.
- Verifique se você ainda está no diretório correto:
cd ~/codelab-genai
- Abra o arquivo
animal-facts.prompt
no editor do Cloud Shell:cloudshell edit ~/codelab-genai/prompts/animal-facts.prompt
- Edite
animal-facts.prompt
e cole o seguinte código:--- model: vertexai/gemini-1.5-flash config: temperature: 0.9 input: schema: animal: string --- role "system" The user should have submitted an animal. If the user requests anything besides animal fun facts, respond in a kind and firm manner that you only provide information about fun facts. Give the user 10 fun facts about the animal the user provided. All responses should be valid HTML without markdown backticks. role "user" {{animal}}
- Verifique se você ainda está no diretório correto no Cloud Shell:
cd ~/codelab-genai
- Execute estes comandos para confirmar uma nova versão do aplicativo no repositório local do Git:
git add . git commit -m "add latest changes"
- Envie as alterações para o GitHub:
git push
- Quando o build terminar, execute este comando e acesse o aplicativo implantado:
echo -e "\n\nOnce the build finishes, visit your live application:\n \ "$( \ gcloud run services list | \ grep codelab-genai | \ awk '/URL/{print $2}' | \ head -1 \ )" \n\n"
Pode levar vários minutos para que o build seja concluído e você possa conferir as mudanças.
Confira o histórico de todas as revisões aqui: https://console.cloud.google.com/run/detail/us-central1/codelab-genai/revisions
14. Parabéns
Neste laboratório, você criou um aplicativo da Web e configurou o Cloud Run para implantar automaticamente o aplicativo quando uma mudança for feita no código-fonte. Em seguida, você modificou o aplicativo e o implantou novamente.
Se você gostou deste laboratório, tente fazer de novo em outra linguagem de programação ou framework:
Confira algumas opções para continuar aprendendo:
- Documentos do Genkit: Primeiros passos
- Codelab para adicionar observabilidade ao seu aplicativo Node.js: Técnicas práticas de observabilidade para aplicativos de IA generativa em Javascript
- Codelab para adicionar um front-end ao seu aplicativo com o Next.js: Implantar automaticamente o aplicativo da Web Next.js de IA generativa do controle de versão para o Cloud Run
- Codelab para mostrar como usar a chamada de função: Como usar a chamada de função do Gemini com o Cloud Run
- Codelab para usar a IA para processar conteúdo de vídeo: Como usar a API Video Intelligence do Cloud Run Jobs para processar um vídeo cena por cena