สร้างแอปแชทด้วย Conversational Analytics API สำหรับ Looker และ BigQuery

1. ก่อนเริ่มต้น

Codelab นี้จะแนะนําให้คุณใช้ Conversational Analytics API (CA API) กับ Looker และ BigQuery เพื่อสร้างแอปพลิเคชันแชทของคุณเองสําหรับการค้นหาข้อมูล คุณควรมีความรู้เกี่ยวกับ BigQuery, Looker, LLM และ Agent รวมถึง Python เพื่อให้ได้รับประโยชน์สูงสุด

สิ่งที่คุณจะได้เรียนรู้

หลังจากทำตาม Codelab นี้ คุณจะได้เรียนรู้สิ่งต่อไปนี้

  • วิธีใช้ Conversational Analytics กับ Looker
  • วิธีตั้งค่าและใช้แอป Streamlit Quickstart ของการวิเคราะห์เชิงสนทนาใน Python (และวิธีการทำงานของแอป)
  • ประโยชน์ของการใช้ Looker สำหรับการสร้างโมเดลเชิงความหมายด้วย Conversational Analytics

สิ่งที่คุณต้องมี

คุณต้องมีสิ่งต่อไปนี้จึงจะทำ Codelab นี้ให้เสร็จสมบูรณ์ได้

  • อินสแตนซ์ Looker ที่ติดตั้ง ASC Demographic Data Looker Block
  • การเข้าถึง API และนักพัฒนาแอปในอินสแตนซ์ Looker
  • สภาพแวดล้อมในเครื่องที่ติดตั้ง Python v3.11 ขึ้นไป, Git และ gcloud
  • โปรเจ็กต์ในระบบคลาวด์ที่มีการตั้งค่าบทบาท IAM เหล่านี้สำหรับบัญชีผู้ใช้ของคุณ
  • roles/bigquery.dataViewer ผู้ดูข้อมูล BigQuery
  • roles/bigquery.user ผู้ใช้ BigQuery
  • roles/looker.instanceUser ผู้ใช้ในอินสแตนซ์ Looker

2. สร้างและลองใช้แอปแชทด้วย BigQuery

ก่อนอื่นมาตั้งค่าและลองใช้แอปเริ่มต้นอย่างรวดเร็วของ Conversational Analytics โดยใช้ BigQuery เป็นแหล่งข้อมูลกัน

ตรวจสอบสิทธิ์และเปิดใช้ Cloud API

  1. ตรวจสอบสิทธิ์ในเครื่องด้วยบัญชีผู้ใช้
gcloud auth login
  1. เปิดใช้ API ของโปรเจ็กต์ Cloud โปรดแทนที่ YOUR_PROJECT_ID ด้วยรหัสโปรเจ็กต์ Google Cloud ของคุณ
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. โคลนที่เก็บ quickstart github ลงในสภาพแวดล้อมในเครื่อง ดูตัวอย่างคำสั่งต่อไปนี้
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
  1. ไปที่ไดเรกทอรี ca-api-quickstarts ที่คุณโคลนไว้
cd ca-api-quickstarts
  1. สร้างไฟล์ secrets.toml ในไดเรกทอรี .streamlit YOUR_LOOKER_CLIENT_ID และ YOUR_LOOKER_CLIENT_SECRET ควรเป็นรหัสไคลเอ็นต์ของ Looker และรหัสลับไคลเอ็นต์ของ Looker จากอินสแตนซ์ Looker เนื้อหาของไฟล์ควรมีลักษณะดังนี้
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"

คุณใช้คำสั่งตัวอย่างต่อไปนี้เพื่อสร้างไฟล์ได้ อย่าลืมแทนที่ค่าด้วยรหัสโปรเจ็กต์ รหัสไคลเอ็นต์ และรหัสลับไคลเอ็นต์

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. ตอนนี้มาสร้าง Data Agent ที่พูดเหมือนโจรสลัดในแบบฟอร์มสร้างเอเจนต์กัน
  2. ตั้งค่าช่องชื่อที่แสดงโดยทำดังนี้
Pirate BQ Agent
  1. ตั้งค่าช่องคำสั่งของระบบ
You are a pirate. Answer questions like a pirate
  1. เลือกตัวเลือก BigQuery
  2. ตั้งค่าฟิลด์โปรเจ็กต์
bigquery-public-data
  1. ตั้งค่าฟิลด์ชุดข้อมูล
google_trends
  1. ตั้งค่าช่องตาราง
top_rising_terms
  1. เลือกสร้างเอเจนต์
  1. ตอนนี้เราจะไปที่หน้าแชทผ่านการนำทางหลักทางด้านซ้าย ตัวแทนที่เราเพิ่งสร้างขึ้นพร้อมแชทแล้ว มาเริ่มแชทด้วยการเพิ่มพรอมต์/ข้อความว่า "สวัสดี เป็นไงบ้าง"
  2. ตอนนี้มาดูข้อมูลเล็กๆ น้อยๆ เกี่ยวกับชุดข้อมูลนี้กัน "ชุดข้อมูลนี้เกี่ยวกับอะไร"
  1. ถามคำถามอื่น เช่น
  2. "มีสถานที่ใดใน [ป้อนรัฐ] บ้างในชุดข้อมูล"
  3. "คุณให้ข้อมูลในช่วง 2 สัปดาห์ที่ผ่านมาสำหรับ [เมือง รัฐ] ได้ไหม"
  4. "คุณสร้างภาพได้ไหม"

