Responda a perguntas com base nas conversas do Chat com um app Gemini AI Chat

Neste tutorial, mostramos como criar um app do Google Chat que responde perguntas com base em conversas nos espaços do Chat com IA generativa com tecnologia da Vertex AI e do Gemini. O app do Chat usa a API Google Workspace Events e o Pub/Sub para reconhecer e responder às perguntas postadas nos espaços do Chat em tempo real, mesmo quando não são mencionadas.

O app do Chat usa todas as mensagens enviadas no espaço como uma fonte de dados e base de conhecimento: quando alguém faz uma pergunta, o app do Chat verifica as respostas compartilhadas anteriormente e as compartilha. Se nenhuma resposta for encontrada, a mensagem diz que não é possível atender. Em cada resposta, os usuários podem clicar em um botão de ação de acessório para @mencionar um administrador do espaço e pedir uma resposta. Ao usar o Gemini AI, o app Google Chat se adapta e aumenta a base de conhecimento à medida que treina continuamente em conversas nos espaços a que é adicionado.

Veja como o app do Chat funciona em um espaço de integração e suporte de funcionários:

  • Mencionar o app de assistente de conhecimento de IA adiciona o app a um espaço.
    Figura 1. Carlos adiciona o app do Chat, assistente de conhecimento de IA, a um espaço do Chat.
  • Dana faz uma pergunta.
    Figura 2. Daniela pergunta se a empresa oferece treinamento para falar em público.
  • O app Chat, assistente de conhecimento de IA, responde à pergunta.
    Figura 3. O app Chat assistente de conhecimento de IA solicita que a Vertex AI com o Gemini responda à pergunta de Daniela com base no histórico de conversas do espaço do Chat e, em seguida, compartilha a resposta.

Pré-requisitos

Objetivos

  • Crie um app de chat que usa a IA generativa para responder a perguntas com base no conhecimento compartilhado nas conversas do espaço do Chat.
  • Com a IA generativa:
    • Detectar e responder a perguntas dos funcionários.
    • Aprenda continuamente com as conversas em andamento em um espaço do Chat.
  • Detecte e responda a mensagens em um espaço do Chat em tempo real, mesmo quando o app do Chat não recebe mensagens diretamente.
  • Manter mensagens gravando e lendo em um banco de dados do Firestore.
  • Facilite a colaboração em um espaço do Chat mencionando os administradores do espaço quando não houver uma resposta para uma pergunta.

Arquitetura

O diagrama a seguir mostra a arquitetura dos recursos do Google Workspace e do Google Cloud usados pelo app de chat do assistente de conhecimento de IA.

Diagrama de arquitetura do app de chat do assistente de conhecimento de IA

O app de chat do assistente de conhecimento de IA funciona assim:

  • Um usuário adiciona o app do Chat, assistente de conhecimento de IA, a um espaço do Chat:

    1. O app do Chat solicita que o usuário que o adicionou ao espaço do Chat configure a autenticação e a autorização.

    2. O app do Chat busca as mensagens do espaço chamando o método spaces.messages.list na API Chat e armazena as mensagens buscadas em um banco de dados do Firestore.

    3. O app do Chat chama o método subscriptions.create na API Google Workspace Events para começar a detectar eventos, como mensagens, no espaço. O endpoint de notificação da assinatura é um tópico do Pub/Sub que usa o Eventarc para encaminhar o evento ao app Chat.

    4. O app do Chat posta uma mensagem de introdução no espaço.

  • Um usuário no espaço do Chat posta uma mensagem:

    1. O app de chat recebe a mensagem em tempo real do tópico do Pub/Sub.

    2. O app do Chat adiciona a mensagem ao banco de dados do Firestore.

      Se um usuário editar ou excluir a mensagem posteriormente, o app do Chat receberá o evento atualizado ou excluído em tempo real e, em seguida, atualizará ou excluirá a mensagem no banco de dados do Firestore.

    3. O app Chat envia a mensagem para a Vertex AI com o Gemini:

      1. A instrução instrui a Vertex AI com o Gemini a verificar se a mensagem inclui uma pergunta. Se sim, o Gemini vai responder à pergunta com base no histórico de mensagens do espaço do Chat armazenado no Firestore e o app Google Chat vai enviar a mensagem para o espaço do Chat. Caso contrário, não responda.

      2. Se a Vertex AI com o Gemini responder à pergunta, o app do Chat vai publicar a resposta chamando o método spaces.messages.create na API Chat usando a autenticação do app.

        Se a Vertex AI com Gemini não conseguir responder à pergunta, o app do Chat vai postar uma mensagem dizendo que não conseguiu encontrar uma resposta para essa pergunta no histórico do espaço do Chat.

        As mensagens sempre incluem um botão de ação acessório em que os usuários podem clicar, o que faz com que o app do Chat @mencione um administrador do espaço pedindo para ele responder.

  • O app Chat recebe uma notificação de ciclo de vida da API Google Workspace Events informando que a assinatura do espaço do Chat está prestes a expirar:

    1. O app do Chat envia uma solicitação para renovar a assinatura chamando o método subscriptions.patch na API Google Workspace Events.
  • O app do Chat é removido de um espaço do Chat:

    1. O app do Chat exclui a assinatura chamando o método subscriptions.delete na API Google Workspace Events.

    2. O app do Chat exclui os dados do espaço do Chat do Firestore.

