Rispondi alle domande basate sulle conversazioni in Chat con l'app Gemini AI Chat

Questo tutorial mostra come creare un'app Google Chat che risponde alle domande in base alle conversazioni negli spazi di Chat con l'AI generativa basata su Vertex AI con Gemini. L'app Chat utilizza l'API Google Workspace Events e Pub/Sub per riconoscere e rispondere alle domande pubblicate negli spazi di Chat in tempo reale, anche quando non viene menzionata.

L'app Chat utilizza tutti i messaggi inviati nello spazio come origine dati e knowledge base: quando qualcuno pone una domanda, l'app Chat controlla le risposte condivise in precedenza e poi ne condivide una. Se non viene trovata alcuna risposta, viene visualizzato un messaggio che indica che non è possibile rispondere. Per ogni risposta, gli utenti possono fare clic su un pulsante di azione accessorio per @menzionare un gestore dello spazio e chiedere una risposta. Utilizzando l'AI Gemini, l'app Google Chat si adatta e amplia la sua knowledge base man mano che si addestra continuamente sulle conversazioni negli spazi a cui viene aggiunta.

Ecco come funziona l'app di chat in uno spazio di onboarding e assistenza per i dipendenti:

  • Se menzioni l'app Assistente AI, questa viene aggiunta a uno spazio.
    Figura 1. Charlie aggiunge l'app di Chat dell'assistente AI per la conoscenza a uno spazio di Chat.
  • Dana fa una domanda.
    Figura 2. Dana chiede se l'azienda offre corsi di public speaking.
  • L'app Chat dell'assistente di conoscenza AI risponde alla domanda.
    Figura 3. L'app Chat dell'assistente di conoscenza AI richiede a Vertex AI con Gemini di rispondere alla domanda di Dana in base alla cronologia delle conversazioni dello spazio Chat e poi condivide la risposta.

Prerequisiti

Obiettivi

  • Crea un'app di chat che utilizza l'AI generativa per rispondere alle domande in base alle conoscenze condivise nelle conversazioni dello spazio di Chat.
  • Con l'AI generativa:
    • Rileva e rispondi alle domande dei dipendenti.
    • Impara continuamente dalle conversazioni in corso in uno spazio di Chat.
  • Ascolta e rispondi ai messaggi in uno spazio di Chat in tempo reale anche quando l'app Chat non viene utilizzata direttamente.
  • Rendi persistenti i messaggi scrivendo e leggendo da un database Firestore.
  • Facilita la collaborazione in uno spazio di Chat menzionando i gestori dello spazio quando non viene trovata una risposta a una domanda.

Architettura

Il seguente diagramma mostra l'architettura delle risorse Google Workspace e Google Cloud utilizzate dall'app Chat con l'assistente AI per la conoscenza.

Diagramma dell'architettura per l'app di chat dell'assistente basato sull'AI

L'app Chat dell'assistente AI per la conoscenza funziona così:

  • Un utente aggiunge l'app Chat assistente AI a uno spazio di Chat:

    1. L'app Chat chiede all'utente che l'ha aggiunta allo spazio di Chat di configurare l'autenticazione e l'autorizzazione.

    2. L'app Chat recupera i messaggi dello spazio chiamando il metodo spaces.messages.list nell'API Chat e poi archivia i messaggi recuperati in un database Firestore.

    3. L'app Chat chiama il metodo subscriptions.create nell'API Google Workspace Events per iniziare ad ascoltare gli eventi come i messaggi nello spazio. L'endpoint di notifica dell'abbonamento è un argomento Pub/Sub che utilizza Eventarc per inoltrare l'evento all'app Chat.

    4. L'app Chat pubblica un messaggio di presentazione nello spazio.

  • Un utente nello spazio di Chat pubblica un messaggio:

    1. L'app Chat riceve il messaggio in tempo reale dall'argomento Pub/Sub.

    2. L'app Chat aggiunge il messaggio al database Firestore.

      Se un utente modifica o elimina il messaggio in un secondo momento, l'app Chat riceve l'evento aggiornato o eliminato in tempo reale e poi aggiorna o elimina il messaggio nel database Firestore.

    3. L'app Chat invia il messaggio a Vertex AI con Gemini:

      1. Il prompt indica a Vertex AI con Gemini di verificare se il messaggio include una domanda. In caso affermativo, Gemini risponde alla domanda in base alla cronologia dei messaggi dello spazio Chat conservata in Firestore e l'app Google Chat invia il messaggio allo spazio Chat. In caso contrario, non rispondere.

      2. Se Vertex AI con Gemini risponde alla domanda, l'app Chat pubblica la risposta chiamando il metodo spaces.messages.create nell'API Chat utilizzando l'autenticazione dell'app.

        Se Vertex AI con Gemini non riesce a rispondere alla domanda, l'app Chat pubblica un messaggio che indica che non riesce a trovare una risposta alla domanda nella cronologia dello spazio Chat.

        I messaggi includono sempre un pulsante di azione accessoria su cui gli utenti possono fare clic, che fa sì che l'app Chat @menzioni un gestore dello spazio chiedendogli di rispondere.

  • L'app Chat riceve una notifica del ciclo di vita dall'API Google Workspace Events che indica che l'abbonamento allo spazio Chat sta per scadere:

    1. L'app di chat invia una richiesta di rinnovo dell'abbonamento chiamando il metodo subscriptions.patch nell'API Google Workspace Events.
  • L'app Chat viene rimossa da uno spazio Chat:

    1. L'app Chat elimina l'abbonamento chiamando il metodo subscriptions.delete nell'API Google Workspace Events.

    2. L'app Chat elimina i dati dello spazio Chat da Firestore.

