สร้างรากฐานข้อมูลด้วยข้อมูลเมตาของแคตตาล็อกความรู้

1. บทนำ

โมเดล Generative AI เป็นเครื่องมือให้เหตุผลที่มีประสิทธิภาพ แต่ขาดบริบทขององค์กร หากผู้บริหารถาม AI Agent ว่า "รายได้ในไตรมาสที่ 1 ของเราเป็นเท่าใด" Agent อาจพบตารางหลายสิบตารางที่ชื่อ "รายได้" ในที่เก็บข้อมูลขนาดใหญ่ของคุณ บางตารางเป็นรายงานทางการเงินที่เข้มงวด บางตารางเป็นค่าประมาณทางการตลาดแบบเรียลไทม์ และหลายตารางอาจเป็น Sandbox ที่เลิกใช้งานแล้ว

หากไม่มีข้อมูลพื้นฐานที่ชัดเจน AI Agent จะเลือกตารางตามความคล้ายคลึงของชื่ออย่างง่าย ซึ่งจะนำไปสู่คำตอบที่ "ผิดอย่างน่าเชื่อ" ซึ่งได้มาจากข้อมูลที่ไม่ได้ยืนยัน

Codelab นี้เป็นส่วนหนึ่งของซีรีส์ 2 ตอนที่สำรวจวิธีสร้าง AI Agent ที่คำนึงถึงการกำกับดูแล

ในส่วนแรกนี้ คุณจะได้สร้างรากฐานข้อมูล โดยคุณจะตั้งค่าที่เก็บข้อมูลขนาดใหญ่ที่ "ยุ่งเหยิง" ใน BigQuery, ใช้แท็กข้อมูลเมตาที่เข้มงวด (แง่มุมของ Knowledge Catalog) เพื่อแยกความแตกต่างระหว่างข้อมูลที่ถูกต้องกับข้อมูลที่ไม่เกี่ยวข้อง และใช้ AGY (Antigravity) CLI เพื่อทดสอบในเครื่องว่า Agent ปฏิบัติตามกฎการกำกับดูแลข้อมูลของคุณอย่างเคร่งครัดหรือไม่

คุณสามารถอ่านส่วนที่ 2 ของซีรีส์นี้ ซึ่งครอบคลุมวิธีติดตั้งใช้งานต้นแบบ Agent ในเครื่องลงในเว็บแอปพลิเคชันระดับองค์กรที่ปลอดภัยโดยใช้ Model Context Protocol (MCP) และ Cloud Run 👉 อ่านส่วนที่ 2

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

  • ติดตั้งใช้งานที่เก็บข้อมูลขนาดใหญ่แบบหลายระดับที่สมจริงโดยใช้สคริปต์การตั้งค่า
  • ออกแบบและลงทะเบียนเทมเพลตข้อมูลเมตาที่กำหนดเอง (ประเภทแง่มุม) ใน Knowledge Catalog เพื่อแยกความแตกต่างระหว่างผลิตภัณฑ์ข้อมูลอย่างเป็นทางการกับตาราง Sandbox ที่ยังไม่ได้ประมวลผล
  • ยืนยันกฎการกำกับดูแลข้อมูลในเครื่องโดยใช้ AGY CLI ก่อนที่จะเขียนโค้ดของแอปพลิเคชัน

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

  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงินแล้ว
  • สิทธิ์เข้าถึง Google Cloud Shell (AGY CLI ติดตั้งไว้ล่วงหน้าใน Cloud Shell)
  • ความเข้าใจพื้นฐานเกี่ยวกับ BigQuery และ Knowledge Catalog

หัวข้อสำคัญ

2. การตั้งค่าและข้อกำหนด

เริ่มต้น Cloud Shell

แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะได้ใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์

จาก คอนโซล Google Cloud ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

เปิดใช้งาน Cloud Shell

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

ภาพหน้าจอของเทอร์มินัล Google Cloud Shell ที่แสดงว่าสภาพแวดล้อมเชื่อมต่อแล้ว

เครื่องเสมือนนี้โหลดเครื่องมือพัฒนาทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักขนาด 5 GB ที่คงอยู่ และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ โดยไม่จำเป็นต้องติดตั้งสิ่งใด

