1. Introdução
Neste codelab, você vai encontrar 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. A lista de serviços usados é:
- API Vertex AI PaLM: uma API de modelo de linguagem grande (LLM) que fornece acesso ao modelo PaLM Text Bison da IA do Google.
- Cloud Functions: uma plataforma sem servidor para executar funções sem 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ê 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 Cloud 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 em execução no 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 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 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
Execute o comando abaixo para conceder à sua Conta do Google um papel que permita usar os papéis da conta de serviço e a anexar 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
A API PaLM para texto é ideal para tarefas que podem ser concluídas com uma resposta da API, sem a necessidade de conversas contínuas. Vamos criar a função do Cloud para isso agora.
Execute os seguintes comandos no Cloud Shell para clonar o repositório e navegue 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 preocupa aqui 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 a máquina do Cloud Shell.
Esta pasta contém dois arquivos:
- O arquivo Python main.py define uma função HTTP simples do Cloud que usa um modelo de geração de texto da Vertex AI para gerar resumos curtos 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.
- 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.
- 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 de resumo. 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.
- Usaremos 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 gama de tarefas de gerenciamento de bucket e de objeto.
- mb é a abreviação de "Criar bucket".
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- Agora, 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 Editor do Pub/Sub.
- Acesse o Google Cloud Storage e, no painel esquerdo, clique em "Configurações".
- Copie a "Conta de serviço" nas configurações e anote-as.
- Abra "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 "Papel" como "Editor do Pub/Sub". e clique em SALVAR.
- Implante essa origem no Cloud Functions. Execute o seguinte comando no terminal do Cloud Shell:
- Você precisa estar na pasta summarization-gcs-cloudfunction do 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 o Cloud Functions:
Isso vai listar a função do Cloud vertex-ai-function que acabamos de criar com o URL público dela. Usaremos 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 amostra story.md na pasta summarization-gcs-cloudfunction na máquina local.
- No console do Google Cloud, acesse o Cloud Storage.
- Abra o bucket
$BUCKET_NAME
na 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 o 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 "Encerrar" para excluí-lo.
- 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. Para isso, acesse o Cloud Functions e, na lista de funções, marque a que você quer excluir e clique em "EXCLUIR".
8. Parabéns
Parabéns! Você usou programaticamente um LLM de geração de texto da Vertex AI para resumir textos nos seus dados. Confira a documentação do produto LLM da Vertex AI para saber mais sobre os modelos disponíveis.