Esaminare i prodotti utilizzati dall'app di chat dell'assistente di conoscenza AI

L'app Chat dell'assistente AI per la conoscenza utilizza i seguenti prodotti Google Workspace e Google Cloud:

  • API Vertex AI con Gemini: Una piattaforma di AI generativa basata su Gemini. L'app di chat dell'assistente di conoscenza AI utilizza l'API Vertex AI con Gemini per riconoscere, comprendere e rispondere alle domande dei dipendenti.
  • API Chat: Un'API per lo sviluppo di app Google Chat che ricevono e rispondono a eventi di interazione di Chat, come i messaggi. L'app Chat dell'assistente AI utilizza l'API Chat per:
    • Ricevere e rispondere agli eventi di interazione inviati da Chat.
    • Elenca i messaggi inviati in uno spazio.
    • Pubblicare le risposte alle domande degli utenti in uno spazio.
    • Configura gli attributi che determinano il suo aspetto in Chat, come il nome e l'immagine dell'avatar.
  • API Google Workspace Events: Questa API consente di iscriversi agli eventi e gestire le notifiche di modifica nelle applicazioni Google Workspace. L'app Chat dell'assistente AI Knowledge utilizza l'API Google Workspace Events per ascoltare i messaggi pubblicati in uno spazio Chat in modo da poter rilevare e rispondere alle domande anche quando non viene menzionata.
  • Firestore: un database di documenti serverless. L'app di chat dell'assistente AI utilizza Firestore per archiviare i dati relativi ai messaggi inviati in uno spazio di Chat.
  • Pub/Sub: Pub/Sub è un servizio di messaggistica asincrono e scalabile che disaccoppia i servizi che producono messaggi dai servizi che li elaborano. L'app di chat dell'assistente di conoscenza AI utilizza Pub/Sub per ricevere eventi di abbonamento dagli spazi di Chat.
  • Eventarc: Eventarc ti consente di creare architetture basate su eventi senza dover implementare, personalizzare o gestire l'infrastruttura sottostante. L'app di chat AI knowledge assistant utilizza Eventarc per instradare gli eventi da Pub/Sub a uno spazio Chat e alla funzione Cloud che riceve ed elabora gli eventi di sottoscrizione.
  • Cloud Functions: Un servizio di computing serverless leggero che ti consente di creare funzioni autonome a uso specifico in grado di rispondere a eventi di interazione e abbonamento di Chat senza la necessità di gestire un ambiente server o di runtime. L'app Chat dell'assistente AI utilizza due Cloud Functions denominate:
    • app: ospita l'endpoint HTTP a cui Chat invia gli eventi di interazione e funge da piattaforma di calcolo per eseguire la logica che elabora e risponde a questi eventi.
    • eventsApp: riceve ed elabora gli eventi dello spazio Chat, ad esempio i messaggi di un abbonamento Pub/Sub.
    Cloud Functions utilizza i seguenti prodotti Google Cloud per creare e ospitare risorse di calcolo:
    • Cloud Build: Una piattaforma di integrazione continua, distribuzione e deployment completamente gestita che esegue build automatizzate.
    • Cloud Run: Un ambiente completamente gestito per l'esecuzione di app containerizzate.

Prepara l'ambiente

Questa sezione mostra come creare e configurare un progetto Google Cloud per l'app di chat.

Crea un progetto Google Cloud

Console Google Cloud

  1. Nella console Google Cloud, vai a Menu > IAM e amministrazione > Crea un progetto.

    Vai a Crea un progetto

  2. Nel campo Nome progetto, inserisci un nome descrittivo per il progetto.

    (Facoltativo) Per modificare l'ID progetto, fai clic su Modifica. L'ID progetto non può essere modificato dopo la creazione del progetto, quindi scegli un ID che soddisfi le tue esigenze per l'intera durata del progetto.

  3. Nel campo Posizione, fai clic su Sfoglia per visualizzare le potenziali posizioni per il tuo progetto. Quindi, fai clic su Seleziona.
  4. Fai clic su Crea. La console Google Cloud passa alla pagina Dashboard e il progetto viene creato entro pochi minuti.