Confira os produtos usados pelo app Assistente de conhecimento sobre IA do Chat

O app Chat, assistente de conhecimento sobre IA, usa os seguintes produtos do Google Workspace e do Google Cloud:

  • API Vertex AI com Gemini: uma plataforma de IA generativa com tecnologia Gemini. O app Chat, assistente de conhecimento de IA, usa a API Vertex AI com o Gemini para reconhecer, entender e responder às perguntas dos funcionários.
  • API Chat: uma API para desenvolver apps do Google Chat que recebem e respondem a eventos de interação do Chat, como mensagens. O app de chat do assistente de conhecimento por IA usa a API Chat para:
    • Receba e responda a eventos de interação enviados pelo Chat.
    • Listar as mensagens enviadas em um espaço.
    • Poste respostas para as perguntas dos usuários em um espaço.
    • Configure atributos que determinam como ele aparece no Chat, como nome e imagem do avatar.
  • API Google Workspace Events: com essa API, você pode se inscrever em eventos e gerenciar notificações sobre alterações nos aplicativos do Google Workspace. O app de chat do assistente de conhecimento de IA usa a API Google Workspace Events para detectar mensagens postadas em um espaço do Chat. Assim, ele pode detectar e responder a perguntas, mesmo quando não é mencionado.
  • Firestore: um banco de dados de documentos sem servidor. O app de chat do assistente de conhecimento IA usa o Firestore para armazenar dados sobre mensagens enviadas em um espaço do Chat.
  • Pub/Sub: o Pub/Sub é um serviço de mensagens assíncrono e escalonável que separa os serviços que produzem mensagens dos serviços que processam essas mensagens. O app do Chat, assistente de conhecimento de IA, usa o Pub/Sub para receber eventos de assinatura dos espaços do Chat.
  • Eventarc: o Eventarc permite criar arquiteturas orientadas a eventos sem precisar implementar, personalizar ou manter a infraestrutura subjacente. O app de chat do assistente de conhecimento por IA usa o Eventarc para encaminhar eventos do Pub/Sub para um espaço de chat e a função do Cloud que recebe e processa os eventos de assinatura.
  • Cloud Functions: um serviço de computação leve sem servidor que permite criar funções autônomas de finalidade única que podem responder a eventos de interação e assinatura do Chat sem a necessidade de gerenciar um servidor ou um ambiente de execução. O app Chat, assistente de conhecimento de IA, usa duas funções do Cloud chamadas:
    • app: hospeda o endpoint HTTP ao qual o Chat envia eventos de interação e como uma plataforma de computação para executar a lógica que processa e responde a esses eventos.
    • eventsApp: recebe e processa eventos do espaço do Chat, como mensagens de uma assinatura do Pub/Sub.
    O Cloud Functions usa os seguintes produtos do Google Cloud para criar e hospedar recursos de computação:
    • Cloud Build: plataforma totalmente gerenciada de integração, entrega e implantação contínuas que executa builds automatizados.
    • Cloud Run: ambiente totalmente gerenciado para executar aplicativos conteinerizados.

