1. 事前準備
本程式碼研究室將逐步說明如何搭配使用 Conversational Analytics API (CA API) 和 Looker,建構自己的聊天應用程式來查詢資料。如要充分發揮價值,您應熟悉 BigQuery、Looker、大型語言模型和代理程式,以及 Python。
課程內容
完成本程式碼研究室後,您將學到:
- 如何搭配 Looker 使用對話式數據分析
- 如何設定及使用 Conversational Analytics Python 快速入門應用程式 (以及應用程式的運作方式)
- 使用 Looker 搭配 Conversational Analytics 進行語意建模的好處
軟硬體需求
如要完成這個程式碼研究室,您必須符合以下條件:
- 已安裝 ASC 客層資料 Looker Block 的 Looker 執行個體
- API 和開發人員對 Looker 執行個體的存取權
- 已安裝 Python 3.11 以上版本、Git 和 gcloud 的本機環境。
- 為使用者帳戶設定下列 IAM 角色的雲端專案:
roles/bigquery.dataViewerBigQuery 資料檢視者roles/bigquery.userBigQuery 使用者roles/looker.instanceUserLooker 執行個體使用者
2. 使用 BigQuery 建構及試用聊天應用程式
首先,請以 BigQuery 做為資料來源,設定並試用 Conversational Analytics 快速入門應用程式。
驗證及啟用 Cloud API
- 使用使用者帳戶在本機進行驗證:
gcloud auth login
- 啟用 Cloud 專案 API。請將
YOUR_PROJECT_ID替換為您的 Google Cloud 專案 ID:
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
- 設定應用程式預設憑證 (ADC) 和帳單:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID
設定快速入門應用程式
- 將快速入門導覽課程的 GitHub 存放區複製到本機環境。請參閱下列範例指令:
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
- 前往複製的
ca-api-quickstarts目錄:
cd ca-api-quickstarts
- 在
.streamlit目錄中建立secrets.toml檔案。YOUR_LOOKER_CLIENT_ID和YOUR_LOOKER_CLIENT_SECRET應為 Looker 執行個體的 Looker 用戶端 ID 和 Looker 用戶端密鑰。檔案內容應如下所示:
[cloud]
project_id = "YOUR_PROJECT_ID"
[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
您可以使用下列範例指令建立檔案。請務必將值替換為專案 ID、用戶端 ID 和用戶端密碼:
cat > .streamlit/secrets.toml <<'EOF'
[cloud]
project_id = "YOUR_PROJECT_ID"
[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
EOF
- 安裝快速入門應用程式的 Python 需求條件:
pip install -r requirements.txt
- 執行快速入門應用程式:
streamlit run app.py
- 在所選瀏覽器中開啟 https://localhost:8501。
試用快速入門應用程式
您現在位於快速入門應用程式的代理程式頁面。沒有可用的資料代理人。
- 現在,我們在「建立代理」表單中建立一個會說海盜用語的資料代理:
- 設定「顯示名稱」欄位:
Pirate BQ Agent
- 設定「系統指令」欄位:
You are a pirate. Answer questions like a pirate
- 選取「BigQuery」BigQuery選項。
- 設定「專案」欄位:
bigquery-public-data
- 設定「Dataset」(資料集) 欄位:
google_trends
- 設定「資料表」欄位:
top_rising_terms
- 選取「建立代理程式」。
- 現在,請透過左側主要導覽前往對話頁面。新建立的服務專員已可進行即時通訊。請先新增提示/訊息來發起對話,例如「你好嗎?」
- 現在,讓我們稍微瞭解這個資料集:「這個資料集是關於什麼?」
- 提出其他問題,例如:
- 「資料集中有哪些 [輸入州別] 地點?」
- 「請提供過去 2 週的 [城市、州別] 資料。」
- 「你能建立視覺化圖表嗎?」
您剛才在自己的即時通訊應用程式中,與資料代理程式和 BigQuery 資料進行了多輪對話。
3. 在 Looker 中建立資料模型並探索資料
現在,我們要在 Looker 中建立相同 BigQuery 資料的模型並加以探索。
查詢 BigQuery 人口普查資料
連結至較大的關聯資料集後會發生什麼情況?首先,我們要建立新的代理程式。
- 返回代理頁面的「建立代理」表單。
- 設定「顯示名稱」欄位:
BQ Census Agent
- 設定「系統指令」欄位:
You are really excited about census data, you love learning about the demographics in your area because you want to come up with marketing campaigns for your company
- 選取「BigQuery」BigQuery選項。
- 設定「專案」欄位:
bigquery-public-data
- 設定「Dataset」(資料集) 欄位:
census_bureau_acs
- 設定「資料表」欄位:
blockgroup_2018_5yr
- 選取「建立代理程式」。
- 向新建立的代理提出下列兩個問題:
- 「你有哪些資料?」
- 「Can you show me a preview of my data」(可以預覽我的資料嗎?)
使用 Looker 建立人口普查資料模型
現在我們要使用 LookML 模型定義 BigQuery 人口普查資料。我們會解決先前遇到的問題。
- 登入 Looker 執行個體
- 如要前往 ACS 人口統計資料區塊檔案,請前往左側主導覽選單,依序選取「開發」和「marketplace_acs_census-v2」。
- 我們來看看 Looker 檢視畫面。開啟
imported_project目錄、acs_census-v2目錄和geography目錄。 - 最後,開啟
cbsa.view檔案。 - 在第 17 行,我們可以看到 LookML 正在建立衍生資料表。換句話說,這段程式碼會彙整兩個公開的 BigQuery 資料集 (一個包含人口普查資料,另一個包含地理邊界資料),藉此建立新的合併資料表。LookML 可讓我們建立持續性衍生資料表來查詢,藉此彙整多個資料集。
此外,聯結是在可版本化的程式碼 (LookML) 中定義,而非系統指令,因此代理程式開發作業更具擴充性。透過 LookML,您可以針對資料定義特定假設和限制,在使用者透過資料代理程式與資料對話時提供支援。
探索 Looker 模擬的人口普查資料
我們在「探索」中執行快速查詢,證明我們有一個集中式資料來源可供查詢。
- 在左側主導覽選單中,依序選取「探索」、「人口普查資料區塊」和「州和縣」。
- 依序選取「教育程度」 >「副學士學位」。
- 選取下列維度:
- 依序點選「地理區域」 >「街區群組」。
- 「地理位置」 >「縣市」 >「縣市名稱」
- 依序點選「地理位置」 >「州」 >「州」。
- 執行查詢 (右上角),您會發現這些地理位置 ID (稱為「街區群組」) 現在已與人類可讀的字串建立關聯。
- 開啟「視覺化」分頁,地圖上就會顯示這項資料。
4. 試用整合 Looker 的即時通訊應用程式
現在來建立 Looker 的資料代理程式。
- 前往快速入門應用程式的代理程式頁面,填寫「建立代理」表單:
- 設定「顯示名稱」欄位:
Cartoon character data analyst
- 設定「系統指令」欄位:
You are [fill in your favorite cartoon character, Bugs Bunny is a favorite]. Answer questions like that cartoon character
- 選取「Looker」選項。
- 將「Url」欄位設為 Looker 執行個體的網址:「https://...」
- 設定「模型」欄位:
data_block_acs_bigquery
- 設定「探索」欄位:
cbsa
- 選取「建立代理程式」。
- 前往對話頁面,然後選取新建立的代理程式。
- 請先新增提示/訊息來發起對話,例如「你好嗎?」
- 請虛擬服務專員描述資料集:「What data do you have available?」(你有哪些可用資料?)
- 讓我們再問幾個問題:
- 「紐約州哪個郡的人口最多?」
- 「那每人平均高中畢業人數最多的州呢?」
- 「請提供各州/省的男女人口數。」
- 「我想查看人口最多的前 10 個州,並以長條圖呈現。」
5. 快速入門應用程式還有哪些功能?
現在您已:
- 在本機設定即時通訊應用程式
- 已建立 BigQuery 資料代理程式和 Looker 資料代理程式
- 與資料代理程式進行對話
- 瞭解 Looker 語意模型化做為對話脈絡的優點
接著來試試快速入門應用程式的其他功能:
- 重新載入快速入門應用程式的網頁,然後前往即時通訊頁面。
- 您可以查看與 BigQuery 和 Looker 代理程式的過往對話,以及所有相關訊息。應用程式前端不會儲存先前的對話或訊息,而是從 CA API 擷取。
- 現在請前往代理程式頁面,然後從清單中選取 Looker 代理程式。
- 您可以視需要更新代理程式設定或刪除代理程式。應用程式前端不會儲存任何代理程式。
6. 選用挑戰和進一步探索
您可以趁這個機會熟悉對話式數據分析和快速入門應用程式,也可以挑戰修改快速入門應用程式。您可以嘗試下列建議和挑戰,或直接跳到最後一個部分。
進一步熟悉 CA API 和快速入門應用程式
- 進一步瞭解如何透過深入的系統指令控制代理程式的行為。
- 設定另一個指向新 BigQuery 資料集的資料代理程式。
- 在 Looker 執行個體中安裝新的 Looker 區塊、建立代理程式,並將其指向新的 Looker 資料集。
快速入門應用程式修改挑戰
- 您是否熟悉 Looker 嵌入功能?如果是,請嘗試在快速入門應用程式中嵌入 Looker 資訊主頁。建議使用 Streamlit 的 iframe 元件。
- 找出含有影片網址的公開資料集,然後更新應用程式的即時通訊算繪邏輯,在即時通訊中顯示影片。
7. 結論與重點
本測驗到此結束!您已使用 Conversational Analytics API 建構聊天應用程式、建立資料代理程式,並與資料對話。讓我們回顧一些重要功能和概念!
對話式數據分析功能
我們已介紹許多對話式數據分析功能,例如:
- 建立、更新、列出、取得及刪除資料代理程式。
- 將資料代理指向 BigQuery 或 Looker 做為資料來源。
- 建立、列出及取得對話和相應訊息。
- 在對話中製作 Vega 圖表規格,以呈現沉浸式視覺化內容。
- 將對話中的舊訊息做為日後訊息的實用脈絡資訊。
使用 Looker 和 CA API 的好處
Looker 提供集中式、可測試及可管理的資料語意模型。搭配對話式數據分析,Looker 可提供可擴充的方式,為資料代理提供背景資訊。
後續步驟
- 如需更多指南、功能和應用實例,請參閱對話式分析說明文件。
- 隨時掌握並參與 快速入門應用程式存放區的最新動態。