1. Prima di iniziare
Questo codelab ti guiderà nell'integrazione di una dashboard Looker incorporata con la chat basata su Analisi conversazionale per creare un'esperienza di dati unificata basata sul linguaggio naturale. Per ottenere il massimo valore, devi avere familiarità con l'incorporamento di Looker, Analisi conversazionale, JavaScript e React.
Cosa imparerai a fare
Dopo aver seguito questo codelab, avrai imparato a:
- Configurare l'applicazione di riferimento per l'incorporamento di Looker in locale
- Creare un componente React di chat con la libreria dei componenti di Looker
- Inviare il filtro della dashboard incorporata come contesto ad Analisi conversazionale
- Consentire alla chat basata su Analisi conversazionale di controllare i filtri della dashboard incorporata
Che cosa ti serve
Per completare questo codelab, ti serviranno:
- Un'istanza di Looker con il blocco Looker dei dati demografici ASC installato e l'incorporamento SSO abilitato
- Accesso API e sviluppatore alla tua istanza di Looker
- Un ambiente locale con Node v18, yarn, Git e gcloud installati
- Un progetto Cloud con questi ruoli IAM configurati per il tuo account utente:
roles/bigquery.dataViewerVisualizzatore dati BigQueryroles/bigquery.userUtente BigQueryroles/looker.instanceUserUtente istanza Looker
2. Configurare Analisi conversazionale
Configuriamo l'agente di dati di Analisi conversazionale che la chat della dashboard incorporata utilizzerà per rispondere alle domande in linguaggio naturale.
Autenticarsi con gcloud
- Autenticati con il tuo account utente nel tuo ambiente locale:
gcloud auth login
- Imposta le Credenziali predefinite dell'applicazione (ADC) e il progetto di fatturazione su gcloud:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID
Abilitare le API di Analisi conversazionale
- Abilita le API del progetto Cloud. Sostituisci
YOUR_PROJECT_IDcon l'ID del tuo progetto Google Cloud:
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
Creare l'agente di dati
- Apri Google Colab.
- In Google Colab, carica questo notebook dal repository di riferimento per l'incorporamento di Looker.
- Esegui tutti i passaggi del notebook. Avrai bisogno dell'ID progetto Cloud e dell'URI dell'istanza di Looker con una barra finale, ad esempio
"https://my.looker.app/". Alla fine del notebook dovresti ottenere un risultato positivo.
Ora hai a disposizione un agente di dati di Analisi conversazionale pronto ad accettare i messaggi di chat, eseguire query sulle esplorazioni di Looker nella dashboard di Looker incorporata e restituire risultati e visualizzazioni.
3. Configurare il riferimento per l'incorporamento di Looker
Configuriamo l'applicazione di riferimento per l'incorporamento di Looker nel tuo ambiente locale in modo che tu possa provare l'esempio di integrazione della chat di Analisi conversazionale con una dashboard di Looker incorporata.
Clonare il repository
- Clona il repository GitHub nel tuo ambiente locale. Di seguito è riportato un esempio di comando:
git clone "https://github.com/looker-open-source/LookerEmbedReference.git"
- Vai alla directory
LookerEmbedReferenceche hai clonato:
cd LookerEmbedReference
Configurare ed eseguire il server frontend locale
- Installa le dipendenze nella directory
Frontend
cd Frontend
yarn install
- Configura un file
.envnella directory principaleFrontendcon le credenziali.YOUR_LOOKER_INSTANCE_URIdeve essere l'URI dell'istanza di Looker senza barra finale. Il contenuto del file deve essere il seguente:
PBL_CLIENT_PORT=3001
API_HOST=http://localhost:3000
LOOKER_HOST=YOUR_LOOKER_INSTANCE_URI
LOOKER_API_HOST=YOUR_LOOKER_INSTANCE_URI:19999
LOOKERSDK_EMBED_HOST=YOUR_LOOKER_INSTANCE_URI
Puoi utilizzare il seguente comando di esempio per creare il file:
cat > .env <<'EOF'
PBL_CLIENT_PORT=3001
API_HOST=http://localhost:3000
LOOKER_HOST=YOUR_LOOKER_INSTANCE_URI
LOOKER_API_HOST=YOUR_LOOKER_INSTANCE_URI:19999
LOOKERSDK_EMBED_HOST=YOUR_LOOKER_INSTANCE_URI
EOF
- Esegui il server di sviluppo frontend:
yarn run dev
Configurare ed eseguire il server di backend in locale
- Apri una nuova shell, un nuovo terminale, una nuova console o una nuova scheda. Vai alla directory
Backend-Nodee installa le dipendenze. Assicurati di mantenere in esecuzione la shell/il terminale precedente con il server frontend.
cd ../Backend-Node
yarn install
- Configura un file
.envnella directory principaleBackend-Nodecon le credenziali:
YOUR_LOOKER_CLIENT_IDè l'ID client di Looker.YOUR_LOOKER_CLIENT_SECRETè il secret client di Looker.YOUR_LOOKER_EMBED_SECRETè il tuo secret di incorporamento.YOUR_PROJECT_IDè l'ID progetto Cloud.YOUR_LOOKER_INSTANCE_URI_WITH_TRAILING_SLASHè l'URI dell'istanza di Looker con una barra finale.YOUR_LOOKER_INSTANCE_URIè l'URI dell'istanza di Looker senza barra finale.
Il contenuto del file deve essere il seguente:
PBL_BACKEND_PORT=3000
LOOKERSDK_API_VERSION=4.0
LOOKERSDK_BASE_URL=YOUR_LOOKER_INSTANCE_URI_WITH_TRAILING_SLASH
LOOKERSDK_CLIENT_ID=YOUR_LOOKER_CLIENT_ID
LOOKERSDK_CLIENT_SECRET=YOUR_LOOKER_CLIENT_SECRET
LOOKERSDK_EMBED_HOST=YOUR_LOOKER_INSTANCE_URI
LOOKERSDK_EMBED_SECRET=YOUR_LOOKER_EMBED_SECRET
CLOUD_AGENT_ID=looker_embed_reference_data_agent
CLOUD_PROJECT_ID=YOUR_PROJECT_ID
Puoi utilizzare il seguente comando di esempio per creare il file. Sostituisci tutte le credenziali di conseguenza:
cat > .env <<'EOF'
PBL_BACKEND_PORT=3000
LOOKERSDK_API_VERSION=4.0
LOOKERSDK_BASE_URL=YOUR_LOOKER_INSTANCE_URI_WITH_TRAILING_SLASH
LOOKERSDK_CLIENT_ID=YOUR_LOOKER_CLIENT_ID
LOOKERSDK_CLIENT_SECRET=YOUR_LOOKER_CLIENT_SECRET
LOOKERSDK_EMBED_HOST=YOUR_LOOKER_INSTANCE_URI
LOOKERSDK_EMBED_SECRET=YOUR_LOOKER_EMBED_SECRET
CLOUD_AGENT_ID=looker_embed_reference_data_agent
CLOUD_PROJECT_ID=YOUR_PROJECT_ID
EOF
- Esegui il server di sviluppo backend:
yarn run dev
Ora il server di sviluppo frontend è in esecuzione e pubblica il codice JavaScript per l'applicazione web. Anche il server di sviluppo backend è in esecuzione per gestire le richieste di URL di incorporamento SSO e le richieste proxy agli endpoint di Analisi conversazionale.
4. Provare l'esempio
Proviamo l'applicazione web ora in esecuzione in locale nel tuo ambiente.
Avviare una conversazione
- Apri l'indirizzo https://localhost:3001 nel browser che preferisci.
- Vai alla pagina Dashboard incorporata con chat nel riquadro di navigazione principale a sinistra.
- Una volta caricato il componente di chat a destra, digita: "Ciao, chi sei?"
- Prendi nota della risposta.
L'applicazione ha creato automaticamente un oggetto di conversazione di Analisi conversazionale conversazione per tenere traccia della cronologia chat e ha caricato l'interfaccia di chat. Quando hai posto una domanda all'interfaccia di chat, il frontend ha inviato un messaggio utente al server di backend Node locale. Poi ha inviato la richiesta e la risposta dall'endpoint di chat di Analisi conversazionale tramite proxy.
Filtrare la dashboard incorporata
Ora acquisisci familiarità con la dashboard incorporata e interagisci con essa.
- Scorri la dashboard incorporata. Tieni presente che copre i dati del censimento in più dimensioni e metriche.
- Puoi filtrare la dashboard in base a Stato e Contea in alto a sinistra. Imposta il filtro sulla dashboard su Texas. Poi seleziona il pulsante con la freccia circolare evidenziata in blu per eseguire di nuovo la dashboard.
- Nota come i dati di tutte le visualizzazioni siano filtrati in base allo stato Texas.
Porre una domanda con il contesto della dashboard
Ora che abbiamo filtrato la dashboard, continuiamo a esaminare i dati nella dashboard.
- Invia "Dimmi le 5 contee con l'affitto più basso" nella chat.
- Tieni presente che il prompt per Analisi conversazionale ora contiene le parole aggiuntive "Filtra in base alla dimensione 'state.state_name' che è Texas".
- Ora, tieni presente che la query e i dati della risposta sono filtrati in base allo stato Texas.
- Inoltre, dopo che sono stati restituiti i risultati dei dati, la dashboard incorporata è stata eseguita di nuovo con il filtro Contea impostato sulle 5 contee definite nei dati del risultato.
Ora puoi continuare a esaminare i dati del censimento, con le 5 contee filtrate in modo pratico.
Complimenti! Hai configurato e provato un semplice esempio di dashboard incorporata integrata con una chat di Analisi conversazionale.
5. Creare un componente di chat
Per capire cosa succede dietro le quinte, esploriamo prima il componente Chat. Supponiamo che tu sappia come incorporare una dashboard di Looker con l' SDK Embed di Looker.
Utilizzare la libreria dei componenti di Looker
- Apri il file del componente
Chatall'indirizzoFrontend/src/components/EmbedChat/components/chat.jsnel tuo IDE preferito o nel terminale. - Il componente
Chatè creato con i componenti React dell'interfaccia utente standard di Looker dal pacchetto della Libreria dei componenti di Looker.
Inviare un messaggio utente
L'interfaccia di chat deve inviare un prompt dell'utente ad Analisi conversazionale.
- Verso la fine del file del componente
Chat, il componenteChatcontiene il sottocomponenteChatInput, che fornisce il campo di immissione per il prompt di un utente. - Al momento dell'invio, il metodo
showAndSendUserPromptinvia il prompt dell'utente ad Analisi conversazionale (tramite proxy tramite il backend Node).
Trasmettere e visualizzare i messaggi di sistema
Dopo che l'utente ha inviato un messaggio ad Analisi conversazionale, dobbiamo visualizzare la sua risposta.
- Verso la fine del file del componente
Chat, il componenteChatcontiene il sottocomponenteMessageList, che contiene la logica per visualizzare i messaggi di Analisi conversazionale in base al tipo di messaggio. - Il metodo
streamAndParseResponsegestisce la risposta tentando costantemente di analizzare i messaggi di sistema validi dalla risposta JSON di streaming. Ogni volta che un messaggio di sistema valido viene analizzato correttamente, viene visualizzato inMessageList.
Ora hai esplorato come il componente Chat, creato con la libreria dei componenti di Looker, invia un messaggio utente e trasmette la risposta.
6. Inviare i filtri della dashboard ad Analisi conversazionale
Ora vediamo come includere i filtri della dashboard nel prompt di un utente in modo che Analisi conversazionale possa filtrare la query con il contesto della dashboard (i relativi filtri).
Ascoltare l'evento di modifica del filtro della dashboard
- Apri il file del componente
EmbedChatall'indirizzoFrontend/src/components/EmbedChat/EmbedChat.js,che rappresenta la pagina dell'applicazione contenente la dashboard incorporata integrata con il componenteChatesplorato in precedenza. - Il componente
EmbedChatascolta l'evento"dashboard:filters:changed"dalla dashboard incorporata con il metodo.on(...)dell'SDK Embed. Poi il componente memorizza i filtri attuali nel relativo stato del filtro.
Inviare lo stato del filtro ad Analisi conversazionale
- Il componente
EmbedChatpassa i filtri al componenteChat, che converte ogni filtro in una stringa come"Filter on dimension '...' being ..."nel metodoshowAndSendUserPromptda aggiungere al prompt dell'utente.
7. Controllare i filtri della dashboard dalla chat
Infine, vediamo come consentire al componente Chat di controllare i filtri della dashboard incorporata.
Determinare i filtri da impostare
- Il metodo
streamAndParseResponsedel componenteChatcontrolla sempre la presenza di un messaggio di sistema con i risultati dei dati di Analisi conversazionale. - Ogni volta che il metodo
streamAndParseResponseanalizza un messaggio di sistema con i risultati dei dati, verifica se le dimensioni nei dati corrispondono alle dimensioni nei filtri. - In caso affermativo, il metodo
streamAndParseResponseconverte le colonne di dati in filtri della dashboard. Questa volta il metodo utilizza di nuovoFIELD_FILTER_MAP, ma al contrario, convertendo dal nome della dimensione alla chiave del filtro. I valori del filtro sono i valori nella colonna di dati.
Inviare l'evento di modifica del filtro alla dashboard incorporata
- Con i filtri della dashboard desiderati, il metodo
streamAndParseResponsechiama il metodosetFiltersdel componenteChatcon i filtri desiderati. - Viene chiamato il metodo
setDashboardFiltersdel componenteEmbedChat, che invia due eventi,"dashboard:filters:update"con i filtri e"dashboard:run"alla dashboard incorporata in successione immediata utilizzando il metodosenddell'SDK Embed. - L'evento
"dashboard:filters:update"modifica i filtri della dashboard incorporata, mentre l'evento"dashboard:run"esegue di nuovo le query della dashboard con i nuovi filtri.
8. Conclusioni e punti chiave
Hai configurato il tuo esempio funzionante di dashboard di Looker incorporata integrata con la chat di Analisi conversazionale. Hai imparato a consentire l'esplorazione dei dati basata sul linguaggio naturale con la dashboard di Looker incorporata e Analisi conversazionale.
- Hai creato un componente di chat con la libreria dei componenti di Looker.
- Hai passato il contesto della dashboard di Looker incorporata ad Analisi conversazionale per semplificare l'esplorazione dei dati.
- Hai consentito ad Analisi conversazionale di controllare i filtri della dashboard incorporata per un contesto migliorato durante l'esplorazione dei dati.
Passaggi successivi
- Scopri di più sulle funzionalità di Analisi conversazionale.
- Aggiorna l'app di esempio di riferimento per l'incorporamento di Looker in modo che funzioni con le tue dashboard di Looker incorporate.
- Prova gli altri casi d'uso di incorporamento disponibili nell'app di esempio di riferimento per l'incorporamento di Looker in esecuzione in locale.