Interfaccia a riga di comando gcloud

In uno dei seguenti ambienti di sviluppo, accedi a Google Cloud CLI (gcloud):

  • Cloud Shell: per utilizzare un terminale online con gcloud CLI già configurato, attiva Cloud Shell.
    Attiva Cloud Shell
  • Shell locale: per utilizzare un ambiente di sviluppo locale, installa e inizializza gcloud CLI.
    Per creare un progetto Cloud, utilizza il comando gcloud projects create:
    gcloud projects create PROJECT_ID
    Sostituisci PROJECT_ID impostando l'ID del progetto che vuoi creare.

Abilita la fatturazione per il progetto Cloud

Console Google Cloud

  1. Nella console Google Cloud, vai a Fatturazione. Fai clic su Menu > Fatturazione > I miei progetti.

    Vai a Fatturazione per i miei progetti

  2. In Seleziona un'organizzazione, scegli l'organizzazione associata al tuo progetto Google Cloud.
  3. Nella riga del progetto, apri il menu Azioni (), fai clic su Modifica fatturazione e scegli l'account di fatturazione Cloud.
  4. Fai clic su Imposta account.

Interfaccia a riga di comando gcloud

  1. Per elencare gli account di fatturazione disponibili, esegui:
    gcloud billing accounts list
  2. Collega un account di fatturazione a un progetto Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Sostituisci quanto segue:

    • PROJECT_ID è l'ID progetto del progetto Cloud per il quale vuoi attivare la fatturazione.
    • BILLING_ACCOUNT_ID è l'ID account di fatturazione da collegare al progetto Google Cloud.

Abilita le API

Console Google Cloud

  1. Nella console Google Cloud, abilita l'API Google Chat, l'API Vertex AI, l'API Cloud Functions, l'API Firestore, l'API Cloud Build, l'API Pub/Sub, l'API Google Workspace Events, l'API Eventarc e l'API Cloud Run Admin.

    Abilita le API

  2. Verifica di abilitare le API nel progetto Cloud corretto, poi fai clic su Avanti.

  3. Verifica di abilitare le API corrette, poi fai clic su Abilita.

Interfaccia a riga di comando gcloud

  1. Se necessario, imposta il progetto Cloud corrente su quello che hai creato:

    gcloud config set project PROJECT_ID

    Sostituisci PROJECT_ID con l'ID progetto del progetto Cloud che hai creato.

  2. Abilita l'API Google Chat, l'API Vertex AI, l'API Cloud Functions, l'API Firestore, l'API Cloud Build, l'API Pub/Sub, l'API Google Workspace Events, l'API Eventarc e l'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

Configurare l'autenticazione e l'autorizzazione

L'autenticazione e l'autorizzazione consentono all'app Chat di accedere alle risorse in Google Workspace e Google Cloud.

In questo tutorial, pubblichi l'app Google Chat internamente, quindi puoi utilizzare informazioni segnaposto. Prima di pubblicare esternamente l'app Google Chat, sostituisci le informazioni segnaposto con informazioni reali per la schermata di consenso.

  1. Nella console Google Cloud, vai a Menu > > Branding.

    Vai a Branding

  2. Se hai già configurato , puoi configurare le seguenti impostazioni della schermata per il consenso OAuth in Branding, Pubblico e Accesso ai dati. Se viene visualizzato un messaggio che indica non ancora configurata, fai clic su Inizia:

    1. In Informazioni sull'app, nella sezione Nome app, digita AI knowledge assistant.
    2. In Email di assistenza utenti, seleziona il tuo indirizzo email o un gruppo Google appropriato.
    3. Fai clic su Avanti.
    4. Nella sezione Pubblico, seleziona Interno. Se non riesci a selezionare Interno, seleziona Esterno.
    5. Fai clic su Avanti.
    6. Nella sezione Informazioni di contatto, inserisci un indirizzo email a cui ricevere notifiche relative a eventuali modifiche al tuo progetto.
    7. Fai clic su Avanti.
    8. In Fine, esamina le Norme relative ai dati utente dei servizi API di Google e, se le accetti, seleziona Accetto le Norme relative ai dati utente dei servizi API di Google.
    9. Fai clic su Continua.
    10. Fai clic su Crea.
    11. Se hai selezionato Esterno per il tipo di utente, aggiungi utenti di test:
      1. Fai clic su Segmento di pubblico.
      2. Nella sezione Utenti di test, fai clic su Aggiungi utenti.
      3. Inserisci il tuo indirizzo email e gli altri utenti di test autorizzati, quindi fai clic su Salva.
  3. Fai clic su Accesso ai dati > Aggiungi o rimuovi ambiti. Viene visualizzato un riquadro con un elenco di ambiti per ogni API che hai abilitato nel tuo progetto Google Cloud.

    1. In Aggiungi ambiti manualmente, incolla il seguente ambito:

      • https://www.googleapis.com/auth/chat.messages
    2. Fai clic su Aggiungi alla tabella.

    3. Fai clic su Aggiorna.

    4. Dopo aver selezionato gli ambiti richiesti dalla tua app, fai clic su Salva nella pagina Accesso ai dati.

