使用對話式數據分析和 Looker 建構聊天應用程式

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.dataViewer BigQuery 資料檢視者
  • roles/bigquery.user BigQuery 使用者
  • roles/looker.instanceUser Looker 執行個體使用者

2. 使用 BigQuery 建構及試用聊天應用程式

首先,請以 BigQuery 做為資料來源,設定並試用 Conversational Analytics 快速入門應用程式。

驗證及啟用 Cloud API

  1. 使用使用者帳戶在本機進行驗證:
gcloud auth login
  1. 啟用 Cloud 專案 API。請將 YOUR_PROJECT_ID 替換為您的 Google Cloud 專案 ID:
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
  1. 設定應用程式預設憑證 (ADC) 和帳單:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID

設定快速入門應用程式

  1. 快速入門導覽課程的 GitHub 存放區複製到本機環境。請參閱下列範例指令:
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
  1. 前往複製的 ca-api-quickstarts 目錄:
cd ca-api-quickstarts
  1. .streamlit 目錄中建立 secrets.toml 檔案。YOUR_LOOKER_CLIENT_IDYOUR_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
  1. 安裝快速入門應用程式的 Python 需求條件:
pip install -r requirements.txt
  1. 執行快速入門應用程式:
streamlit run app.py
  1. 在所選瀏覽器中開啟 https://localhost:8501

試用快速入門應用程式

您現在位於快速入門應用程式的代理程式頁面。沒有可用的資料代理人。

  1. 現在,我們在「建立代理」表單中建立一個會說海盜用語的資料代理:
  2. 設定「顯示名稱」欄位:
Pirate BQ Agent
  1. 設定「系統指令」欄位:
You are a pirate. Answer questions like a pirate
  1. 選取「BigQuery」BigQuery選項。
  2. 設定「專案」欄位:
bigquery-public-data
  1. 設定「Dataset」(資料集) 欄位:
google_trends
  1. 設定「資料表」欄位:
top_rising_terms
  1. 選取「建立代理程式」
  1. 現在,請透過左側主要導覽前往對話頁面。新建立的服務專員已可進行即時通訊。請先新增提示/訊息來發起對話,例如「你好嗎?」
  2. 現在,讓我們稍微瞭解這個資料集:「這個資料集是關於什麼?」
  1. 提出其他問題,例如:
  2. 「資料集中有哪些 [輸入州別] 地點?」
  3. 「請提供過去 2 週的 [城市、州別] 資料。」
  4. 「你能建立視覺化圖表嗎?」

您剛才在自己的即時通訊應用程式中,與資料代理程式和 BigQuery 資料進行了多輪對話。

3. 在 Looker 中建立資料模型並探索資料

現在,我們要在 Looker 中建立相同 BigQuery 資料的模型並加以探索。

查詢 BigQuery 人口普查資料

連結至較大的關聯資料集後會發生什麼情況?首先,我們要建立新的代理程式。

  1. 返回代理頁面的「建立代理」表單。
  2. 設定「顯示名稱」欄位:
BQ Census Agent
  1. 設定「系統指令」欄位:
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
  1. 選取「BigQuery」BigQuery選項。
  2. 設定「專案」欄位:
bigquery-public-data
  1. 設定「Dataset」(資料集) 欄位:
census_bureau_acs
  1. 設定「資料表」欄位:
blockgroup_2018_5yr
  1. 選取「建立代理程式」
  2. 向新建立的代理提出下列兩個問題:
  3. 「你有哪些資料?」
  4. 「Can you show me a preview of my data」(可以預覽我的資料嗎?)

使用 Looker 建立人口普查資料模型

現在我們要使用 LookML 模型定義 BigQuery 人口普查資料。我們會解決先前遇到的問題。

  1. 登入 Looker 執行個體
  2. 如要前往 ACS 人口統計資料區塊檔案,請前往左側主導覽選單,依序選取「開發」和「marketplace_acs_census-v2」
  3. 我們來看看 Looker 檢視畫面。開啟 imported_project 目錄、acs_census-v2 目錄和 geography 目錄。
  4. 最後,開啟 cbsa.view 檔案。
  5. 在第 17 行,我們可以看到 LookML 正在建立衍生資料表。換句話說,這段程式碼會彙整兩個公開的 BigQuery 資料集 (一個包含人口普查資料,另一個包含地理邊界資料),藉此建立新的合併資料表。LookML 可讓我們建立持續性衍生資料表來查詢,藉此彙整多個資料集。