เริ่มต้นสภาพแวดล้อม

เปิด Cloud Shell และตั้งค่าตัวแปรโปรเจ็กต์เพื่อให้แน่ใจว่าคำสั่งทั้งหมดกำหนดเป้าหมายไปที่โครงสร้างพื้นฐานที่ถูกต้อง

export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export REGION="us-central1"

เปิดใช้ API

เปิดใช้บริการ Google Cloud ที่จำเป็นเพื่อดำเนินการตามคำแนะนำต่อไปนี้

gcloud services enable \
  bigquery.googleapis.com \
  dataplex.googleapis.com

โคลนที่เก็บ

รับโค้ดโครงสร้างพื้นฐานและสคริปต์การทำงานอัตโนมัติจากที่เก็บ GitHub เราจะดาวน์โหลดเฉพาะโฟลเดอร์ที่จำเป็นสำหรับแล็บนี้เท่านั้นเพื่อประหยัดพื้นที่ดิสก์ใน Cloud Shell

# Perform a shallow clone to get only the latest repository structure without the full history
git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
cd devrel-demos
# Specify and download only the folder we need for this lab
git sparse-checkout set data-analytics/governance-context
cd data-analytics/governance-context

สร้างที่เก็บข้อมูลขนาดใหญ่ที่ "ยุ่งเหยิง"

สภาพแวดล้อมข้อมูลในโลกแห่งความเป็นจริงมักจะไม่สะอาด เราจึงต้องมีทั้ง Data Mart "อย่างเป็นทางการ" และตาราง "Sandbox" ที่ไม่น่าเชื่อถือเพื่อจำลองความเป็นจริง

เราจะใช้สคริปต์การตั้งค่าเพื่อติดตั้งใช้งานชุดข้อมูลและตาราง BigQuery

  1. ทำให้สคริปต์การตั้งค่าสามารถเรียกใช้งานได้และดำเนินการ การดำเนินการนี้จะสร้างชุดข้อมูล BigQuery 3 ชุด (finance_mart, marketing_prod, analyst_sandbox) และป้อนข้อมูลตัวอย่างลงในตารางของชุดข้อมูล
chmod +x ./setup_bq_tables.sh
./setup_bq_tables.sh

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

3. การสร้างเทมเพลตการกำกับดูแลข้อมูล (ประเภทแง่มุม)

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

เราจะลงทะเบียนเทมเพลตนี้โดยใช้ gcloud CLI เพื่อให้คุณเห็นวิธีที่เทมเพลตได้รับการกำหนด

ตรวจสอบสคีมาของแง่มุม

แสดงเนื้อหาของ aspect_template.json เพื่อดูคำจำกัดความของสคีมา

cat aspect_template.json

โดยจะแสดงโครงสร้าง JSON ต่อไปนี้

{
  "name": "OfficialDataProductSpec",
  "type": "record",
  "recordFields": [
    {
      "name": "product_tier",
      "type": "enum",
      "enumValues": [
        { "name": "GOLD_CRITICAL", "index": 1 },
        { "name": "SILVER_STANDARD", "index": 2 },
        { "name": "BRONZE_ADHOC", "index": 3 }
      ],
      ...
    },
    {
      "name": "is_certified",
      "type": "bool",
      ...
    }
  ]
}

โปรดสังเกตว่าสคีมานี้บังคับใช้ประเภทข้อมูลที่เข้มงวด เช่น enum สำหรับระดับความสำคัญ (GOLD_CRITICAL, SILVER_STANDARD, BRONZE_ADHOC) และ bool สำหรับ is_certified ซึ่งจะช่วยให้ข้อมูลเมตายังคงมีโครงสร้างและเครื่องอ่านได้

ลงทะเบียนประเภทแง่มุม

เรียกใช้คำสั่ง gcloud ต่อไปนี้เพื่อลงทะเบียนเทมเพลตนี้ในรีจิสทรี Knowledge Catalog