Crea credenziali ID client OAuth

  1. Nella console Google Cloud, vai a Menu > API e servizi > Credenziali.

    Vai a credenziali

  2. Fai clic su Crea credenziali > ID client OAuth.

  3. Fai clic su Tipo di applicazione > Applicazione web.

  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console Google Cloud.

  5. In URI di reindirizzamento autorizzati, fai clic su Aggiungi URI.

  6. In URI 1, digita quanto segue:

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

    Sostituisci quanto segue:

    • REGION: la regione della Funzione Cloud, ad esempio us-central1. In un secondo momento, quando crei le due Funzioni Cloud, devi impostare la regione su questo valore.
    • PROJECT_ID: l'ID progetto del progetto Cloud che hai creato.
  7. Fai clic su Crea.

  8. Nella finestra Client OAuth creato, fai clic su Scarica JSON.

  9. Salva il file scaricato come credentials.json. In un secondo momento, quando crei le due funzioni Cloud Functions, includi il file credentials.json in ogni deployment.

  10. Fai clic su OK.

Crea l'argomento Pub/Sub

L'argomento Pub/Sub funziona con l'API Google Workspace Events per iscriversi agli eventi in uno spazio di Chat, come i messaggi, e inviare notifiche all'app di Chat in tempo reale.

Ecco come creare l'argomento Pub/Sub:

Console Google Cloud

  1. Nella console Google Cloud, vai a Menu > Pub/Sub.

    Vai a Pub/Sub.

  2. Fai clic su Crea argomento.

  3. In ID argomento, digita events-api.

  4. Deseleziona Aggiungi una sottoscrizione predefinita.

  5. In Crittografia, seleziona Chiave di crittografia gestita da Google.

  6. Fai clic su Crea. Viene visualizzato l'argomento Pub/Sub.

  7. Affinché questo argomento Pub/Sub e l'API Google Workspace Events funzionino insieme, concedi all'utente IAM di Chat l'autorizzazione a pubblicare nell'argomento Pub/Sub:

    1. Nel riquadro events-api, in AUTORIZZAZIONI, fai clic su Aggiungi entità.

    2. Nella sezione Aggiungi entità, in Nuove entità, digita chat-api-push@system.gserviceaccount.com.

    3. In Assegna i ruoli, seleziona Pub/Sub > Publisher Pub/Sub in Seleziona un ruolo.

    4. Fai clic su Salva.

Interfaccia a riga di comando gcloud

  1. Crea un argomento Pub/Sub con ID argomento events-api:

    gcloud pubsub topics create events-api
  2. Concedi all'utente IAM di Chat l'autorizzazione a pubblicare nell'argomento Pub/Sub:

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

Crea il database Firestore

Il database Firestore archivia e recupera i dati dagli spazi di Chat, come i messaggi. Non definisci il modello di dati, che viene impostato implicitamente nel codice di esempio dai file model/message.js e services/firestore-service.js.

Il database dell'app Chat dell'assistente AI per la conoscenza utilizza un modello di dati NoSQL basato su documenti organizzati in raccolte. Per scoprire di più, consulta la sezione Modello di dati di Firestore.

Il seguente diagramma mostra una panoramica del modello di dati dell'app Chat con l'assistente AI

Modello di dati del database Firestore.

La radice contiene due raccolte:

  1. spaces, dove ogni documento rappresenta uno spazio di Chat a cui viene aggiunta l'app Chat. Ogni messaggio è rappresentato da un documento nella raccolta secondaria messages.

  2. users, dove ogni documento rappresenta un utente che ha aggiunto l'app Chat a uno spazio di Chat.

Visualizzare le definizioni di raccolta, documento e campo

spaces

Uno spazio di Chat che include l'app di chat dell'assistente basato sull'AI.

Campi
Document IDString
ID univoco di uno spazio specifico. Una parte del nome della risorsa dello spazio nell'API Chat.
messagesSubcollection of Documents (messages)
Messaggi inviati nello spazio di Chat. Corrisponde a Document ID di un message in Firebase.
spaceNameString
Il nome univoco dello spazio nell'API Chat. Corrisponde al nome della risorsa dello spazio nell'API Chat.