Prepare o ambiente

Nesta seção, mostramos como criar e configurar um projeto do Google Cloud para o app do Chat.

Criar um projeto do Google Cloud

Console do Google Cloud

  1. No console do Google Cloud, acesse Menu > IAM e administrador > Criar um projeto.

    Acessar "Criar um projeto"

  2. 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. Portanto, escolha um ID que atenda às suas necessidades durante a vida útil do projeto.

  3. No campo Local, clique em Procurar para mostrar possíveis locais para o projeto. Em seguida, clique em Selecionar.
  4. Clique em Criar. O console do Google Cloud navega até a página "Painel", e seu projeto é criado em alguns minutos.

CLI da gcloud

Em um dos seguintes ambientes de desenvolvimento, acesse a CLI do Google Cloud (gcloud):

  • Cloud Shell: para usar um terminal on-line com a CLI gcloud já configurada, ative o Cloud Shell.
    Ativar o Cloud Shell
  • Shell local: para usar um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud.
    Para criar um projeto do Cloud, use o comando gcloud projects create:
    gcloud projects create PROJECT_ID
    Substitua PROJECT_ID definindo o ID do projeto que você quer criar.

Ativar o faturamento para o projeto do Cloud

Console do Google Cloud

  1. No console do Google Cloud, acesse Faturamento. Clique em Menu > Faturamento > Meus projetos.

    Acessar "Faturamento para Meus projetos"

  2. Em Selecionar uma organização, escolha a organização associada ao seu projeto do Google Cloud.
  3. Na linha do projeto, abra o menu Ações (), clique em Alterar faturamento e escolha a conta do Cloud Billing.
  4. Clique em Definir conta.

CLI da gcloud

  1. Para listar as contas de faturamento disponíveis, execute:
    gcloud billing accounts list
  2. 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 do Cloud em que você quer ativar o faturamento.
    • BILLING_ACCOUNT_ID é o ID da conta de faturamento a ser vinculada ao projeto do Google Cloud.

Ative as APIs

Console do Google Cloud

  1. 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, a API Google Workspace Events, a API Eventarc e a API Cloud Run Admin.

    Ativar as APIs

  2. Confirme se você está ativando as APIs no projeto do Cloud correto e clique em Next.

  3. Confirme se você está ativando as APIs corretas e clique em Ativar.

CLI da gcloud

  1. Se necessário, defina o projeto atual do Cloud como o que você criou:

    gcloud config set project PROJECT_ID

    Substitua PROJECT_ID pelo ID do projeto do projeto do Cloud que você criou.

  2. Ative a API Google Chat, a API Vertex AI, a API Cloud Functions, a API Firestore, a API Cloud Build, a API Pub/Sub, a API Google Workspace Events, a API Eventarc e a API Cloud Run Admin:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com

Configurar a autenticação e a autorização

A autenticação e a autorização permitem que o app de chat acesse recursos no Google Workspace e no Google Cloud.

Neste tutorial, você vai publicar o app Google Chat internamente, então pode usar as informações de marcadores de posição. Antes de publicar o app Google Chat externamente, substitua as informações de marcador de posição por informações reais na tela de consentimento.

  1. No console do Google Cloud, acesse Menu > APIs e serviços > Tela de permissão OAuth.

    Acessar a tela de permissão OAuth

  2. Em Tipo de usuário, selecione Interno e clique em Criar.

  3. Em Nome do app, digite AI knowledge assistant.

  4. Em E-mail para suporte do usuário, selecione seu endereço de e-mail ou um Grupo do Google apropriado.

  5. Em Dados de contato do desenvolvedor, insira seu endereço de e-mail.

  6. Clique em Salvar e continuar.

  7. Clique em Adicionar ou remover escopos. É exibido um painel com uma lista de escopos de cada API ativada no projeto do Cloud.

  8. Em Adicionar escopos manualmente, cole o seguinte escopo:

    • https://www.googleapis.com/auth/chat.messages
  9. Clique em Adicionar à tabela.

  10. Clique em Atualizar.

  11. Clique em Salvar e continuar.

  12. Revise o resumo do registro do app e clique em Voltar ao painel.