gcloud dataplex aspect-types create official-data-product-spec \
    --location="${REGION}" \
    --project="${PROJECT_ID}" \
    --description="Defines the comprehensive profile of a data product for governance agents." \
    --display-name="Official Data Product Spec" \
    --metadata-template-file-name="aspect_template.json"

4. ใช้การกำกับดูแล

นี่คือขั้นตอนทางวิศวกรรมที่สำคัญ ปัจจุบัน ตาราง finance_mart.fin_monthly_closing_internal และ analyst_sandbox.tmp_data_dump_v2_final_real จะดูเหมือนกันทุกประการสำหรับ LLM โดยเป็นเพียงออบเจ็กต์ที่มีคอลัมน์

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

สร้างเพย์โหลดการกำกับดูแล

คีย์แง่มุมของ Knowledge Catalog ต้องไม่ซ้ำกันทั่วโลก (นำหน้าด้วยรหัสโปรเจ็กต์) สคริปต์ ./generate_payloads.sh จะสร้างไฟล์ข้อมูลเมตา YAML แบบไดนามิก

chmod +x ./generate_payloads.sh
./generate_payloads.sh

เอาต์พุต:

การดำเนินการนี้จะสร้างโฟลเดอร์ "./aspect_payloads" ที่มีไฟล์ YAML 4 ไฟล์ ซึ่งกำหนดสถานการณ์การกำกับดูแล (Gold/Internal, Gold/Public, Silver/Realtime, Bronze/Sandbox)

ใช้แง่มุมด้วย CLI

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

cat aspect_payloads/fin_internal.yaml

โดยจะแสดงเนื้อหาต่อไปนี้

your-project-id.us-central1.official-data-product-spec:
  data:
    product_tier: GOLD_CRITICAL
    data_domain: FINANCE
    usage_scope: INTERNAL_ONLY
    update_frequency: DAILY_BATCH
    is_certified: true

โปรดสังเกตว่า YAML นี้กำหนดบริบททางธุรกิจอย่างชัดเจน เช่น การตั้งค่าแฟล็ก is_certified: true และการกำหนดระดับ GOLD_CRITICAL ซึ่งจะช่วยให้ LLM มีกฎที่ชัดเจนและมีโครงสร้างเพื่อประเมินแทนที่จะคาดเดาตามชื่อตาราง

ตอนนี้ให้เรียกใช้สคริปต์ของแอปพลิเคชัน ซึ่งจะวนซ้ำตาราง BigQuery และเรียกใช้คำสั่ง gcloud dataplex entries update เพื่อแนบข้อมูลเมตาที่เข้มงวดนี้

chmod +x ./apply_governance.sh
./apply_governance.sh

การยืนยัน (ไม่บังคับ)

ก่อนดำเนินการต่อ ให้ยืนยันว่าได้ใช้ข้อมูลเมตาอย่างถูกต้องในคอนโซล

  1. เปิดหน้าKnowledge Catalog ในคอนโซล Google Cloud หากไม่เห็น "Knowledge Catalog" ในเมนูการนำทางด้านซ้าย ให้ใช้แถบค้นหาที่ด้านบนของหน้าต่างคอนโซล Google Cloud พิมพ์ "Knowledge Catalog" แล้วเลือกผลลัพธ์ในส่วน "ผลลัพธ์ยอดนิยม" หรือ "ผลิตภัณฑ์และหน้าเว็บ"
  2. ค้นหา fin_monthly_closing_internal คุณควรเห็นตาราง BigQuery แสดงอยู่ในผลลัพธ์ คลิกชื่อตารางเพื่อเข้าสู่หน้ารายละเอียด

13d068a8cd0bfda9.png

  1. ในหน้ารายละเอียดของตาราง ให้มองหาส่วน "แท็กและแง่มุมที่ไม่บังคับ" ที่ด้านล่าง
  2. คุณจะเห็นแง่มุม official-data-product-spec ยืนยันว่าค่าตรงกับสถานการณ์ "Gold Internal" ที่เราใช้

56726f62e1ac311a.png

