App resumidor de texto com Vertex AI e Svelte Kit

1. Introdução

Neste codelab, listei as etapas para criar um app da Web que permite realizar o resumo de texto usando a API de modelo de linguagem grande da Vertex AI para geração de texto ( text-bison) em um framework Svelte Kit. A lista de serviços e conjunto de tecnologias usados é:

  1. Svelte Kit: uma estrutura de aplicativo da Web baseada no Svelte.
  2. API Vertex AI PaLM 2: uma API de modelo de linguagem grande (LLM) que fornece acesso ao modelo PaLM 2 da IA do Google.
  3. Cloud Functions: uma plataforma sem servidor para executar funções sem gerenciar servidores.
  4. Cloud Run: uma plataforma sem servidor para executar aplicativos conteinerizados.

O que você vai criar

Você vai criar

  • Uma função do Cloud em Python é usada para invocar a API makePalm
  • Um aplicativo da Web Svelte para que a interface do usuário interaja com a API Vertex AI usando a função do Cloud
  • Um serviço do Cloud Run para implantar o app criado acima sem servidor

2. Requisitos

  • Use um navegador, como o Chrome ou o Firefox.
  • Tenha um projeto do Google Cloud com o faturamento ativado.

3. Antes de começar

  1. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
  2. Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
  3. Você usará o Cloud Shell, um ambiente de linha de comando em execução no Google Cloud, para interagir com os serviços do Google Cloud. Consulte a documentação para saber mais sobre os comandos e o uso da gcloud. No console do Cloud, clique em "Ativar o Cloud Shell" no canto superior direito:

51622c00acec2fa.png

Se o projeto não estiver definido, use este comando:

gcloud config set project <YOUR_PROJECT_ID>
  1. 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
  1. 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 nessa função.

Como criar uma nova conta de serviço

Execute o comando a seguir no terminal do Cloud Shell para criar uma nova conta de serviço.

gcloud iam service-accounts create vertex-service-acc

Para fornecer 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

Conceder à sua Conta do Google um papel que permita usar os papéis da conta de serviço e anexá-la a outros recursos. Substitua USER_EMAIL pelo ID de 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 de API, sem a necessidade de conversas contínuas. Vamos criar a função do Cloud para isso 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

Criar 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

Este arquivo Python define uma função HTTP simples do Cloud que usa um modelo de geração de texto da Vertex AI para gerar breves resumos de entradas de texto. A função usa uma entrada de texto como parâmetro e retorna um breve resumo dela. A função usa vários parâmetros para controlar o processo de geração, como a criatividade, a diversidade e a fluência do texto gerado. A função do Cloud HTTP aceita um objeto de solicitação e retorna o resumo do modelo como a resposta.

Abra o editor do Google Cloud. Para isso, abra uma nova guia do console do Google Cloud e clique no botão ATIVAR O CLOUD SHELL. Quando o terminal carregar, clique rapidamente no botão ABRIR EDITOR, como mostra a imagem abaixo:

8e501bd2c41d11b8.png

Quando o editor abrir, você verá o arquivo main.py. Substitua o conteúdo dele pelo código deste link do repositório. A explicação é incluída como comentários no código. Em resumo, este código fornece 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 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 este código ao arquivo requirements.txt:

functions-framework==3.*
google-cloud-aiplatform

Como fazer a implantação no Cloud Functions

Agora, implante essa origem no Cloud Functions. Execute o seguinte comando 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:

43a6b247098a9edb.png

Isso vai listar a função do Cloud vertex-ai-function que acabamos de criar com o URL público que será fornecido na página da função. Vamos usar isso para conectar o front-end e a API Vertex AI. Armazene esse URL. Talvez também seja necessário permitir o acesso não autenticado do serviço subjacente do Cloud Run. O uso do serviço autenticado é recomendado por motivos de segurança.

5. Criar e implantar o front-end

Esse app vem com uma interface de front-end para interagir com a API Vertex AI pelo Google Cloud Functions. Vamos criá-la agora.

Clonar repositório e configurar o 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 este aplicativo, você precisa adicionar a variável de ambiente PUBLIC_FUNCTION_URL ao Dockerfile. Esse é o URL da função do Cloud criado e armazenado 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 função do Cloud.

2958bb12343368a9.png

Implante o front-end no Cloud Run

Vamos usar o Google Artifact Registry para criar e armazenar nossas imagens Docker. O Cloud Run é usado para implantar os contêineres na arquitetura sem servidor.

Execute o comando abaixo no terminal do Cloud Shell para criar um repositório do Artifact Registry:

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 marque-o com o local do repositório do Artifact Registry. Marcar a imagem do 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}

Implantar o contêiner do Docker no Cloud Run.

gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}

Eba! O Vertex Resumer está funcionando. O URL vai ser mostrado no Cloud Shell, então conheça e aproveite a Vertex AI 🤖.

cd94442961bb5308.gif

6. Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta postagem, siga estas etapas:

  1. No console do Google Cloud, acesse a página Gerenciar recursos.
  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
  4. Se você quiser manter o projeto e apenas excluir o serviço do Cloud Run, siga estas etapas.
  5. Se você quiser excluir a função do Cloud ou revogar o acesso, clique aqui.

7. Parabéns

Parabéns! Você usou a API PaLM2 da Vertex AI para resumir textos, criar um Svelte web app e implantá-lo no Cloud Functions de maneira programática. Confira a documentação do produto LLM da Vertex AI para saber mais sobre os modelos disponíveis.