Criar credenciais de ID do cliente OAuth

  1. No console do Google Cloud, acesse Menu > APIs e serviços > Credenciais.

    Ir para Credenciais

  2. Clique em Criar credenciais > ID do cliente OAuth.

  3. Clique em Tipo de aplicativo > Aplicativo da Web.

  4. No campo Nome, digite um nome para a credencial. Esse nome só é mostrado no console do Google Cloud.

  5. Em URIs de redirecionamento autorizados, clique em Adicionar URI.

  6. Em URIs 1, digite o seguinte:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    Substitua:

    • REGION: a região da Função do Cloud, como us-central1. Mais tarde, ao criar as duas Funções do Cloud, defina a região delas como esse valor.
    • PROJECT_ID: o ID do projeto do Cloud que você criou.
  7. Clique em Criar.

  8. Na janela Cliente OAuth criado, clique em Fazer o download do JSON.

  9. Salve o arquivo baixado como client_secrets.json. Mais tarde, ao criar as duas funções do Cloud, inclua o arquivo client_secrets.json em cada implantação.

  10. Clique em OK.

Crie o tópico do Pub/Sub

O tópico do Pub/Sub funciona com a API Google Workspace Events para se inscrever em eventos em um espaço do Chat, como mensagens, e notificar o app do Chat em tempo real.

Saiba como criar o tópico do Pub/Sub:

Console do Google Cloud

  1. No console do Google Cloud, acesse Menu > Pub/Sub.

    Ir para o Pub/Sub

  2. Clique em Criar tópico.

  3. Em ID do tópico, digite events-api.

  4. Desmarque a opção Adicionar uma assinatura padrão.

  5. Em Criptografia, selecione Chave de criptografia gerenciada pelo Google.

  6. Clique em Criar. O tópico Pub/Sub é exibido.

  7. Para que esse tópico do Pub/Sub e a API Google Workspace Events funcionem juntos, conceda ao usuário do Chat do IAM a permissão para postar no tópico do Pub/Sub:

    1. No painel events-api, em PERMISSÕES, clique em Adicionar Principal.

    2. Em Adicionar participantes, em Novos participantes, digite chat-api-push@system.gserviceaccount.com.

    3. Em Atribuir papéis, em Selecionar um papel, clique em Pub/Sub > Editor do Pub/Sub.

    4. Clique em Salvar.

CLI da gcloud

  1. Crie um tópico do Pub/Sub com o ID events-api:

    gcloud pubsub topics create events-api
  2. Conceda permissão ao usuário do IAM do Chat para postar no tópico do Pub/Sub:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

Criar o banco de dados do Firestore

O banco de dados do Firestore persiste e recupera dados dos espaços do Chat, como mensagens. Você não define o modelo de dados, que é definido implicitamente no código de exemplo pelos arquivos model/message.js e services/firestore-service.js.

O banco de dados do app de chat do assistente de conhecimento de IA usa um modelo de dados NoSQL baseado em documentos organizados em coleções . Para saber mais, consulte o modelo de dados do Firestore.

O diagrama a seguir é uma visão geral do modelo de dados do app Chat do assistente de conhecimento de IA:

Modelo de dados do banco de dados do Firestore.

A raiz contém duas coleções:

  1. spaces, em que cada documento representa um espaço do Chat a que o app do Chat foi adicionado. Cada mensagem é representada por um documento na subcoleção messages.

  2. users, em que cada documento representa um usuário que adicionou o app do Chat a um espaço do Chat.

Conferir definições de campos, coleções e documentos

spaces

Um espaço do Chat que inclui o app Assistente de conhecimento de IA.

Campos
Document IDString
ID exclusivo de um espaço específico. Uma parte do nome do recurso do espaço na API Chat.
messagesSubcollection of Documents (messages)
Mensagens enviadas no espaço do Chat. Corresponde ao Document ID de um message no Firebase.
spaceNameString
O nome exclusivo do espaço na API Chat. Corresponde ao nome do recurso do espaço na API Chat.

messages

Mensagens enviadas no espaço do Chat.

Campos
Document IDString
ID exclusivo de uma mensagem específica.
nameString
O nome exclusivo de uma mensagem na API Chat. Corresponde ao nome do recurso da mensagem na API Chat.
textString
O corpo do texto da mensagem.
timeString (Timestamp format)
A hora em que a mensagem foi criada.