ตอนนี้คุณได้ยืนยันแล้วว่าตาราง BigQuery ที่เหมือนกันในทางเทคนิค (fin_monthly_closing_internal และ tmp_data_dump_v2_final_real) ได้รับการแยกความแตกต่างเชิงตรรกะด้วยข้อมูลเมตาที่เครื่องอ่านได้

5. กำหนดค่าและสร้างต้นแบบ Agent

ก่อนที่จะสร้างแอปพลิเคชัน (ซึ่งเราจะทำในส่วนที่ 2) เราจะยืนยันตรรกะการกำกับดูแลข้อมูลในเครื่อง โดยเราต้องติดตั้งปลั๊กอิน Knowledge Catalog และกำหนดค่า Agent Skill

ติดตั้งส่วนขยาย

ติดตั้งปลั๊กอิน Knowledge Catalog ใน Cloud Shell ระบบจะขอให้คุณยืนยันและระบุรายละเอียดการตั้งค่า

export DATAPLEX_PROJECT="${PROJECT_ID}"

agy plugin install https://github.com/gemini-cli-extensions/dataplex

ตรวจสอบ Agent Skill

Agent Skill เป็นไฟล์คำจำกัดความแบบคงที่ที่ใช้ซ้ำได้ ซึ่งอยู่ใน .agents/skills/knowledge_catalog_governance/SKILL.md โดยมีตรรกะที่แปลกฎนามธรรมของมนุษย์ (เช่น "ฉันต้องการข้อมูลที่ปลอดภัย") เป็นการค้นหาทางเทคนิคที่เข้มงวด

ตรวจสอบไฟล์เพื่อทำความเข้าใจอัลกอริทึมที่เรากำลังสอน AI

cat .agents/skills/knowledge_catalog_governance/SKILL.md

โปรดทราบว่าไฟล์นี้สั่งให้โมเดลทำตามลูปเฟส 1 (การยืนยันข้อมูลเมตา) และเฟส 2 (การเรียกใช้การค้นหา) อย่างชัดเจน โมเดลต้องค้นพบและยืนยันข้อมูลเมตาก่อนที่จะสร้าง SQL

เริ่ม Agent และสถานการณ์ทดสอบ

เริ่มเซสชัน AGY CLI ระบบจะค้นพบและโหลด Skill จากไดเรกทอรี .agents/skills โดยอัตโนมัติ

agy

หมายเหตุ: คุณอาจเห็นการโหลดไฟล์บริบทหลายไฟล์ ซึ่งเป็นเรื่องปกติ CLI จะโหลด Skill ในเครื่องสำหรับกฎเฉพาะของโปรเจ็กต์นี้ รวมถึงคำแนะนำเริ่มต้นสำหรับปลั๊กอิน Knowledge Catalog เอง

ยืนยันการติดตั้ง

พิมพ์ /mcp เพื่อยืนยันว่าปลั๊กอิน Knowledge Catalog ทำงานอยู่ คุณควรเห็น knowledge-catalog แสดงเป็นปลั๊กอินที่ทำงานอยู่พร้อมเครื่องมือที่พร้อมใช้งาน

/mcp

ผลลัพธ์ที่คาดไว้:

MCP Servers
...
>  ✓ knowledge-catalog  Tools: search_entries, lookup_context, lookup_entry

สถานการณ์ทดสอบ (การสร้างต้นแบบ)

วางข้อความแจ้งต่อไปนี้ลงในเซสชัน Agent ที่ทำงานอยู่ทีละรายการเพื่อยืนยันว่า Agent ปฏิบัติตามกฎของคุณ

  • สถานการณ์ A (รับรองข้อมูลของ CFO)
"We are preparing the deck for an internal Board of Directors meeting next week. I need the numbers to be absolutely finalized, trustworthy, and kept strictly confidential. Which table is safe to use?"

ผลลัพธ์ที่คาดไว้: Agent จะค้นพบโปรเจ็กต์และภูมิภาคที่ใช้งานอยู่โดยอัตโนมัติจากเครื่องมือของ Agent เอง, ค้นหา fin_monthly_closing_internal เนื่องจากมีความหมายตรงกับ GOLD_CRITICAL (ถูกต้อง) และ INTERNAL_ONLY (การประชุมคณะกรรมการ) ในแง่มุมของ Agent และแนะนำตารางดังกล่าว

  • สถานการณ์ B (การเปิดเผยต่อสาธารณะ)
