1. Introdução
Neste codelab, listei as etapas para criar um app da Web que permite fazer resumo de texto usando a API do modelo de linguagem grande da Vertex AI para geração de texto ( text-bison) em uma estrutura do SvelteKit. A lista de serviços e a pilha de tecnologia usada são:
- SvelteKit: um framework de aplicativos da Web criado com base no Svelte.
- API PaLM 2 da Vertex AI: uma API de modelo de linguagem grande (LLM) que oferece acesso ao modelo PaLM 2 da Google AI.
- Cloud Functions: uma plataforma sem servidor para executar funções sem precisar gerenciar servidores.
- Cloud Run: uma plataforma sem servidor para executar aplicativos conteinerizados.
O que você vai criar
Você vai criar
- Uma função do Cloud Functions em Python é usada para fazer a invocação da API Palm.
- Um aplicativo da Web Svelte para a interface do usuário interagir com a API Vertex AI usando o Cloud Functions.
- Um serviço do Cloud Run para implantar o app criado acima sem servidor
2. Requisitos
3. Antes de começar
- No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
- Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
- Você vai usar o Cloud Shell, um ambiente de linha de comando executado no Google Cloud para interagir com os serviços do Google Cloud. Consulte a documentação para ver o uso e os comandos gcloud. No console do Cloud, clique em "Ativar o Cloud Shell" no canto superior direito:

Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
- Verifique se todas as APIs necessárias estão ativadas executando o seguinte comando no terminal do Cloud Shell:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- Crie variáveis de ambiente para REGION e PROJECT_ID executando o seguinte comando no terminal do Cloud Shell:
export PROJECT_ID=<your project id>
export REGION=asia-south1
4. Função do Cloud para invocar a API Vertex AI
Vamos criar uma função do Cloud em Python e invocar a API Vertex AI nela.
Como criar uma conta de serviço
Crie uma conta de serviço executando o seguinte comando no terminal do Cloud Shell.
gcloud iam service-accounts create vertex-service-acc
Para conceder acesso ao projeto e aos recursos, atribua um papel à conta de serviço.
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com" --role=roles/ml.developer
Para conceder à sua Conta do Google um papel que permita que você use os papéis da conta de serviço e anexe a conta de serviço a outros recursos. Substitua USER_EMAIL pelo ID do e-mail da sua Conta do Google.
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Como criar a função Python
O PaLM 2 para texto é ideal para tarefas que podem ser concluídas com uma resposta da API, sem a necessidade de conversa contínua. Vamos criar a função do Cloud agora.
Crie um novo diretório usando o Cloud Shell e navegue até ele. (use o mesmo terminal aberto na seção anterior):
mkdir vertex-ai-functions
cd vertex-ai-functions
Crie um arquivo main.py para escrever a função do Cloud em Python e um arquivo requirements.txt para armazenar dependências.
touch main.py requirements.txt
Esse arquivo Python define uma função HTTP do Cloud Functions simples que usa um modelo de geração de texto da Vertex AI para gerar resumos curtos de entradas de texto. A função recebe uma entrada de texto como parâmetro e retorna um resumo curto dela. A função usa vários parâmetros para controlar o processo de geração, como criatividade, diversidade e fluência do texto gerado. A função do Cloud HTTP aceita um objeto de solicitação e retorna o resumo do modelo como resposta.
Abra o editor do Google Cloud. Para abrir, clique em uma nova guia do console do Google Cloud e no botão ATIVAR O CLOUD SHELL. Quando o terminal for carregado, clique rapidamente no botão ABRIR EDITOR, conforme mostrado na imagem abaixo:

Quando o editor abrir, você vai encontrar o arquivo main.py. Substitua o conteúdo dele pelo código deste repositório link. A explicação do código está incluída como comentários. Em resumo, esse código oferece uma maneira concisa de gerar resumos curtos de entradas de texto usando a Vertex AI.
O arquivo requirements.txt tem dependências de pacote: functions-framework==3.*: Garante que a função use os recursos e as correções de bugs mais recentes do Functions Framework. google-cloud-aiplatform: obrigatório para usar o modelo de geração de texto da Vertex AI.
Adicione isso ao arquivo requirements.txt:
functions-framework==3.*
google-cloud-aiplatform
Implantar no Cloud Functions
Agora vamos implantar essa origem no Cloud Functions. Execute o comando a seguir no terminal do Cloud Shell:
gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30
Use a barra de pesquisa e acesse o console do Cloud Functions:

Isso vai listar a função do Cloud vertex-ai-function que acabamos de criar, e o URL público dela será fornecido na página da função. Usamos isso para conectar nosso front-end e a API Vertex AI. Armazene esse URL. Talvez também seja necessário permitir o acesso não autenticado ao serviço do Cloud Run subjacente. Recomendamos usar um serviço autenticado por motivos de segurança.
5. criar e implantar o front-end
Esse app vem com uma interface de front-end para interagir com nossa API Vertex AI usando o Google Cloud Functions. Vamos criar agora.
Clonar repositório e configurar Dockerfile
Acesse o diretório raiz e clone o repositório git.
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
Para executar esse aplicativo, adicione a variável de ambiente PUBLIC_FUNCTION_URL no Dockerfile. Esse URL é o da função do Cloud criada e armazenada na seção anterior.
Abra o editor do Cloud e edite o conteúdo do arquivo Dockerfile. Substitua a variável PUBLIC_FUNCTION_URL pelo URL da sua função do Cloud.

Implantar o front-end no Cloud Run
Vamos usar o Google Artifact Registry para criar e armazenar nossas imagens do Docker. O Cloud Run é usado para implantar os contêineres na arquitetura sem servidor.
Crie um repositório do Artifact Registry executando o comando abaixo no terminal do Cloud Shell:
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
Crie uma variável de ambiente para o URL do repositório do Artifact Registry.
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
Crie o contêiner do Docker e adicione uma tag com o local do repositório do Artifact Registry. A inclusão de tag na imagem Docker com um nome de repositório configura o comando "docker push" para enviar a imagem a um local específico.
docker build . -t ${DOCKER_URL}
Envie a imagem para o Artifact Registry.
docker push ${DOCKER_URL}
Implante o contêiner do Docker no Cloud Run.
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
Uhuu! O Vertex Summarizer está funcionando. O URL vai aparecer no Cloud Shell. Aproveite a Vertex AI🤖.

6. Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta postagem, siga estas etapas:
- No console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
- Se você quiser manter o projeto e excluir apenas o serviço do Cloud Run, siga a etapa aqui.
- Se você quiser apenas excluir a função do Cloud ou revogar o acesso, faça isso aqui.
7. Parabéns
Parabéns! Você usou uma API PaLM2 da Vertex AI para realizar um resumo de texto de forma programática, criar um app da Web Svelte e implantar no Cloud Functions. Confira a documentação do produto LLM da Vertex AI para saber mais sobre os modelos disponíveis.