users

Usuários que adicionaram o app do Chat, assistente de conhecimento de IA, a um espaço do Chat.

Campos
Document IDString
ID exclusivo de um usuário específico.
accessTokenString
O token de acesso concedido durante a autorização do usuário do OAuth 2.0 usado para chamar as APIs do Google Workspace.
refreshTokenString
O token de atualização concedido durante a autorização do usuário do OAuth 2.0.

Veja como criar o banco de dados do Firestore:

Console do Google Cloud

  1. No console do Google Cloud, acesse Menu > Firestore.

    Vá para o Firestore

  2. Clique em Criar banco de dados.

  3. Em Selecione o modo do Firestore, clique em Modo nativo.

  4. Clique em Continuar.

  5. Configure o banco de dados:

    1. Em Nome do banco de dados, deixe o ID do banco de dados como (default).

    2. Em Tipo de local, selecione Região.

    3. Em Região, especifique uma região para seu banco de dados, como us-central1. Para ter a melhor performance, selecione o mesmo local ou um local próximo do app Chat nas Funções do Cloud.

  6. Clique em Criar banco de dados.

CLI da gcloud

  • Crie um banco de dados do Firestore no modo Nativo:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    Substitua LOCATION pelo nome de uma região do Firestore, como us-central1. Para melhor desempenho, selecione o mesmo local ou um local próximo do Cloud Functions do app do Chat.

Criar e implantar o app do Chat

Agora que seu projeto do Google Cloud foi criado e configurado, está tudo pronto para você criar e implantar o app do Chat. Nesta seção, faça o seguinte:

  1. Criar e implantar duas funções do Cloud. Um para responder a eventos de interação com o Chat e outro para responder a eventos do Pub/Sub.
  2. Crie e implante um app de chat na página de configuração da API Google Chat.

Criar e implantar o Cloud Functions

Nesta seção, você vai criar e implantar duas funções do Cloud chamadas:

  • app: hospeda e executa o código do app do Chat que responde a eventos recebidos do Chat como solicitações HTTP.
  • eventsApp: recebe e processa eventos do espaço do Chat, como mensagens do Pub/Sub.

Juntas, essas funções do Cloud compõem a lógica do aplicativo do assistente de conhecimento de IA do app Chat.

Se preferir, antes de criar o Cloud Functions, analise e se familiarize com o exemplo de código hospedado no GitHub.

Ver no GitHub

Criar e implantar app

Console do Google Cloud

  1. Faça o download do código do GitHub como um arquivo ZIP.

    Fazer o download do arquivo ZIP

  2. Extraia o arquivo ZIP salvo.

    A pasta extraída contém todo o repositório de amostras do Google Workspace.

  3. Na pasta extraída, navegue até o diretório google-chat-samples-main/node/ai-knowledge-assistant.

  4. No diretório google-chat-samples/node/ai-knowledge-assistant, adicione o arquivo client_secrets.json que você fez o download ao criar credenciais do ID do cliente do OAuth para autenticação e autorização.

  5. Compacte o conteúdo da pasta ai-knowledge-assistant em um arquivo zip.

    O diretório raiz do arquivo ZIP precisa conter os seguintes arquivos e pastas:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • client_secrets.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. No console do Google Cloud, acesse Menu > Cloud Functions.

    Acesse o Cloud Functions

    Verifique se o projeto do Google Cloud para seu app do Chat está selecionado.

  7. Clique em Criar função.

  8. Na página Criar função, configure sua função:

    1. Em Ambiente, selecione Função do Cloud Run.
    2. Em Nome da função, digite app.
    3. Em Região, selecione uma região, como us-central1. Essa região precisa corresponder àquela definida no URI de redirecionamento autorizado quando você criou credenciais do ID do cliente OAuth para autenticação e autorização.
    4. Em Tipo de gatilho, selecione HTTPS.
    5. Em Autenticação, selecione Permitir invocações não autenticadas.
    6. Clique em Próxima.
  9. Em Ambiente de execução, selecione Node.js 20.

  10. Em Ponto de entrada, exclua o texto padrão e insira app.

  11. Em Código-fonte, selecione Upload de CEP.

  12. Em Bucket de destino, crie ou selecione um bucket:

    1. Clique em Procurar.
    2. Escolha um bucket.
    3. Clique em Selecionar.

    O Google Cloud faz upload do arquivo ZIP e extrai os arquivos de componentes neste bucket. Em seguida, o Cloud Functions copia os arquivos de componentes para a função do Cloud.

  13. Em Arquivo ZIP, faça upload do arquivo ZIP que você baixou do GitHub, extraiu e recompactou:

    1. Clique em Procurar.
    2. Acesse e selecione o arquivo ZIP.
    3. Clique em Abrir.
  14. Clique em Implantar.

    A página Detalhes do Cloud Functions será aberta e sua função será exibida com dois indicadores de progresso: um para a compilação e outro para o serviço. Quando os dois indicadores de progresso desaparecem e são substituídos por uma marca de seleção, a função é implantada e fica pronta.

  15. Edite o exemplo de código para definir constantes:

    1. Na página Detalhes da função do Cloud, clique em Editar.
    2. Clique em Próxima.
    3. Em Código-fonte, selecione Editor in-line.
    4. No editor in-line, abra e edite o arquivo env.js:
      1. Defina o valor de project como o ID do projeto do Cloud.
      2. Defina o valor de location como a região da função do Cloud Functions, como us-central1.
  16. Clique em Implantar.