messages

Messaggi inviati nello spazio di Chat.

Campi
Document IDString
ID univoco di un messaggio specifico.
nameString
Il nome univoco di un messaggio nell'API Chat. Corrisponde al nome della risorsa del messaggio nell'API Chat.
textString
Il corpo del testo del messaggio.
timeString (Timestamp format)
L'ora in cui è stato creato il messaggio.

users

Gli utenti che hanno aggiunto l'app Chat dell'assistente AI per la conoscenza a uno spazio di Chat.

Campi
Document IDString
ID univoco di un utente specifico.
accessTokenString
Il token di accesso concesso durante l'autorizzazione utente OAuth 2.0 utilizzato per chiamare le API Google Workspace.
refreshTokenString
Il token di aggiornamento concesso durante l'autorizzazione utente OAuth 2.0.

Ecco come creare il database Firestore:

Console Google Cloud

  1. Nella console Google Cloud, vai a Menu > Firestore.

    Vai a Firestore

  2. Fai clic su Crea database.

  3. In Seleziona la modalità Firestore, fai clic su Modalità Native.

  4. Fai clic su Continua.

  5. Configura il database:

    1. In Assegna un nome al database, lascia l'ID database come (default).

    2. In Tipo di località, seleziona Regione.

    3. In Regione, specifica una regione per il database, ad esempio us-central1. Per ottenere le prestazioni migliori, seleziona la stessa località o una località vicina a quella delle Cloud Functions dell'app Chat.

  6. Fai clic su Crea database.

Interfaccia a riga di comando gcloud

  • Crea un database Firestore in modalità Native:

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

    Sostituisci LOCATION con il nome di una regione Firestore, ad esempio us-central1. Per ottenere prestazioni ottimali, seleziona la stessa località o una località vicina a quella delle Cloud Functions dell'app Chat.

Creare e distribuire l'app di chat

Ora che il tuo progetto Google Cloud è stato creato e configurato, puoi creare e distribuire l'app Chat. In questa sezione, devi:

  1. Crea ed esegui il deployment di due funzioni Cloud. Uno per rispondere agli eventi di interazione di Chat e uno per rispondere agli eventi Pub/Sub.
  2. Crea ed esegui il deployment di un'app di chat nella pagina di configurazione dell'API Google Chat.

Crea ed esegui il deployment delle funzioni Cloud Functions

In questa sezione, crei ed esegui il deployment di due funzioni Cloud Functions denominate:

  • app: ospita ed esegue il codice dell'app Chat che risponde agli eventi ricevuti da Chat come richieste HTTP.
  • eventsApp: riceve ed elabora gli eventi dello spazio Chat come i messaggi da Pub/Sub.

Insieme, queste Cloud Functions costituiscono la logica dell'applicazione dell'app di chat dell'assistente AI per la conoscenza.

Se vuoi, prima di creare le funzioni cloud, prenditi un momento per esaminare e familiarizzare con il codice campione ospitato su GitHub.

Visualizza su GitHub

Crea ed esegui il deployment di app

