1. Introdução
Neste codelab, você encontra as etapas para resumir o conteúdo enviado ao Google Cloud Storage usando o modelo de linguagem grande da Vertex AI para geração de texto ( text-bison) como uma função do Cloud em Python. Os serviços usados são:
- API PaLM da Vertex AI: uma API de modelo de linguagem grande (LLM) que oferece acesso ao modelo de texto Bison do PaLM da IA do Google.
- Cloud Functions: uma plataforma sem servidor para executar funções sem precisar gerenciar servidores.
- Cloud Storage: um serviço gerenciado para armazenar dados não estruturados.
- Cloud Logging: um serviço totalmente gerenciado que permite armazenar, pesquisar, analisar, monitorar e alertar sobre dados de registro.
O que você vai criar
Você vai criar um aplicativo implantado como uma função do Cloud em Python para resumir textos usando a API PaLM.
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.
- Confira se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
- Verifique se todas as APIs necessárias (API Storage, API Vertex AI, API Cloud Functions e Cloud Logging) estão ativadas.
- Você vai usar o Cloud Shell, um ambiente de linha de comando executado no 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 cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.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=us-central1
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, execute o comando abaixo. 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
A API PaLM 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.
Execute os comandos a seguir no Cloud Shell para clonar o repositório e navegar até o projeto (use o mesmo terminal aberto na seção anterior):
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction
A pasta que nos interessa neste projeto é: summarization-gcs-cloudfunction.
Abra o editor do Cloud Shell no terminal e verifique o conteúdo da pasta do projeto que acabou de ser clonada do GitHub para sua máquina do Cloud Shell.
Essa pasta contém dois arquivos:
- O arquivo Python main.py define uma função do Cloud Functions HTTP 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.
- 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: necessário para usar o modelo de geração de texto da Vertex AI.
- google-cloud-storage::necessário para criar buckets de armazenamento no Google Cloud Storage.
- google-cloud-logging: necessário para gerar registros.
5. Implante a função
- Crie dois buckets do Cloud Storage:
- Primeiro bucket: o bucket $BUCKET_NAME será usado para fazer upload dos arquivos a serem resumidos. Crie a variável de ambiente para armazenar o nome do bucket da seguinte maneira:
export BUCKET_NAME='Your Bucket Name'
- Segundo bucket: o bucket $BUCKET_NAME-summaries será usado para armazenar o arquivo resumido.
- Vamos usar o comando gsutil para criar os buckets:
- O gsutil é um aplicativo em Python que permite acessar o Cloud Storage da linha de comando. É possível usar o gsutil para executar uma ampla variedade de tarefas de gerenciamento de buckets e objetos.
- mb significa "Make Bucket"
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- Neste ponto, estamos prontos para implantar a função. Mas antes disso, verifique se a conta de serviço do bucket do Cloud Storage tem o papel de editor do Pub/Sub.
- Acesse o Google Cloud Storage e, no painel esquerdo, clique em "Configurações".

- Copie a "Conta de serviço" das configurações e anote.
- Abra o IAM e administrador no menu de navegação do console do Google Cloud.

- Na guia "Permissões", clique em "CONCEDER ACESSO" e insira o ID da conta de serviço que você anotou na seção "Novos principais". Selecione a função como "Editor do Pub/Sub" e clique em "SALVAR".

- Implante essa origem no Cloud Functions. Execute o comando a seguir no terminal do Cloud Shell:
- Confira se você está na pasta summarization-gcs-cloudfunction neste projeto.
- Execute o seguinte comando:
gcloud functions deploy summarizeArticles \
--gen2 \
--runtime=python311 \
--source=. \
--region=$REGION \
--project=$PROJECT_ID \
--entry-point=summarize_gcs_object \
--trigger-bucket=$BUCKET_NAME \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION \
--max-instances=1 \
--quiet
- No console do Google Cloud, acesse Cloud Functions:
Isso vai listar a função do Cloud vertex-ai-function que acabamos de criar com o URL público dela. Vamos usar essa função para criar um gatilho do GCS.
6. Invocar a função
Quando um arquivo é enviado para o bucket $BUCKET_NAME*,* o gatilho do GCS invoca a função. O bucket $BUCKET_NAME"-summaries inclui o arquivo resumido com o mesmo nome.
Antes de começar, salve o arquivo de exemplo story.md da pasta summarization-gcs-cloudfunction na sua máquina local.
- No console do Google Cloud, acesse o Cloud Storage.
- Abra o bucket
$BUCKET_NAMEna lista de buckets. - Clique em "Fazer upload de arquivos" e selecione o arquivo story.md.
A função summarizeArticles é acionada e começa a resumir o conteúdo do arquivo.
- No painel de navegação à esquerda, clique em "Buckets".
- Abra seu bucket
$BUCKET_NAME"-summaries.
O arquivo story.md inclui um resumo do conteúdo do arquivo.
7. 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 "Desligar" para excluir o projeto.
- Se quiser manter o projeto e excluir apenas alguns recursos, acesse o console do Cloud Storage, clique em "Buckets" e, na lista, marque os buckets que você quer excluir e clique em "EXCLUIR".
- Também é possível excluir a função do Cloud navegando até "Cloud Functions" e, na lista de funções, marcando aquela que você quer excluir e clicando em "EXCLUIR".
8. Parabéns
Parabéns! Você usou um LLM de geração de texto da Vertex AI de forma programática para resumir textos nos seus dados. Confira a documentação do produto LLM da Vertex AI para saber mais sobre os modelos disponíveis.