CLI da gcloud

  1. Clone o código do GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Alterne para o diretório que contém o código deste app do Chat assistente de conhecimento de IA:

    cd google-chat-samples/node/ai-knowledge-assistant
  3. No diretório google-chat-samples/node/ai-knowledge-assistant, adicione o arquivo client_secrets.json que você fez o download ao criar credenciais do ID do cliente do OAuth para autenticação e autorização.

  4. Edite o arquivo env.js para definir as variáveis de ambiente:

    1. Defina o valor de project como o ID do projeto do Cloud.
    2. Defina o valor de location como a região da função do Cloud, como us-central1.
  5. Implante a função do Cloud no Google Cloud:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated

    Substitua REGION pelo valor da região da função do Cloud Function para que ele corresponda ao definido no arquivo env.js, como us-central1.

Criar e implantar eventsApp

Console do Google Cloud

  1. No console do Google Cloud, acesse Menu > Cloud Functions.

    Acesse o Cloud Functions

    Verifique se o projeto do Google Cloud para seu app do Chat está selecionado.

  2. Clique em Criar função.

  3. Na página Criar função, configure sua função:

    1. Em Ambiente, selecione Função do Cloud Run.
    2. Em Nome da função, digite eventsApp.
    3. Em Região, selecione uma região, como us-central1. Essa região precisa corresponder àquela definida no URI de redirecionamento autorizado quando você criou credenciais do ID do cliente OAuth para autenticação e autorização.
    4. Em Tipo de gatilho, selecione Cloud Pub/Sub.
    5. Em Tópico do Cloud Pub/Sub, selecione o nome do tópico do Pub/Sub que você criou, que tem o formato projects/PROJECT/topics/events-api, em que PROJECT é o ID do projeto do Cloud.
    6. Se uma mensagem começar com Service account(s) might not have enough permissions to deploy the function with the selected trigger., clique em Conceder tudo.
    7. Clique em Próxima.
  4. Em Ambiente de execução, selecione Node.js 20.

  5. Em Ponto de entrada, exclua o texto padrão e insira eventsApp.

  6. Em Código-fonte, selecione Zip do Cloud Storage.

  7. Em Local do Cloud Storage, clique em Procurar.

  8. Selecione o bucket em que você fez upload do arquivo ZIP ao criar a Função do Cloud app.

  9. Clique no arquivo ZIP que você enviou.

  10. Clique em Selecionar.

  11. Clique em Implantar.

    A página Detalhes do Cloud Functions é aberta e sua função aparece com três indicadores de progresso: um para a versão, um para o serviço e outro para o gatilho. Quando os três indicadores de progresso desaparecem e são substituídos por uma marca de seleção, a função está implantada e pronta.

  12. Edite o exemplo de código para definir constantes:

    1. Na página Detalhes da função do Cloud, clique em Editar.
    2. Clique em Próxima.
    3. Em Código-fonte, selecione Editor in-line.
    4. No editor in-line, abra e edite o arquivo env.js:
      1. Defina o valor de project como o ID do projeto do Cloud.
      2. Defina o valor de location como a região da função do Cloud Functions, como us-central1.
  13. Clique em Implantar.