此外,聯結是在可版本化的程式碼 (LookML) 中定義,而非系統指令,因此代理程式開發作業更具擴充性。透過 LookML,您可以針對資料定義特定假設和限制,在使用者透過資料代理程式與資料對話時提供支援。

探索 Looker 模擬的人口普查資料

我們在「探索」中執行快速查詢,證明我們有一個集中式資料來源可供查詢。

  1. 在左側主導覽選單中,依序選取「探索」、「人口普查資料區塊」和「州和縣」
  2. 依序選取「教育程度」 >「副學士學位」
  3. 選取下列維度:
  4. 依序點選「地理區域」 >「街區群組」
  5. 「地理位置」 >「縣市」 >「縣市名稱」
  6. 依序點選「地理位置」 >「州」 >「州」
  7. 執行查詢 (右上角),您會發現這些地理位置 ID (稱為「街區群組」) 現在已與人類可讀的字串建立關聯。
  8. 開啟「視覺化」分頁,地圖上就會顯示這項資料。

4. 試用整合 Looker 的即時通訊應用程式

現在來建立 Looker 的資料代理程式。

  1. 前往快速入門應用程式的代理程式頁面,填寫「建立代理」表單:
  2. 設定「顯示名稱」欄位:
Cartoon character data analyst
  1. 設定「系統指令」欄位:
You are [fill in your favorite cartoon character, Bugs Bunny is a favorite]. Answer questions like that cartoon character
  1. 選取「Looker」選項。
  2. 將「Url」欄位設為 Looker 執行個體的網址:「https://...」
  3. 設定「模型」欄位:
data_block_acs_bigquery
  1. 設定「探索」欄位:
cbsa
  1. 選取「建立代理程式」
  2. 前往對話頁面,然後選取新建立的代理程式。
  3. 請先新增提示/訊息來發起對話,例如「你好嗎?」
  4. 請虛擬服務專員描述資料集:「What data do you have available?」(你有哪些可用資料?)
  5. 讓我們再問幾個問題:
  6. 「紐約州哪個郡的人口最多?」
  7. 「那每人平均高中畢業人數最多的州呢?」
  8. 「請提供各州/省的男女人口數。」
  9. 「我想查看人口最多的前 10 個州,並以長條圖呈現。」

5. 快速入門應用程式還有哪些功能?

現在您已:

  • 在本機設定即時通訊應用程式
  • 已建立 BigQuery 資料代理程式和 Looker 資料代理程式
  • 與資料代理程式進行對話
  • 瞭解 Looker 語意模型化做為對話脈絡的優點

接著來試試快速入門應用程式的其他功能:

  1. 重新載入快速入門應用程式的網頁,然後前往即時通訊頁面。
  2. 您可以查看與 BigQuery 和 Looker 代理程式的過往對話,以及所有相關訊息。應用程式前端不會儲存先前的對話或訊息,而是從 CA API 擷取。
  1. 現在請前往代理程式頁面,然後從清單中選取 Looker 代理程式。
  2. 您可以視需要更新代理程式設定或刪除代理程式。應用程式前端不會儲存任何代理程式。

6. 選用挑戰和進一步探索

您可以趁這個機會熟悉對話式數據分析和快速入門應用程式,也可以挑戰修改快速入門應用程式。您可以嘗試下列建議和挑戰,或直接跳到最後一個部分。

進一步熟悉 CA API 和快速入門應用程式

快速入門應用程式修改挑戰

  • 您是否熟悉 Looker 嵌入功能?如果是,請嘗試在快速入門應用程式中嵌入 Looker 資訊主頁。建議使用 Streamlit 的 iframe 元件
  • 找出含有影片網址的公開資料集,然後更新應用程式的即時通訊算繪邏輯,在即時通訊中顯示影片。

7. 結論與重點

本測驗到此結束!您已使用 Conversational Analytics API 建構聊天應用程式、建立資料代理程式,並與資料對話。讓我們回顧一些重要功能和概念!

對話式數據分析功能

我們已介紹許多對話式數據分析功能,例如:

  • 建立、更新、列出、取得及刪除資料代理程式。
  • 將資料代理指向 BigQuery 或 Looker 做為資料來源。
  • 建立、列出及取得對話和相應訊息。
  • 在對話中製作 Vega 圖表規格,以呈現沉浸式視覺化內容。
  • 將對話中的舊訊息做為日後訊息的實用脈絡資訊。

使用 Looker 和 CA API 的好處

Looker 提供集中式、可測試及可管理的資料語意模型。搭配對話式數據分析,Looker 可提供可擴充的方式,為資料代理提供背景資訊。

後續步驟