คุณเพิ่งสนทนาแบบหลายรอบกับ Data Agent และข้อมูล BigQuery ในแอปพลิเคชันแชทของคุณเอง

3. สร้างโมเดลและสํารวจข้อมูลใน Looker

ตอนนี้เรามาสร้างโมเดลและสํารวจข้อมูล BigQuery เดียวกันใน Looker กัน

ค้นหาข้อมูลสำมะโนประชากรของ 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
  2. ตั้งค่าฟิลด์โปรเจ็กต์
bigquery-public-data
  1. ตั้งค่าฟิลด์ชุดข้อมูล
census_bureau_acs
  1. ตั้งค่าช่องตาราง
blockgroup_2018_5yr
  1. เลือกสร้างเอเจนต์
  2. ถามคำถามต่อไปนี้กับ Agent ที่สร้างขึ้นใหม่
  3. "คุณมีข้อมูลอะไรบ้าง"
  4. "คุณช่วยแสดงตัวอย่างข้อมูลของฉันได้ไหม"

ใช้ 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 กำลังสร้าง Derived Table กล่าวคือ โค้ดนี้จะสร้างตารางใหม่ที่รวมกันโดยการรวมชุดข้อมูล BigQuery สาธารณะ 2 ชุดเข้าด้วยกัน ชุดหนึ่งมีข้อมูลสำมะโนประชากร และอีกชุดหนึ่งมีข้อมูลขอบเขตทางภูมิศาสตร์ LookML ช่วยให้เราสามารถรวมชุดข้อมูลหลายชุดได้โดยการสร้างตารางที่ได้มาแบบถาวรเพื่อทำการค้นหา

นอกจากนี้ การเข้าร่วมยังกำหนดไว้ในโค้ดที่กำหนดเวอร์ชันได้ (LookML) แทนที่จะเป็นคำสั่งของระบบ ซึ่งทำให้การพัฒนาเอเจนต์ปรับขนาดได้มากขึ้น LookML ช่วยให้คุณกำหนดสมมติฐานและข้อจำกัดที่เฉพาะเจาะจงเกี่ยวกับข้อมูลเพื่อสนับสนุนผู้ใช้ขณะที่แชทกับข้อมูลผ่านเอเจนต์ข้อมูลได้

สํารวจข้อมูลสำมะโนประชากรที่สร้างแบบจำลองใน Looker

มาเรียกใช้การค้นหาอย่างรวดเร็วใน Explore เพื่อแสดงให้เห็นว่าเรามีแหล่งข้อมูลแบบรวมศูนย์แหล่งเดียวที่จะค้นหา

  1. ในเมนูการนำทางหลักด้านซ้าย ให้เลือกสำรวจ แล้วเลือกบล็อกข้อมูลสำมะโนประชากร จากนั้นเลือกรัฐและเขต
  2. เลือกมาตรวัดการศึกษา > อนุปริญญา
  3. เลือกมิติข้อมูลต่อไปนี้
  4. ภูมิศาสตร์ > กลุ่มบล็อก
  5. ภูมิศาสตร์ > เขต > ชื่อเขต
  6. ภูมิศาสตร์ > รัฐ > รัฐ
  7. เรียกใช้การค้นหา (ด้านขวาบน) แล้วคุณจะเห็นว่าตอนนี้รหัสภูมิศาสตร์เหล่านั้น (เรียกว่า "กลุ่มบล็อก") เชื่อมโยงกับสตริงที่มนุษย์อ่านได้แล้ว
  8. เปิดแท็บการแสดงภาพ แล้วคุณจะเห็นข้อมูลนี้ในแผนที่

4. ลองใช้แอปแชทกับ Looker

ตอนนี้มาสร้าง Data Agent สำหรับ Looker กัน

  1. ไปที่แบบฟอร์มสร้าง Agent ของหน้า Agent ของแอปเริ่มต้นอย่างรวดเร็ว
  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 เป็น URL ของอินสแตนซ์ Looker ของคุณ: "https://..."
  3. ตั้งค่าช่องโมเดล
data_block_acs_bigquery
  1. ตั้งค่าฟิลด์สำรวจ
cbsa
  1. เลือกสร้างเอเจนต์
  2. ไปที่หน้าแชทแล้วเลือก Agent ที่สร้างขึ้นใหม่
  3. มาเริ่มแชทด้วยการเพิ่มพรอมต์/ข้อความว่า "สวัสดี เป็นไงบ้าง"
  4. มาลองถามเอเจนต์ให้อธิบายชุดข้อมูลกัน "คุณมีข้อมูลอะไรบ้าง"
  5. ลองถามคำถามเพิ่มเติมกัน
  6. "เขตใดในนิวยอร์กมีประชากรมากที่สุด"
  7. "แล้วเมืองที่มีผู้จบการศึกษาระดับมัธยมปลายต่อประชากรมากที่สุดล่ะ"
  8. "ช่วยบอกจำนวนประชากรแยกตามเพศและรัฐได้ไหม"
  9. "ฉันอยากดูแผนภูมิแท่งของรัฐ 10 อันดับแรกที่มีประชากรมากที่สุด"