Console Google Cloud

  1. Scarica il codice da GitHub come file zip.

    Scaricare il file ZIP

  2. Estrai il file ZIP scaricato.

    La cartella estratta contiene l'intero repository di esempi di Google Workspace.

  3. Nella cartella estratta, vai alla directory google-chat-samples-main/node/ai-knowledge-assistant.

  4. Nella directory google-chat-samples/node/ai-knowledge-assistant, aggiungi il file credentials.json che hai scaricato quando hai creato le credenziali dell'ID client OAuth per l'autenticazione e l'autorizzazione.

  5. Comprimi i contenuti della cartella ai-knowledge-assistant in un file ZIP.

    Il file zip deve contenere i seguenti file e cartelle:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • credentials.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Nella console Google Cloud, vai a Menu > Cloud Functions.

    Vai a Cloud Functions

    Assicurati che sia selezionato il progetto Google Cloud per la tua app di chat.

  7. Fai clic su Crea funzione.

  8. Nella pagina Crea funzione, configura la funzione:

    1. In Ambiente, seleziona Funzione Cloud Run.
    2. In Nome funzione, digita app.
    3. In Regione, seleziona una regione, ad esempio us-central1. Questa regione deve corrispondere a quella impostata nell'URI di reindirizzamento autorizzato quando hai creato le credenziali dell'ID client OAuth per l'autenticazione e l'autorizzazione.
    4. In Tipo di trigger, seleziona HTTPS.
    5. In Autenticazione, seleziona Consenti chiamate non autenticate.
    6. Fai clic su Avanti.
  9. In Runtime, seleziona Node.js 20.

  10. In Punto di ingresso, elimina il testo predefinito e inserisci app.

  11. In Codice sorgente, seleziona Caricamento zip.

  12. In Bucket di destinazione, crea o seleziona un bucket:

    1. Fai clic su Sfoglia.
    2. Scegli un bucket.
    3. Fai clic su Seleziona.

    Google Cloud carica il file ZIP ed estrae i file dei componenti in questo bucket. Cloud Functions copia quindi i file dei componenti nella funzione Cloud Functions.

  13. In File ZIP, carica il file ZIP scaricato da GitHub, estratto e ricompresso:

    1. Fai clic su Sfoglia.
    2. Individua e seleziona il file ZIP.
    3. Fai clic su Apri.
  14. Fai clic su Esegui il deployment.

    Si apre la pagina Dettagli di Cloud Functions e la funzione viene visualizzata con due indicatori di avanzamento: uno per la build e uno per il servizio. Quando entrambi gli indicatori di avanzamento scompaiono e vengono sostituiti da un segno di spunta, la funzione è stata implementata ed è pronta.

  15. Modifica il codice campione per impostare le costanti:

    1. Nella pagina Dettagli funzione Cloud Functions, fai clic su Modifica.
    2. Fai clic su Avanti.
    3. In Codice sorgente, seleziona Editor incorporato.
    4. Nell'editor incorporato, apri e modifica il file env.js:
      1. Imposta il valore di project sull'ID progetto Cloud.
      2. Imposta il valore di location sulla regione della funzione Cloud, ad esempio us-central1.
  16. Fai clic su Esegui il deployment.

Interfaccia a riga di comando gcloud

  1. Clona il codice da GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Passa alla directory che contiene il codice per questa app di chat dell'assistente basato sull'AI:

    cd google-chat-samples/node/ai-knowledge-assistant
  3. Nella directory google-chat-samples/node/ai-knowledge-assistant, aggiungi il file credentials.json che hai scaricato quando hai creato le credenziali dell'ID client OAuth per l'autenticazione e l'autorizzazione.

  4. Modifica il file env.js per impostare le variabili di ambiente:

    1. Imposta il valore di project sull'ID del tuo progetto cloud.
    2. Imposta il valore di location sulla regione della funzione Cloud, ad esempio us-central1.
  5. Esegui il deployment della funzione Cloud Functions su Google Cloud:

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

    Sostituisci REGION con il valore della regione della funzione Cloud in modo che corrisponda a quello impostato nel file env.js, ad esempio us-central1.

Crea ed esegui il deployment di eventsApp

Console Google Cloud

  1. Nella console Google Cloud, vai a Menu > Cloud Functions.

    Vai a Cloud Functions

    Assicurati che sia selezionato il progetto Google Cloud per la tua app di chat.

  2. Fai clic su Crea funzione.

  3. Nella pagina Crea funzione, configura la funzione:

    1. In Ambiente, seleziona Funzione Cloud Run.
    2. In Nome funzione, digita eventsApp.
    3. In Regione, seleziona una regione, ad esempio us-central1. Questa regione deve corrispondere a quella impostata nell'URI di reindirizzamento autorizzato quando hai creato le credenziali dell'ID client OAuth per l'autenticazione e l'autorizzazione.
    4. In Tipo di trigger, seleziona Cloud Pub/Sub.
    5. In Argomento Cloud Pub/Sub, seleziona il nome dell'argomento Pub/Sub che hai creato, che ha il formato projects/PROJECT/topics/events-api, dove PROJECT è l'ID progetto Cloud.
    6. Se visualizzi un messaggio che inizia con Service account(s) might not have enough permissions to deploy the function with the selected trigger., fai clic su Concedi tutto.
    7. Fai clic su Avanti.
  4. In Runtime, seleziona Node.js 20.

  5. In Punto di ingresso, elimina il testo predefinito e inserisci eventsApp.

  6. In Codice sorgente, seleziona Zip da Cloud Storage.

  7. In Posizione Cloud Storage, fai clic su Sfoglia.

  8. Seleziona il bucket in cui hai caricato il file ZIP quando hai creato la funzione Cloud app.

  9. Fai clic sul file ZIP che hai caricato.

  10. Fai clic su Seleziona.

  11. Fai clic su Esegui il deployment.

    Si apre la pagina Dettagli di Cloud Functions e la funzione viene visualizzata con tre indicatori di avanzamento: uno per la build, uno per il servizio e uno per il trigger. Quando tutti e tre gli indicatori di avanzamento scompaiono e vengono sostituiti da un segno di spunta, la funzione è stata implementata ed è pronta.

  12. Modifica il codice campione per impostare le costanti:

    1. Nella pagina Dettagli funzione Cloud Functions, fai clic su Modifica.
    2. Fai clic su Avanti.
    3. In Codice sorgente, seleziona Editor incorporato.
    4. Nell'editor incorporato, apri e modifica il file env.js:
      1. Imposta il valore di project sull'ID progetto Cloud.
      2. Imposta il valore di location sulla regione della funzione Cloud, ad esempio us-central1.
  13. Fai clic su Esegui il deployment.

