1. Sebelum memulai
Codelab ini akan memandu Anda mengintegrasikan dasbor Looker tersemat dengan chat yang didukung Analisis Percakapan untuk menciptakan pengalaman data yang terpadu dan didukung bahasa alami. Untuk mendapatkan nilai maksimal, Anda harus memahami penyematan Looker, Analisis Percakapan, JavaScript, dan React.
Yang akan Anda pelajari
Setelah mengikuti codelab ini, Anda akan mempelajari:
- Cara menyiapkan aplikasi Referensi Sematan Looker secara lokal
- Cara membuat komponen React chat dengan library Komponen Looker
- Cara mengirim filter dasbor sematan sebagai konteks ke Analisis Percakapan
- Cara mengaktifkan percakapan yang didukung Analisis Percakapan untuk mengontrol filter dasbor sematan Anda
Yang Anda butuhkan
Untuk menyelesaikan codelab ini, Anda memerlukan:
- Instance Looker dengan ASC Demographic Data Looker Block yang diinstal dan penyematan SSO yang diaktifkan
- Akses API dan developer ke instance Looker Anda
- Lingkungan lokal dengan Node v18, yarn, Git, dan gcloud terinstal
- Project cloud dengan peran IAM ini disiapkan untuk akun pengguna Anda:
roles/bigquery.dataViewerBigQuery Data Viewerroles/bigquery.userPengguna BigQueryroles/looker.instanceUserPengguna Instance Looker
2. Menyiapkan Analisis Percakapan
Mari siapkan agen data Analisis Percakapan yang akan digunakan chat dasbor sematan Anda untuk menjawab pertanyaan bahasa alami.
Menggunakan gcloud untuk melakukan autentikasi
- Lakukan autentikasi dengan akun pengguna Anda di lingkungan lokal:
gcloud auth login
- Tetapkan kredensial default aplikasi (ADC) dan project penagihan di gcloud Anda:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID
Mengaktifkan Conversational Analytics API
- Aktifkan Cloud Project API. Ganti
YOUR_PROJECT_IDdengan ID project Google Cloud Anda:
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
Buat agen data
- Buka Google Colab.
- Di dalam Google Colab, muat notebook ini dari repositori Referensi Sematan Looker.
- Jalankan semua langkah notebook. Anda akan memerlukan ID project Cloud dan URI instance Looker dengan garis miring di akhir, seperti
"https://my.looker.app/". Anda akan mendapatkan hasil yang berhasil di akhir notebook.
Anda kini memiliki agen data Analisis Percakapan yang tersedia dan siap menerima pesan chat, mengkueri eksplorasi Looker di dasbor Looker tersemat Anda, serta menampilkan hasil dan visualisasi.
3. Menyiapkan Referensi Sematan Looker
Siapkan aplikasi Referensi Sematan Looker di lingkungan lokal Anda agar Anda dapat mencoba contoh mengintegrasikan chat Analisis Percakapan dengan dasbor Looker yang disematkan.
Membuat clone repositori
- Buat clone repositori github ke lingkungan lokal Anda. Lihat contoh perintah berikut di bawah:
git clone "https://github.com/looker-open-source/LookerEmbedReference.git"
- Buka direktori
LookerEmbedReferenceyang telah Anda clone:
cd LookerEmbedReference
Menyiapkan dan menjalankan server frontend lokal
- Instal dependensi di direktori
Frontend
cd Frontend
yarn install
- Siapkan file
.envdi root direktoriFrontenddengan kredensial.YOUR_LOOKER_INSTANCE_URIharus berupa URI instance Looker Anda tanpa garis miring di akhir. Isi file harus sebagai berikut:
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
Anda dapat menggunakan contoh perintah berikut untuk membuat 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
- Jalankan server pengembangan frontend:
yarn run dev
Siapkan dan jalankan server backend secara lokal
- Buka shell, terminal, konsol, atau tab baru. Buka direktori
Backend-Nodedan instal dependensi. Pastikan untuk tetap menjalankan server frontend di shell/terminal sebelumnya.
cd ../Backend-Node
yarn install
- Siapkan file
.envdi root direktoriBackend-Nodedengan kredensial:
YOUR_LOOKER_CLIENT_IDadalah client ID Looker Anda.YOUR_LOOKER_CLIENT_SECRETadalah rahasia klien Looker Anda.YOUR_LOOKER_EMBED_SECRETadalah secret penyematan Anda.YOUR_PROJECT_IDadalah project ID Cloud Anda.YOUR_LOOKER_INSTANCE_URI_WITH_TRAILING_SLASHadalah URI instance Looker Anda dengan garis miring di akhir.YOUR_LOOKER_INSTANCE_URIadalah URI instance Looker Anda tanpa garis miring di akhir .
Isi file harus sebagai berikut:
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
Anda dapat menggunakan contoh perintah berikut untuk membuat file. Ganti semua kredensial yang sesuai:
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
- Jalankan server dev backend:
yarn run dev
Sekarang Anda telah menjalankan server dev frontend, yang melayani JavaScript untuk aplikasi web. Anda juga menjalankan server pengembangan backend untuk menangani permintaan URL Sematan SSO dan permintaan proxy ke endpoint Conversational Analytics.
4. Coba contohnya
Sekarang, mari kita coba aplikasi web Anda yang berjalan secara lokal di lingkungan Anda.
Memulai percakapan
- Buka alamat https://localhost:3001 di browser pilihan Anda.
- Buka halaman Dasbor Sematan dengan Chat di navigasi utama sebelah kiri.
- Setelah komponen chat di sebelah kanan dimuat, ketik: "Halo, siapa kamu?"
- Catat responsnya.
Aplikasi secara otomatis membuat objek conversation Analisis Percakapan untuk melacak histori chat dan memuat antarmuka chat. Saat Anda mengajukan pertanyaan ke antarmuka chat, frontend akan mengirimkan pesan pengguna ke server backend Node lokal Anda. Kemudian, permintaan dan respons dari endpoint chat Conversational Analytics akan di-proxy.
Memfilter dasbor sematan
Sekarang, pelajari dasbor sematan dan berinteraksi dengannya.
- Scroll dasbor yang disematkan. Perhatikan bahwa laporan ini mencakup data sensus di berbagai dimensi dan metrik.
- Anda dapat memfilter dasbor berdasarkan Negara Bagian dan Kabupaten di kiri atas dasbor. Tetapkan filter pada filter dasbor ke Texas. Kemudian, pilih tombol panah melingkar yang baru ditandai dengan warna biru untuk menjalankan ulang dasbor.
- Perhatikan bagaimana semua data visualisasi difilter berdasarkan negara bagian Texas.
Mengajukan pertanyaan dengan konteks dasbor
Setelah memfilter dasbor, mari kita lanjutkan penyelidikan data di dasbor.
- Kirimkan "Tell me the top 5 counties with lowest rent" di chat.
- Perhatikan bahwa perintah Anda ke Analisis Percakapan kini berisi kata-kata tambahan "Filter pada dimensi 'state.state_name' yang merupakan Texas".
- Sekarang, perhatikan bahwa kueri dan data respons difilter berdasarkan negara bagian Texas.
- Selain itu, setelah hasil data ditampilkan, dasbor sematan Anda telah dijalankan kembali dengan filter County yang ditetapkan ke 5 county yang ditentukan dalam data hasil.
Anda kini dapat melanjutkan penyelidikan data sensus, dengan 5 wilayah yang difilter dengan mudah untuk Anda.
Selamat! Anda telah menyiapkan dan mencoba contoh sederhana dasbor sematan yang terintegrasi dengan chat Analisis Percakapan.
5. Membangun komponen chat
Mari kita pahami apa yang terjadi di balik layar, dengan terlebih dahulu mempelajari komponen Chat. Kami mengasumsikan Anda memahami cara menyematkan dasbor Looker dengan Looker Embed SDK.
Menggunakan library Komponen Looker
- Buka file komponen
ChatdiFrontend/src/components/EmbedChat/components/chat.jsdi IDE favorit Anda atau di terminal Anda. - Komponen
Chatdibuat dengan komponen React UI Looker standar dari paket Looker Components Library.
Mengirim pesan pengguna
Antarmuka chat perlu mengirimkan perintah pengguna ke Conversational Analytics.
- Di dekat bagian bawah file komponen
Chat, komponenChatberisi subkomponenChatInput, yang menyediakan kolom input untuk perintah pengguna. - Saat mengirimkan, metode
showAndSendUserPromptmengirimkan perintah pengguna ke Analytics Percakapan (di-proxy melalui backend Node Anda).
Streaming dan menampilkan pesan sistem
Setelah pengguna mengirim pesan ke Conversational Analytics, kita perlu menampilkan responsnya.
- Di dekat bagian bawah file komponen
Chat, komponenChatberisi subkomponenMessageList, yang berisi logika untuk menampilkan pesan dari Analisis Percakapan berdasarkan jenis pesan. - Metode
streamAndParseResponsemenangani respons, dengan terus mencoba mengurai pesan sistem yang valid dari respons JSON streaming. Setiap kali pesan sistem yang valid berhasil diuraikan, pesan tersebut akan ditampilkan diMessageList.
Sekarang Anda telah mempelajari cara komponen Chat, yang dibuat dengan library Komponen Looker, mengirim pesan pengguna dan mengalirkan kembali respons.
6. Mengirim filter dasbor ke Analisis Percakapan
Sekarang, mari kita pahami cara menyertakan filter dasbor dalam perintah pengguna agar Analisis Konversasional dapat memfilter kuerinya dengan konteks dasbor (filternya).
Memproses peristiwa perubahan filter dasbor
- Buka file komponen
EmbedChatdiFrontend/src/components/EmbedChat/EmbedChat.js,yang merepresentasikan halaman aplikasi yang berisi dasbor sematan yang terintegrasi dengan komponenChatyang telah dijelajahi sebelumnya. - Komponen
EmbedChatmemproses peristiwa"dashboard:filters:changed"dari dasbor sematan dengan metode.on(...)Embed SDK. Kemudian, komponen menyimpan filter saat ini dalam status filternya.
Mengirim status filter ke Conversational Analytics
- Komponen
EmbedChatmeneruskan filter ke komponenChat, yang mengonversi setiap filter menjadi string seperti"Filter on dimension '...' being ..."dalam metodeshowAndSendUserPromptuntuk ditambahkan ke perintah pengguna.
7. Mengontrol filter dasbor dari chat
Terakhir, mari kita lihat cara mengaktifkan komponen Chat untuk mengontrol filter dasbor sematan.
Menentukan filter yang akan ditetapkan
- Metode
streamAndParseResponsekomponenChatselalu memeriksa pesan sistem dengan hasil data dari Analisis Percakapan. - Setiap kali metode
streamAndParseResponsemengurai pesan sistem dengan hasil data, metode tersebut akan memeriksa apakah ada dimensi dalam data yang sesuai dengan dimensi dalam filter. - Jika ya, metode
streamAndParseResponseakan mengonversi kolom data menjadi filter dasbor. Kali ini, metode tersebut menggunakanFIELD_FILTER_MAPlagi, tetapi secara terbalik, yaitu mengonversi dari nama dimensi ke kunci filter. Nilai filter adalah nilai dalam kolom data.
Mengirim peristiwa perubahan filter ke dasbor sematan
- Dengan filter dasbor yang diinginkan, metode
streamAndParseResponsememanggil metodesetFilterskomponenChatdengan filter yang diinginkan. - Tindakan ini memanggil metode
setDashboardFilterskomponenEmbedChat, yang mengirimkan dua peristiwa,"dashboard:filters:update"dengan filter dan"dashboard:run"ke dasbor sematan secara berurutan menggunakan metodesendEmbed SDK. - Peristiwa
"dashboard:filters:update"mengubah filter dasbor sematan, sedangkan peristiwa"dashboard:run"menjalankan kembali kueri dasbor dengan filter baru.
8. Kesimpulan dan poin penting
Anda telah menyiapkan contoh kerja dasbor Looker sematan yang terintegrasi dengan chat Analisis Percakapan. Anda telah mempelajari cara mengaktifkan eksplorasi data yang didukung bahasa alami dengan dasbor Looker tersemat dan Analisis Percakapan.
- Anda telah membuat komponen chat dengan library Komponen Looker.
- Anda meneruskan konteks dasbor Looker yang disematkan ke Analisis Percakapan untuk mempermudah eksplorasi data.
- Anda mengaktifkan Analisis Percakapan untuk mengontrol filter dasbor sematan guna meningkatkan konteks saat menjelajahi data.
Langkah berikutnya
- Pelajari lebih lanjut kemampuan Analisis Percakapan.
- Perbarui aplikasi contoh Looker Embed Reference agar berfungsi dengan dasbor Looker sematan Anda sendiri.
- Coba kasus penggunaan sematan lainnya yang tersedia di aplikasi contoh Referensi Sematan Looker yang berjalan secara lokal.