CLI da gcloud

  1. Na CLI gcloud, se você ainda não estiver lá, mude para o diretório que contém o código desse app do Chat assistente de conhecimento de IA que você clonou anteriormente do GitHub:

    cd google-chat-samples/node/ai-knowledge-assistant
  2. No diretório google-chat-samples/node/ai-knowledge-assistant, adicione o arquivo client_secrets.json que você salvou quando criou credenciais de ID do cliente OAuth para autenticação e autorização.

  3. Edite o arquivo env.js para definir variáveis de ambiente:

    1. Defina o valor de project como o ID do projeto do Cloud.
    2. Defina o valor de location como a região da função do Cloud, como us-central1.
  4. Implante a função do Cloud no Google Cloud:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api

    Substitua REGION pelo valor da região da função do Cloud Function para que ele corresponda ao definido no arquivo env.js, como us-central1.

Copie o URL do gatilho da função do Cloud app

Cole o URL do gatilho da função do Cloud app na próxima seção ao configurar o app do Chat no console do Google Cloud.

Console do Google Cloud

  1. No console do Google Cloud, acesse Menu > Cloud Functions.

    Acesse o Cloud Functions

  2. Na coluna Nome da lista de funções do Cloud, clique em app.

  3. Clique em Gatilho.

  4. Copie o URL.

CLI da gcloud

  1. Descreva a Função do Cloud app:

    gcloud functions describe app
  2. Copie a propriedade url.

Configurar o app do Chat no console do Google Cloud

Esta seção mostra 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 e o URL do gatilho da função do Cloud do app do Chat para onde ele envia eventos de interação do Chat.

  1. No console do Google Cloud, clique em Menu > Mais produtos > Google Workspace > Biblioteca de produtos > API Google Chat > Gerenciar > Configuração.

    Acessar a configuração da API Chat

  2. Em Nome do app, digite AI knowledge assistant.

  3. No URL do avatar, digite https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.

  4. Em Descrição, digite Answers questions with AI.

  5. Clique no botão Ativar recursos interativos para ativar essa opção.

  6. Em Funcionalidade, selecione Participar de espaços e conversas em grupo.

  7. Em Configurações de conexão, selecione URL do endpoint HTTP.

  8. No URL do endpoint HTTP, cole o URL do gatilho da função do Cloud app no formato https://REGION-PROJECT_ID.cloudfunctions.net/app, em que REGION é a região da função do Cloud, como us-central1 e PROJECT_ID é o ID do projeto que você criou.

  9. Em Visibilidade, selecione Disponibilidade do app de chat para pessoas e grupos específicos no seu domínio do Workspace e digite seu endereço de e-mail.

  10. Opcionalmente, em Registros, selecione Registrar erros no Logging.

  11. Clique em Salvar. Uma mensagem de configuração salva aparece, o que significa que o app de chat está pronto para teste.

Teste o app do Chat

Teste o app Chat, que é assistente de conhecimento de IA, em um espaço do Chat com mensagens. Faça perguntas que o app Assistente de conhecimento de IA pode responder.

Confira algumas maneiras de testar o app de chat do assistente de conhecimento de IA:

  • Adicione o app do Chat, assistente de conhecimento de IA, a um espaço do Chat existente e faça perguntas relevantes para esse espaço.
  • Crie um espaço do Chat e poste algumas mensagens para usar como fonte de dados. As mensagens podem ser extraídas do Gemini com um comando como Answer 20 common onboarding questions employees ask their teams.. Também é possível colar alguns parágrafos do guia desenvolver com o Chat: visão geral e depois fazer perguntas sobre isso.