Interfaccia a riga di comando gcloud

  1. Nella gcloud CLI, se non l'hai già fatto, passa alla directory che contiene il codice per questa app Chat dell'assistente AI knowledge che hai clonato in precedenza da GitHub:

    cd google-chat-samples/node/ai-knowledge-assistant
  2. Nella directory google-chat-samples/node/ai-knowledge-assistant, aggiungi il file credentials.json che hai scaricato quando hai creato le credenziali dell'ID client OAuth per l'autenticazione e l'autorizzazione.

  3. Modifica il file env.js per impostare le variabili di ambiente:

    1. Imposta il valore di project sull'ID del tuo progetto cloud.
    2. Imposta il valore di location sulla regione della funzione Cloud, ad esempio us-central1.
  4. Esegui il deployment della funzione Cloud Functions su Google Cloud:

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

    Sostituisci REGION con il valore della regione della funzione Cloud in modo che corrisponda a quello impostato nel file env.js, ad esempio us-central1.

Copia l'URL di attivazione della funzione Cloud Functions app.

Incollerai l'URL trigger della funzione Cloud Functions app nella sezione successiva quando configurerai l'app di chat nella console Google Cloud.

Console Google Cloud

  1. Nella console Google Cloud, vai a Menu > Cloud Functions.

    Vai a Cloud Functions

  2. Nella colonna Nome dell'elenco di Cloud Functions, fai clic su app.

  3. Fai clic su Trigger.

  4. Copia l'URL.

Interfaccia a riga di comando gcloud

  1. Descrivi la funzione Cloud Functions app:

    gcloud functions describe app
  2. Copia la proprietà url.

Configurare l'app Chat nella console Google Cloud

Questa sezione mostra come configurare l'API Chat nella console Google Cloud con informazioni sulla tua app di chat, inclusi il nome dell'app di chat e l'URL trigger della funzione Cloud dell'app di chat a cui invia gli eventi di interazione di Chat.

  1. Nella console Google Cloud, fai clic su Menu > Altri prodotti > Google Workspace > Libreria di prodotti > API Google Chat > Gestisci > Configurazione.

    Vai alla configurazione dell'API Chat

  2. In Nome app, digita AI knowledge assistant.

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

  4. In Descrizione, digita Answers questions with AI.

  5. Fai clic sul pulsante di attivazione/disattivazione Abilita funzionalità interattive in modo che sia impostato su On.

  6. In Funzionalità, seleziona Partecipa a spazi e conversazioni di gruppo.

  7. In Impostazioni di connessione, seleziona URL endpoint HTTP.

  8. In URL endpoint HTTP, incolla l'URL trigger della funzione Cloud Functions app formattato come https://REGION-PROJECT_ID.cloudfunctions.net/app dove REGION è la regione della funzione Cloud Functions, ad esempio us-central1 e PROJECT_ID è l'ID progetto del progetto Cloud che hai creato.

  9. In Visibilità, seleziona Rendi disponibile questa app di chat a utenti e gruppi specifici nel tuo dominio Workspace e inserisci il tuo indirizzo email.

  10. (Facoltativo) In Log, seleziona Registra errori in Logging.

  11. Fai clic su Salva. Viene visualizzato un messaggio di configurazione salvata, il che significa che l'app Chat è pronta per il test.

Testare l'app Chat

Prova l'app Chat dell'assistente AI Knowledge in uno spazio Chat con messaggi ponendo domande a cui l'app Chat dell'assistente AI Knowledge può rispondere.

Ecco alcuni modi per testare l'assistente AI App di chat:

  • Aggiungi l'app Chat assistente AI per la conoscenza a uno spazio di Chat esistente e poni domande pertinenti a quello spazio.
  • Crea uno spazio di Chat e pubblica alcuni messaggi da utilizzare come origine dati. I messaggi possono provenire da Gemini con un prompt come Answer 20 common onboarding questions employees ask their teams.. In alternativa, puoi incollare alcuni paragrafi della guida Sviluppare con Chat e poi porre domande al riguardo.