5. แอปเริ่มต้นอย่างรวดเร็วทำอะไรได้อีกบ้าง

ตอนนี้คุณได้ทำสิ่งต่อไปนี้แล้ว

  • ตั้งค่าแอปแชทในเครื่อง
  • สร้างตัวแทนข้อมูล BigQuery และตัวแทนข้อมูล Looker
  • สนทนากับเอเจนต์ข้อมูลของคุณ
  • ดูข้อมูลเกี่ยวกับประโยชน์ของการสร้างโมเดลเชิงความหมายของ Looker เป็นบริบทสําหรับแชท

มาลองใช้ความสามารถอื่นๆ ของแอปเริ่มต้นฉบับย่อกัน

  1. โหลดหน้าเว็บของแอปเริ่มต้นอย่างรวดเร็วซ้ำ แล้วไปที่หน้าแชท
  2. คุณสามารถดูการสนทนาที่ผ่านมาพร้อมข้อความที่เกี่ยวข้องทั้งหมดจากทั้ง Agent ของ BigQuery และ Looker ส่วนหน้าของแอปไม่ได้จัดเก็บการสนทนาหรือข้อความที่ผ่านมา แต่จะดึงข้อมูลจาก CA API
  1. ตอนนี้ให้ไปที่หน้าตัวแทนแล้วเลือกตัวแทน Looker จากรายการ
  2. คุณสามารถอัปเดตการกำหนดค่าของเอเจนต์หรือลบเอเจนต์ได้หากต้องการ ระบบจะไม่จัดเก็บเอเจนต์ไว้ในส่วนหน้าของแอป

6. ความท้าทายเพิ่มเติมและการสำรวจเพิ่มเติม (ไม่บังคับ)

หากต้องการ คุณสามารถใช้โอกาสนี้ทำความคุ้นเคยกับข้อมูลวิเคราะห์เชิงสนทนาและแอปเริ่มต้นอย่างรวดเร็ว หรือลองท้าทายตัวเองด้วยการแก้ไขแอปเริ่มต้นอย่างรวดเร็ว คุณสามารถลองทำตามคำแนะนำและความท้าทายต่อไปนี้ หรือข้ามไปยังส่วนสุดท้ายได้

ทำความคุ้นเคยกับ CA API และแอปเริ่มต้นอย่างรวดเร็วเพิ่มเติม

ความท้าทายในการแก้ไขแอปอย่างรวดเร็ว

  • คุณคุ้นเคยกับการฝัง Looker ไหม หากเป็นเช่นนั้น ให้ลองฝังแดชบอร์ด Looker ภายในแอปเริ่มต้นอย่างรวดเร็ว โดยพิจารณาใช้คอมโพเนนต์ iframe ของ Streamlit
  • ค้นหาชุดข้อมูลสาธารณะที่มี URL ของวิดีโอ แล้วอัปเดตตรรกะการแสดงผลแชทของแอปเพื่อแสดงวิดีโอในแชท

7. บทสรุปและสิ่งที่ควรทราบ

คุณทำแบบทดสอบครบหมดแล้ว คุณได้สร้างแอปแชท สร้างเอเจนต์ข้อมูล และแชทกับข้อมูลทั้งหมดด้วย Conversational Analytics API มาดูความสามารถและแนวคิดที่สำคัญกัน

ความสามารถของ Conversational Analytics

เราได้พูดถึงความสามารถของ Conversational Analytics ไปหลายอย่าง เช่น ความสามารถในการทำสิ่งต่อไปนี้

  • สร้าง อัปเดต แสดงรายการ รับ และลบตัวแทนข้อมูล
  • ชี้ตัวแทนข้อมูลไปยัง BigQuery หรือ Looker เป็นแหล่งข้อมูล
  • สร้าง แสดงรายการ และรับการสนทนาและข้อความที่เกี่ยวข้อง
  • สร้างข้อกำหนดแผนภูมิ Vega สำหรับการแสดงภาพที่สมจริงในการสนทนา
  • ใช้ข้อความที่ผ่านมาในการสนทนาเป็นบริบทที่มีประโยชน์สำหรับข้อความในอนาคต

ประโยชน์ของการใช้ Looker กับ CA API

Looker มีการสร้างโมเดลเชิงความหมายของข้อมูลแบบรวมศูนย์ที่ทดสอบและควบคุมได้ เมื่อใช้ร่วมกับ Conversational Analytics แล้ว Looker จะมอบวิธีที่ปรับขนาดได้ในการให้บริบทแก่เอเจนต์ข้อมูล

ขั้นต่อไปคืออะไร