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 é:
- Svelte Kit: uma estrutura de aplicativo da Web baseada no Svelte.
- API Vertex AI PaLM 2: uma API de modelo de linguagem grande (LLM) que fornece acesso ao modelo PaLM 2 da IA do Google.
- Cloud Functions: uma plataforma sem servidor para executar funções sem 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 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
3. Antes de começar
- No console do Google Cloud, na página do 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ê 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:
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 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:
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:
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 no 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.
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 🤖.
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 apenas excluir o serviço do Cloud Run, siga estas etapas.
- 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 app da Web e implantar 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.