Per questo tutorial, creiamo uno spazio di Chat e incolliamo alcuni paragrafi della guida Sviluppare con la panoramica di Chat.

  1. Apri Google Chat.

    Vai a Google Chat

  2. Creare uno spazio di Chat:

    1. Fai clic su Nuova chat > Crea uno spazio.

    2. In Nome dello spazio, digita Testing AI knowledge assistant app.

    3. Nella sezione A cosa serve questo spazio?, seleziona Collaborazione.

    4. Nella sezione Impostazioni di accesso, scegli chi può accedere allo spazio.

    5. Fai clic su Crea.

  3. Aggiungi i messaggi da utilizzare come origine dati:

    1. In un browser web, visita la guida Sviluppare con Chat: panoramica.

    2. Copia e incolla i contenuti della guida nello spazio di Chat che hai creato.

  4. Aggiungi l'app Chat dell'assistente AI per la conoscenza:

    1. Nella barra di composizione del messaggio, digita @AI knowledge assistant e nel menu dei suggerimenti visualizzato, seleziona l'app di chat dell'assistente AI e premi enter.

    2. Viene visualizzato un messaggio che ti chiede se vuoi aggiungere l'app Chat allo spazio. Fai clic su Aggiungi allo spazio.

    3. Se è la prima volta che aggiungi l'app Chat a uno spazio, devi configurare l'autenticazione e l'autorizzazione per l'app Chat:

      1. Fai clic su Configura.
      2. Si apre una nuova finestra o scheda del browser in cui ti viene chiesto di scegliere un Account Google. Scegli l'account con cui stai eseguendo il test.
      3. Controlla le autorizzazioni richieste dall'app Chat dell'assistente AI Knowledge. Per concederle, fai clic su Consenti.
      4. Viene visualizzato un messaggio che indica You may close this page now.. Chiudi la finestra o la scheda del browser e torna allo spazio di chat.
  5. Fai una domanda:

    1. Nella barra di scrittura del messaggio, digita una domanda come What are Google Chat apps?

    2. L'app Chat dell'assistente AI Knowledge risponde.

    3. Se la risposta non è accurata o sufficiente, per contribuire a migliorare la cronologia delle conversazioni dell'AI, fai clic su Ricevi assistenza. L'app Chat dell'assistente AI per la conoscenza menziona un gestore dello spazio e gli chiede di rispondere alla domanda. La prossima volta, l'app di chat dell'assistente basato sull'AI saprà la risposta.

Considerazioni, scelte di architettura alternative e passaggi successivi

Questa sezione esamina altri modi in cui è possibile creare l'app di chat dell'assistente AI per la conoscenza.

Firestore, Cloud Storage o chiamata di List Messages nell'API Chat

Questo tutorial consiglia di archiviare i dati dello spazio Chat, ad esempio i messaggi, in un database Firestore perché migliora il rendimento rispetto alla chiamata del metodo list sulla risorsa Message con l'API Chat ogni volta che l'app Chat risponde a una domanda. Inoltre, chiamare list messages ripetutamente può causare il raggiungimento dei limiti di quota API da parte dell'app di chat.

Tuttavia, se la cronologia delle conversazioni di uno spazio Chat diventa troppo lunga, l'utilizzo di Firestore può diventare costoso.

Cloud Storage è un'alternativa a Firestore. Ogni spazio in cui è attiva l'app Chat dell'assistente AI knowledge ha un proprio oggetto e ogni oggetto è un file di testo che contiene tutti i messaggi dello spazio. Il vantaggio di questo approccio è che l'intero contenuto del file di testo può essere inviato a Vertex AI con Gemini contemporaneamente, ma lo svantaggio è che è necessario più lavoro per aggiornare la cronologia della conversazione perché non puoi aggiungere un oggetto in Cloud Storage, ma solo sostituirlo. Questo approccio non ha senso se aggiorni regolarmente la cronologia dei messaggi, ma sarebbe una buona scelta se aggiorni la cronologia dei messaggi periodicamente, ad esempio una volta alla settimana.

Risoluzione dei problemi

Quando un'app Google Chat o una scheda restituisce un errore, l'interfaccia di Chat mostra il messaggio "Si è verificato un problema". o "Impossibile elaborare la tua richiesta". A volte l'interfaccia utente di Chat non mostra alcun messaggio di errore, ma l'app o la scheda Chat produce un risultato imprevisto; ad esempio, un messaggio della scheda potrebbe non essere visualizzato.

Anche se nell'interfaccia utente di Chat potrebbe non essere visualizzato un messaggio di errore, sono disponibili messaggi di errore descrittivi e dati di log per aiutarti a correggere gli errori quando la registrazione degli errori per le app di chat è attivata. Per assistenza nella visualizzazione, nel debug e nella correzione degli errori, consulta Risolvere i problemi e correggere gli errori di Google Chat.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, ti consigliamo di eliminare il progetto Cloud.

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse. Fai clic su Menu > IAM e amministrazione > Gestisci risorse.

    Vai a Resource Manager

  2. Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina .
  3. Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.