Para este tutorial, vamos criar um espaço do Chat e colar alguns parágrafos do guia Desenvolver com o Chat.

  1. Abra o Google Chat.

    Acesse o Google Chat

  2. Criar um espaço do Chat:

    1. Clique em Novo chat > Criar um espaço.

    2. Em Nome do espaço, digite Testing AI knowledge assistant app.

    3. Em Para que serve este espaço?, selecione Colaboração.

    4. Em Configurações de acesso, escolha quem pode acessar o espaço.

    5. Clique em Criar.

  3. Adicione mensagens para usar como fonte de dados:

    1. Em um navegador da Web, acesse o guia Visão geral do desenvolvimento com o Chat.

    2. Copie e cole o conteúdo do guia no espaço do Chat que você criou.

  4. Adicione o app Chat, assistente de conhecimento sobre IA:

    1. Na barra de composição de mensagens, digite @AI knowledge assistant e, no menu de sugestões que aparece, selecione o app de chat do assistente de conhecimento de IA e pressione enter.

    2. Uma mensagem vai aparecer perguntando se você quer adicionar o app de chat do assistente de conhecimento de IA ao espaço. Clique em Adicionar ao espaço.

    3. Se esta for a primeira vez que você adiciona o app do Chat a um espaço, será necessário configurar a autenticação e a autorização para o app do Chat:

      1. Clique em Configurar.
      2. Uma nova janela ou guia do navegador será aberta para você escolher uma Conta do Google. Escolha a conta que você está testando.
      3. Revise as permissões solicitadas pelo app Chat do assistente de conhecimento de IA. Para concedê-las, clique em Permitir.
      4. Uma mensagem informando You may close this page now. aparece. Feche a janela ou guia do navegador e volte ao espaço do Chat.
  5. Faça uma pergunta:

    1. Na barra de composição de mensagens, digite uma pergunta como What are Google Chat apps?

    2. O app Chat, assistente de conhecimento de IA, responde.

    3. Ou, se a resposta não for precisa ou suficiente, clique em Receber ajuda para melhorar o histórico de conversas da IA. O app de chat do assistente de conhecimento de IA menciona um administrador do espaço e pede que ele responda à pergunta. Da próxima vez, o app de chat do assistente de conhecimento de IA vai saber a resposta.

Considerações, escolhas de arquiteturas alternativas e próximas etapas

Esta seção analisa outras maneiras de criar o app de chat do assistente de conhecimento de IA.

Firestore, Cloud Storage ou chamar List Messages na API Chat

Este tutorial recomenda armazenar dados do espaço do Chat, como mensagens, em um banco de dados do Firestore, porque isso melhora o desempenho em comparação com a chamada do método list no recurso Message com a API Chat sempre que o app do Chat responde a uma pergunta. Além disso, chamar list messages repetidamente pode fazer com que o app de chat atinja os limites de cota da API.

No entanto, se o histórico de conversas de um espaço do Chat ficar muito longo, o uso do Firestore pode se tornar caro.

O Cloud Storage é uma alternativa ao Firestore. Cada espaço em que o app do Chat do assistente de conhecimento de IA está ativo recebe um objeto próprio, e cada objeto é um arquivo de texto que contém todas as mensagens no espaço. A vantagem dessa abordagem é que todo o conteúdo do arquivo de texto pode ser alimentado à Vertex AI com o Gemini de uma só vez, mas a desvantagem é que é necessário mais trabalho atualizar o histórico de conversas, porque não é possível anexar a um objeto no Cloud Storage, apenas substituí-lo. Essa abordagem não faz sentido se você atualiza regularmente o histórico de mensagens, mas seria uma boa opção se você o atualiza em lote periodicamente, por exemplo, uma vez por semana.

Resolver problemas

Quando um app do Google Chat ou um card retorna um erro, a interface do Chat mostra uma mensagem informando que "Ocorreu um erro". ou "Não foi possível processar sua solicitação". Às vezes, a interface do Chat não mostra nenhuma mensagem de erro, mas o app ou o card do Chat produz um resultado inesperado. Por exemplo, uma mensagem de card 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 a corrigir erros quando o registro de erros para apps de chat estiver ativado. Se precisar de ajuda para visualizar, depurar e corrigir erros, consulte Resolver problemas e corrigir erros do Google Chat.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, recomendamos excluir o projeto do Cloud.

  1. No console do Google Cloud, acesse a página Gerenciar recursos. Clique em Menu > IAM e administrador > Gerenciar recursos.

    Acessar o Resource Manager

  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.