"I need to share our quarterly financial summary with an external consulting firm. It is critical that we do not leak any raw or internal metrics. Which dataset is officially scrubbed and explicitly approved for external sharing?"

ผลลัพธ์ที่คาดไว้: Agent ต้องข้ามตารางภายในรายเดือนและเลือก fin_quarterly_public_report อย่างเคร่งครัด เนื่องจากเป็นข้อมูลเพียงรายการเดียวที่มีแท็ก EXTERNAL_READY

  • สถานการณ์ C (ความต้องการในการดำเนินงาน)
"My dashboard needs to show what's happening right now with our ad spend. I can't wait for the overnight load. What do you recommend?"

ผลลัพธ์ที่คาดไว้: Agent จะเลือก mkt_realtime_campaign_performance เนื่องจากระบุความถี่ในการอัปเดต REALTIME_STREAMING ซึ่งมีความสำคัญมากกว่าระดับ GOLD_CRITICAL ของข้อมูลทางการเงิน

  • สถานการณ์ D (การทดลองใน Sandbox)
"I'm just playing around with some new ML models and need a lot of raw data. It doesn't need to be perfect, just a sandbox environment."

ผลลัพธ์ที่คาดไว้: Agent จะเลือก tmp_data_dump_v2_final_real เนื่องจากมีความหมายตรงกับ BRONZE_ADHOC (ข้อมูลที่ยังไม่ได้ประมวลผล) และ is_certified: false (สภาพแวดล้อม Sandbox) ในแง่มุมของ Agent

(หากต้องการออกจากเซสชัน AGY ให้พิมพ์ /exit หรือ /quit)

6. ยินดีด้วย ต้องทำอะไรต่อ

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

ตอนนี้คุณมาถึงจุดตรวจสอบแล้ว โปรดเลือกขั้นตอนถัดไป

ตัวเลือก A: ฉันต้องการดำเนินการต่อในส่วนที่ 2 เลย

หากคุณพร้อมที่จะเปลี่ยนต้นแบบในเครื่องนี้ให้เป็นเว็บแอปพลิเคชันระดับโปรดักชันที่ปลอดภัยโดยใช้ Model Context Protocol (MCP) และ Cloud Run

👉 ลิงก์ไปยัง Codelab ส่วนที่ 2

ตัวเลือก B: ฉันจะทำส่วนที่ 2 ในภายหลัง หรือต้องการทำเฉพาะส่วนที่ 1 ให้เสร็จสมบูรณ์

หากต้องการหยุดทำงานในวันนี้และหลีกเลี่ยงค่าใช้จ่ายระบบคลาวด์ คุณควรล้างข้อมูลทรัพยากร

ไม่ต้องกังวล ในส่วนที่ 2 เราจะมี "สคริปต์ทางลัด" ที่จะสร้างสภาพแวดล้อมส่วนที่ 1 นี้ขึ้นมาใหม่ทั้งหมดให้คุณในเวลาเพียง 2 นาที คุณจึงสามารถดำเนินการต่อจากจุดที่คุณค้างไว้ได้

👉 ไปที่ส่วนการล้างข้อมูล

7. ล้างข้อมูล (สำหรับตัวเลือก B เท่านั้น)

หากคุณจะหยุดที่นี่ ให้ทำลายทรัพยากรเพื่อหลีกเลี่ยงค่าใช้จ่าย

ทำลายที่เก็บข้อมูลขนาดใหญ่

หากคุณอยู่ในเซสชัน AGY CLI อยู่ ให้ออกจากเซสชันโดยกด Ctrl+C 2 ครั้งหรือพิมพ์ /quit จากนั้นเรียกใช้คำสั่งต่อไปนี้

chmod +x ./cleanup_data_lake.sh
./cleanup_data_lake.sh

ถอนการติดตั้งปลั๊กอิน AGY CLI และนำไฟล์ในเครื่องออก

agy plugin uninstall dataplex
cd ~
rm -rf ~/devrel-demos