Neste tutorial, mostramos como criar um app do Google Chat para que uma equipe possa para gerenciar projetos em tempo real. O app do Chat usa a Vertex AI para ajudar as equipes a escrever histórias de usuários (que representam os atributos de um sistema de software do ponto de vista de um usuário para desenvolvimento da equipe) e mantém as histórias em um banco de dados do Firestore.
-
Figura 1. Carlos discute o desenvolvimento de recursos em um espaço do Chat com a equipe dele. Mencionar o app do Chat para gerenciamento de projetos faz com que ele ofereça ajuda. -
Figura 2. Usando o comando de barra /createUserStory
, Charlie cria uma história. -
Figura 3. O app do Chat de gerenciamento de projetos usa a Vertex AI para escrever a descrição da história e compartilhá-la no espaço. -
Figura 4. Carlos clica em Editar para finalizar os detalhes da história. A descrição da IA está correta, mas Carlos quer mais detalhes, então ele clica em Expandir para que a Vertex AI adicione requisitos à descrição da história. Ele atribui a história a si mesmo, define o status como iniciada, seleciona a prioridade e o tamanho apropriados e clica em Salvar. -
Figura 5. A qualquer momento, Carlos pode ver e gerenciar todas as histórias de usuários da equipe com o comando de barra /manageUserStories
.
Pré-requisitos
- Uma empresa Conta do Google Workspace com acesso a Google Chat.
Acesso aos serviços do Google Cloud para fazer o seguinte:
- Criar um projeto do Google Cloud.
- Vincular uma conta de faturamento do Google Cloud ao projeto do Cloud. Para saber se você tem acesso, consulte Permissões necessárias para ativar o faturamento
Usar invocações não autenticadas de função do Google Cloud, que pode ser verificada ao determinar se sua conta do Google Cloud organização usa o compartilhamento restrito de domínio.
Se necessário, solicite acesso ao administrador do Google Cloud ou permissão.
Se estiver usando a CLI do Google Cloud, um arquivo Node.js de desenvolvimento de software configurado para funcionar com a gcloud CLI. Consulte Como configurar um desenvolvimento em Node.js de código aberto.
Objetivos
- Criar um app do Chat que gerencie software ágil projetos.
- Ajude os usuários a escrever histórias de usuários com
Ferramentas de escrita de histórias assistidas por IA com a tecnologia da Vertex AI:
- Gere e regenere descrições de histórias.
- Expanda as descrições das histórias das anotações para completar os requisitos.
- Corrija a gramática para corrigir erros de digitação.
- Mantenha o trabalho atualizado gravando e lendo em um banco de dados do Firestore.
- Facilitar a colaboração em um espaço do Chat permitindo que os usuários criar, editar, atribuir e iniciar matérias diretamente na conversa.
Produtos usados
O app de gerenciamento de projetos usa os seguintes recursos do Google Workspace e Produtos do Google Cloud:
- API Chat: Uma API para desenvolver apps do Google Chat que recebem e respondem a Eventos de interação de chat, como mensagens. O gerenciamento de projetos O app Google Chat usa a API Chat para receber e responder aos eventos de interação enviados pelo Chat e à configuração dos atributos que determinar como ele aparece no Chat, como nome e imagem do avatar;
- API Vertex AI: Uma plataforma de IA generativa. O gerenciamento de projetos O app Google Chat usa a API Vertex AI para criar a história do usuário títulos e descrições.
- Firestore: Um banco de dados de documentos sem servidor. O gerenciamento de projetos O app Google Chat usa o Firebase para armazenar dados sobre histórias de usuários.
Cloud Functions: Um serviço de computação leve e sem servidor que permite criar funções autônomas e de finalidade única que possam responder a comandos do Chat eventos de interação sem a necessidade de gerenciar um servidor ou um ambiente de execução. A O app Google Chat de gerenciamento de projetos usa o Cloud Functions para hospede o endpoint HTTP para onde o Chat envia eventos de interação e como Compute Engine para executar a lógica que processa e responde a esses eventos.
O Cloud Functions usa os seguintes produtos do Google Cloud para criar, eventos de interação com processos e recursos de computação do host:
- Cloud Build: Uma plataforma totalmente gerenciada de integração, entrega e implantação contínuas que executa builds automatizados.
- Pub/Sub: Serviço de mensagens assíncrono e escalonável que separa os serviços que produzem mensagens de serviços que processam essas mensagens.
- API Cloud Run Admin: Um ambiente totalmente gerenciado para executar aplicativos conteinerizados.
Arquitetura
A arquitetura do app de gerenciamento de projetos do Google Chat recebe e processa eventos de interação do Chat em um endpoint HTTP, usa a Vertex AI para ajudar gravar histórias de usuários e armazenar os detalhes delas em um banco de dados do Firestore. A diagrama a seguir mostra a arquitetura do Google Workspace recursos do Google Cloud usados.
O app de gerenciamento de projetos do Google Chat funciona da seguinte maneira:
Um usuário envia uma mensagem no Chat e invoca o do app de gerenciamento de projetos do Google Chat enviando uma mensagem diretamente, mencionando em um espaço ou inserindo um comando de barra.
O Chat envia uma solicitação HTTP síncrona para o endpoint HTTP.
O app de gerenciamento de projetos do Google Chat processa o HTTP solicitação:
A Vertex AI ajuda a escrever ou atualizar uma história de usuário.
Um banco de dados do Firestore armazena, recupera, atualiza ou exclui a história do usuário dados.
O Cloud Functions retorna uma resposta HTTP para o Chat, que o exibe para o usuário como uma mensagem ou uma caixa de diálogo.
Prepare o ambiente
Nesta seção, mostramos como criar e configurar um projeto do Google Cloud para a App Chat.
Criar um projeto do Google Cloud
Console do Google Cloud
- No console do Google Cloud, acesse o menu > IAM e Administrador > Criar um projeto.
-
No campo Nome do projeto, insira um nome descritivo para o projeto.
Opcional: para editar o ID do projeto, clique em Editar. O ID do projeto não pode ser alterado após a criação do projeto, então escolha um ID que atenda às suas necessidades para o ciclo de vida projeto.
- No campo Local, clique em Procurar para mostrar os possíveis locais para sua projeto. Em seguida, clique em Selecionar.
- Clique em Criar. O console do Google Cloud acessa a página "Painel" e seu projeto é criado em alguns minutos.
CLI da gcloud
Em um dos ambientes de desenvolvimento a seguir, acesse o Google Cloud CLI (`gcloud`):
-
Cloud Shell: para usar um terminal on-line com a gcloud CLI
configure o Cloud Shell.
Ativar o Cloud Shell -
Local Shell: para usar um ambiente de desenvolvimento local,
instalar e
inicializar
a CLI gcloud.
Para criar um projeto do Cloud, use o comando "gcloud projects create":gcloud projects create PROJECT_ID
Ative o faturamento para o projeto do Cloud
Console do Google Cloud
- No console do Google Cloud, acesse Faturamento. Clique em Cardápio > Faturamento > Meus projetos.
- Em Selecionar uma organização, escolha a organização associada a seu projeto do Google Cloud.
- Na linha do projeto, abra o menu Ações. ( ), Clique em Alterar faturamento e escolha conta do Cloud Billing.
- Clique em Definir conta.
CLI da gcloud
- Para listar as contas de faturamento disponíveis, execute:
gcloud billing accounts list
- Vincule uma conta de faturamento a um projeto do Google Cloud:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
Substitua:
PROJECT_ID
é o ID do projeto da projeto do Google Cloud em que você quer ativar o faturamento.BILLING_ACCOUNT_ID
é o ID da conta de faturamento a ser vinculada. no projeto do Google Cloud.
Ative as APIs
Console do Google Cloud
No console do Google Cloud, ative a API Google Chat, a API Vertex AI a API Cloud Functions, a API Firestore, a API Cloud Build, a API Pub/Sub e a API Cloud Run Admin.
Confirme se você está ativando as APIs projeto do Google Cloud e clique em Próxima.
Confirme se você está ativando as APIs corretas e clique em Ativar.
CLI da gcloud
Se necessário, defina o projeto atual do Cloud como o que você criado com o comando
gcloud config set project
:gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo ID do projeto da do Google Cloud que você criou.
Ative a API Google Chat, a API Vertex AI, a API Cloud Functions a API Firestore, a API Cloud Build, a API Pub/Sub e a API Cloud Run Admin com o comando
gcloud services enable
:gcloud services enable chat.googleapis.com \ aiplatform.googleapis.com \ cloudfunctions.googleapis.com \ firestore.googleapis.com \ cloudbuild.googleapis.com \ pubsub.googleapis.com \ run.googleapis.com
As APIs Cloud Build, Pub/Sub e Cloud Run Admin são pré-requisitos Cloud Functions.
Autenticação e autorização
Nenhuma configuração de autenticação e autorização é necessária para seguir esta .
Para chamar as APIs Firestore e Vertex AI, este tutorial usa Application Default Credentials com a conta de serviço padrão anexada à função do Cloud, que você não precisam ser configurados. No contexto de um ambiente de produção, normalmente criar e anexar uma conta de serviço para a função do Cloud.
Criar e implantar o app do Google Chat
Agora que o projeto do Google Cloud foi criado e configurado, você já pode criar e implantar o app Google Chat. Nesta seção, você vai aprender seguinte:
- Crie um banco de dados do Firestore para armazenar e recuperar histórias de usuários.
- Se quiser, analise o exemplo de código.
- Criar uma função do Cloud para hospedar e executar o Código do app do Chat em resposta a eventos recebidas do Chat como solicitações HTTP.
- Criar e implantar um app do Google Chat na API Google Chat de configuração do Terraform.
Criar o banco de dados do Firestore
Nesta seção, você vai criar um banco de dados do Firestore para armazenar e recuperar
histórias de usuários, mas você não define o modelo de dados. O modelo de dados está definido
implicitamente no exemplo de código por model/user-story.js
e model/user.js
;
.
O banco de dados do app Chat de gerenciamento de projetos usa um NoSQL modelo de dados com base Modelo de dados do Firestore.
documentos organizados em coleções. Para saber mais, consulteO diagrama a seguir é uma visão geral do processo de Modelo de dados do app Google Chat:
A coleção raiz é spaces
, em que cada documento representa um espaço em que o
O app de chat criou Histórias. Cada história de usuário é
representado por um documento na subcoleção userStories
, e cada usuário é
representado por um documento na subcoleção users
.
Conferir definições de coleções, documentos e campos
spaces
Espaços em que o app do Chat criou histórias.
Campos | |
---|---|
Document ID | String ID exclusivo de um espaço específico onde as histórias são criadas. Corresponde ao nome do recurso do espaço na API Chat. |
userStories | Subcollection of Documents ( Histórias criadas pelo app do Chat e pelos usuários. Corresponde ao Document ID de um userStories no Firebase. |
users | Subcollection of Documents (user) Usuários que criaram ou que receberam histórias. |
displayName | String O nome de exibição do espaço na API Chat. Não definido para mensagens diretas com usuários. |
userStories
Histórias criadas pelo app do Chat e pelos usuários dele.
Campos | |
---|---|
Document ID | String ID exclusivo de uma história de usuário específica criada pelo app do Chat e pelos usuários dele. |
assignee | Document (user) O nome do recurso do usuário atribuído para concluir a história. Corresponde ao Document ID do documento users e ao nome do recurso de um usuário na API Chat. |
description | String Uma descrição do recurso do software do ponto de vista do usuário. |
priority | Enum A urgência para concluir o trabalho. Os valores possíveis são Low , Medium ou High . |
size | Enum A quantidade de trabalho. Os valores possíveis são Small , Medium ou Large . |
status | Enum A fase do trabalho. Os valores possíveis são OPEN , STARTED ou COMPLETED . |
title | String O título da história um breve resumo. |
users
Usuários que criaram ou que receberam histórias.
Campos | |
---|---|
Document ID | String ID exclusivo de um usuário específico. Corresponde ao assignee de um userStories no Firebase e ao nome do recurso de um usuário na API Chat. |
avatarUrl | String URL que hospeda a imagem de avatar do Chat do usuário. |
displayName | String O nome de exibição do Chat do usuário. |
Veja como criar o banco de dados do Firestore:
Console do Google Cloud
No Console do Google Cloud, acesse o Firestore. Clique em Cardápio > Firestore.
Clique em Criar banco de dados.
Em Selecione o modo do Firestore, clique em Modo nativo.
Clique em Continuar.
Configure o banco de dados:
Em Nomeie seu banco de dados, deixe o ID do banco de dados como
(default)
.Em Tipo de local, especifique uma região para seu banco de dados, como
us-central1
Para ter o melhor desempenho, selecione o mesmo ou o próximo item local como a função do Cloud do app do Chat.
Clique em Criar banco de dados.
CLI da gcloud
Crie um banco de dados do Firestore no modo Nativo com a Comando
gcloud firestore databases create
:gcloud firestore databases create \ --location=LOCATION \ --type=firestore-native
Substitua LOCATION pelo nome de uma chave do Firestore região, como como
us-central1
.
Revisar o exemplo de código
Como opção, antes de criar a função do Cloud, reserve um momento para analisar e você vai conhecer o exemplo de código hospedado no GitHub.
Esta é uma visão geral de cada arquivo:
env.js
- Variáveis de configuração de ambiente para implantar o do app de chat para um projeto especificado do Google Cloud e na mesma região. Você precisa atualizar as variáveis de configuração nesse arquivo.
package.json
epackage-lock.json
- Configurações e dependências do projeto Node.js.
index.js
- Ponto de entrada para a função do Cloud do app do Chat. Ela lê o Evento de chat de a solicitação HTTP, chama o gerenciador de aplicativos e publica a resposta HTTP como um objeto JSON.
controllers/app.js
- A lógica principal do aplicativo. Processa o
eventos de interação lidando com os
Menções e comandos de barra no app do Chat.
Para responder a cliques no cartão, ele chama
app-action-handler.js
. controllers/app-action-handler.js
- Lógica do aplicativo para processar o clique no cartão Eventos de interação do chat.
services/space-service.js
,services/user-service.js
eservices/user-story-service.js
- Este arquivo contém as partes da
lógica do aplicativo específica para os espaços do Chat,
usuários e histórias de usuários. As funções nesses arquivos são chamadas por
app.js
. ouapp-action-handler.js
. Para executar operações de banco de dados, as funções esses arquivos chamam funções emfirestore-service.js
. services/firestore-service.js
- Lidar com operações do banco de dados.
As funções nesse arquivo são chamadas por
services/space-service.js
,services/user-service.js
eservices/user-story-service.js
services/aip-service.js
- Chame a API Vertex AI para gerar texto de IA generativa previsão.
model/*.js
- Esses arquivos contêm a definição das classes e dos tipos enumerados que o aplicativo usam para armazenar e transmitir dados entre funções. Eles definiram modelo de dados para o banco de dados do Firestore.
views/*.js
- Cada arquivo neste diretório instancia um objeto "card" que o O app do Chat envia de volta para o Chat uma mensagem de card ou um resposta de ação da caixa de diálogo.
views/widgets/*.js
- Cada arquivo instancia
um tipo de widget
objeto que o app usa para criar os cards no diretório
views/
. test/**/*.test.js
- Cada arquivo neste diretório e nos subdiretórios dele contém os testes de unidade
para a função, controlador, serviço, visualização ou widget correspondente.
Você pode executar todos os testes de unidade executando
npm run test
enquanto estiver diretório raiz do projeto.
Criar e implantar a função do Cloud
Nesta seção, você vai criar e implantar uma função do Cloud que compreende as a lógica do aplicativo do Chat de gerenciamento de projetos.
A função do Cloud é executada em resposta a uma solicitação HTTP do Chat que contém uma evento de interação. Quando executado, o código da função do Cloud processa o evento e retorna uma resposta ao Chat que é renderizada como uma mensagem, diálogo ou outro tipo de interação do usuário. Se aplicável, o Cloud A função também lê ou grava no banco de dados do Firestore.
Veja como criar a função do Cloud:
Console do Google Cloud
Faça o download do código do GitHub como um arquivo ZIP.
Extraia o arquivo ZIP salvo.
A pasta extraída contém todas as amostras do Google Workspace repositório de dados.
Na pasta extraída, acesse
google-chat-samples-main/node/project-management-app/
, depois compactar a pastaproject-management-app
em um arquivo ZIP.O diretório raiz do arquivo ZIP precisa conter o seguinte arquivos e pastas:
env.js
README.md
gcloudignore.text
package-lock.json
package.json
index.js
model/
controllers/
views/
services/
No console do Google Cloud, acesse a página Cloud Functions:
Verifique se o projeto do Google Cloud da sua O app do Chat está selecionado.
Clique em
Criar função.Na página Criar função, configure sua função:
- Em Ambiente, selecione 2a geração.
- Em Nome da função, insira
project-management-tutorial
. - Em Região, selecione uma região.
- Em Autenticação, selecione Permita invocações não autenticadas.
- Clique em Próxima.
Em Ambiente de execução, selecione Node.js 20.
Em Ponto de entrada, exclua o texto padrão e digite
projectManagementChatApp
Em Código-fonte, selecione Upload de CEP.
Em Bucket de destino: criar ou selecione um bucket:
- Clique em Procurar.
- Escolha um bucket.
- Clique em Selecionar.
O Google Cloud faz upload do arquivo ZIP e extrai os arquivos de componentes neste bucket. O Cloud Functions copia os arquivos de componentes para a função do Cloud.
Em Arquivo ZIP, faça upload do arquivo ZIP que você baixou do GitHub. extraída e recompactada:
- Clique em Procurar.
- Navegue até o arquivo ZIP e selecione-o.
- Clique em Abrir.
Clique em Implantar.
A página Detalhes do Cloud Functions é aberta e sua função é exibida. com dois indicadores de progresso: um para o build e outro para o serviço. Quando os dois indicadores de progresso desaparecem e são substituídos por uma verificação a função será implantada e estará pronta.
Edite o exemplo de código para definir constantes:
- Na página Detalhes da função do Cloud, clique em Editar.
- Clique em Próxima.
- Em Código-fonte, selecione Editor in-line.
- No editor in-line, abra o arquivo
env.js
. - Substitua project-id pelo código do projeto.
- Opcional: atualize us-central1 com uma local com suporte para sua função do Cloud.
Clique em Implantar.
Quando a implantação da função for concluída, copie o URL do gatilho:
- Na página Detalhes da função, clique em Acionador.
- Copie o URL. Ele é necessário para configurar Chat na seção a seguir.
CLI da gcloud
Clone o código do GitHub:
git clone https://github.com/googleworkspace/google-chat-samples.git
Alterne para o diretório que contém o código deste projeto de gerenciamento do Chat:
cd google-chat-samples/node/project-management-app
Edite o arquivo
env.js
para definir variáveis de ambiente:- Substitua project-id pelo ID do projeto do Google Cloud.
- Substitua us-central1 pelo local do projeto do Google Cloud.
Implante a função do Cloud no Google Cloud:
gcloud functions deploy project-management-tutorial \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=projectManagementChatApp \ --trigger-http \ --allow-unauthenticated
Substitua REGION por uma Local da função do Cloud em que a infraestrutura está hospedada, como
us-central1
.
- Quando a implantação da função for concluída, copie a propriedade
url
do resposta. Esse é o URL do gatilho que você vai usar na próxima seção para configurar o app Google Chat.
Configurar o app Google Chat no console do Google Cloud
Nesta seção, mostramos como configurar a API Chat no Console do Google Cloud com informações sobre seu app do Chat. incluindo o nome do app do Chat, a barra compatível comandos e o URL do gatilho do aplicativo do Chat Função para enviar eventos de interação do Chat.
No console do Google Cloud, clique em Menu > Mais produtos > Google Workspace > Biblioteca de produtos > API Google Chat > Gerenciar > Configuração.
Em Nome do app, digite
Project Manager
.No URL do avatar, digite
https://developers.google.com/chat/images/quickstart-app-avatar.png
.Em Descrição, digite
Manages projects with user stories.
Clique no botão Ativar recursos interativos para ativar essa opção.
Em Funcionalidade, selecione Receber mensagens individuais, Participar de espaços e conversas em grupo.
Em Configurações de conexão, selecione URL do app.
Em App URL, cole o URL do gatilho que você copiou do Cloud do Cloud Functions, formatado como
https://
REGION-
PROJECT_ID.cloudfunctions.net/project-management-tutorial
. Se você implantou a Função do Cloud com a CLI gcloud, este será ourl
.Registre os dados do app do Chat comandos de barra. Para registrar um comando de barra:
- Em Comandos de barra, clique em Adicionar um comando de barra.
Para cada comando de barra detalhado na tabela a seguir, digite Nome, ID do comando, Descrição e selecione se Clique no comando de barra Abre uma caixa de diálogo e clique em Concluído:
Nome ID do comando Descrição Abre uma caixa de diálogo /createUserStory
1 Crie uma história com o título especificado. Não selecionado /myUserStories
2 Lista todas as histórias atribuídas ao usuário. Não selecionado /userStory
3 Exibe o status atual da matéria especificada. Não selecionado /manageUserStories
4 Abre uma caixa de diálogo em que as histórias podem ser editadas. Selecionado /cleanupUserStories
5 Exclui todas as matérias do espaço. Não selecionado
Em Visibilidade, selecione Disponibilize este app do Chat para pessoas e grupos específicos na sua Workspace e digite seu endereço de e-mail.
Opcionalmente, em Registros, selecione Registrar erros no Logging.
Clique em Salvar. Será exibida uma mensagem de configuração salva, O app do Chat é prontos para serem testados.
Teste o app do Chat
Envie uma mensagem para testar o app do Chat de gerenciamento de projetos e usar os comandos de barra para criar, editar e excluir histórias de usuários.
Abra o Google Chat usando a conta do Google Workspace que você fornecido quando você se adicionou como trusted tester.
- Clique em Nova conversa.
- No campo Adicionar uma ou mais pessoas, digite o nome da sua App Chat.
Selecione seu app do Chat nos resultados. Um direto a mensagem será aberta.
- Na nova mensagem direta com o app, digite
Hello
e pressioneenter
. O gerenciamento de projetos O app de chat responde com um menu de ajuda detalhando o que podem fazer. - Para criar uma história, digite
/createUserStory Test story
no na barra de mensagens e envie-a. O gerenciamento de projetos O app de chat responde com uma mensagem de card detalhando o história de usuário que ele cria para você usando a IA generativa da Vertex AI. No console, verifique o banco de dados do Firestore para revisar os registros que criou sobre o espaço em que você adicionou do app do Chat, os usuários que interagiram com ele e a história do usuário que você criou.
Volte ao Google Chat.
- Para editar a história, clique em Editar. Quando você estiver satisfeito com a história, clique em Salvar.
- Teste cada comando de barra aceito pelo app. Para vê-los, digite
/
ou mencione o app do Chat. - excluir a história do usuário de teste emitindo
/cleanupUserStories
; barra. Como alternativa, remova ou desinstale o app. Quando removido, o app exclui todas as histórias de usuário criadas nesse espaço.
Resolver problemas
Quando um app ou card retornar um erro, o A interface do chat mostra a mensagem "Algo deu errado". ou "Não foi possível processar sua solicitação". Às vezes, a interface do Chat não exibe nenhuma mensagem de erro, mas o app do Chat ou produz um resultado inesperado; por exemplo, uma mensagem de cartão pode não aparecer.
Embora uma mensagem de erro possa não aparecer na interface do Chat, mensagens de erro descritivas e dados de registro estão disponíveis para ajudar você a corrigir os erros quando a geração de registros de erros nos apps do Chat está ativada. Para receber ajuda com a visualização, depurar e corrigir erros, consulte Resolver problemas e corrigir erros do Google Chat.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelo recursos usados neste tutorial, recomendamos que você exclua os do Google Cloud.
- No console do Google Cloud, acesse a página Gerenciar recursos. Clique em Cardápio > IAM e Administrador > 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 o projeto.
Temas relacionados
- Responda a perguntas baseadas nas conversas do Chat com o app Gemini AI Chat
- Responda a incidentes com o Google Chat, a Vertex AI e o Apps Script