1. ภาพรวม
ใน Codelab นี้ คุณจะสร้างแอปพลิเคชันการค้นหาฐานความรู้ที่รองรับการปรับขนาดได้ แทนที่จะจัดการไปป์ไลน์ ETL ที่ซับซ้อนด้วยสคริปต์ Python และลูปเพื่อสร้างการฝังเวกเตอร์ คุณจะใช้ AlloyDB AI เพื่อจัดการการสร้างการฝังในฐานข้อมูลโดยตรงโดยใช้คำสั่ง SQL เพียงคำสั่งเดียว

สิ่งที่คุณจะสร้าง
แอปพลิเคชันฐานข้อมูลฐานความรู้ที่ "ค้นหาได้" และมีประสิทธิภาพสูง
สิ่งที่คุณจะได้เรียนรู้
คุณจะได้เรียนรู้วิธีต่อไปนี้
- จัดสรรคลัสเตอร์ AlloyDB และเปิดใช้ส่วนขยาย AI
- สร้างข้อมูลสังเคราะห์ (มากกว่า 50,000 แถว) โดยใช้ SQL
- ทดแทนการฝังเวกเตอร์สำหรับชุดข้อมูลทั้งหมดโดยใช้การประมวลผลแบบกลุ่ม
- ตั้งค่าทริกเกอร์ที่เพิ่มขึ้นแบบเรียลไทม์เพื่อฝังข้อมูลใหม่โดยอัตโนมัติ
- ทำการค้นหาแบบผสม (เวกเตอร์ + ตัวกรอง SQL) สำหรับ "บริบทที่ยืดหยุ่น"
ข้อกำหนด
2. ก่อนเริ่มต้น
สร้างโปรเจ็กต์
- ในคอนโซล Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือยัง
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud

- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้ว และโปรเจ็กต์ได้รับการตั้งค่าเป็นรหัสโปรเจ็กต์ของคุณโดยใช้คำสั่งต่อไปนี้
gcloud auth list
- เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
- หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
- เปิดใช้ API ที่จำเป็น: ไปที่ลิงก์และเปิดใช้ API
หรือจะใช้คำสั่ง gcloud เพื่อดำเนินการนี้ก็ได้ โปรดดูเอกสารประกอบสำหรับคำสั่งและการใช้งาน gcloud
gcloud services enable \
alloydb.googleapis.com \
compute.googleapis.com \
cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
aiplatform.googleapis.com
ข้อควรระวังและการแก้ปัญหา
อาการ "โปรเจ็กต์ผี" | คุณเรียกใช้ |
อุปสรรคด้านการเรียกเก็บเงิน | คุณเปิดใช้โปรเจ็กต์แล้ว แต่ลืมบัญชีสำหรับการเรียกเก็บเงิน AlloyDB เป็นเครื่องมือที่มีประสิทธิภาพสูง ซึ่งจะไม่เริ่มทำงานหาก "ถังน้ำมัน" (การเรียกเก็บเงิน) ว่างเปล่า |
ความล่าช้าในการเผยแพร่ API | คุณคลิก "เปิดใช้ API" แต่บรรทัดคำสั่งยังคงแสดงข้อความ |
Quota Quags | หากใช้บัญชีทดลองใช้ใหม่ คุณอาจถึงโควต้าภูมิภาคสำหรับอินสแตนซ์ AlloyDB หาก |
Service Agent "ที่ซ่อนอยู่" | บางครั้ง Agent บริการ AlloyDB ไม่ได้รับบทบาท |
3. การตั้งค่าฐานข้อมูล
ในห้องทดลองนี้ เราจะใช้ AlloyDB เป็นฐานข้อมูลสำหรับข้อมูลทดสอบ โดยจะใช้คลัสเตอร์เพื่อเก็บทรัพยากรทั้งหมด เช่น ฐานข้อมูลและบันทึก แต่ละคลัสเตอร์จะมีอินสแตนซ์หลักที่ให้จุดเข้าถึงข้อมูล ตารางจะเก็บข้อมูลจริง
มาสร้างคลัสเตอร์ อินสแตนซ์ และตาราง AlloyDB ที่จะโหลดชุดข้อมูลทดสอบกัน
- คลิกปุ่มหรือคัดลอกลิงก์ด้านล่างไปยังเบราว์เซอร์ที่คุณเข้าสู่ระบบผู้ใช้คอนโซล Google Cloud ไว้
- เมื่อขั้นตอนนี้เสร็จสมบูรณ์ ระบบจะโคลนที่เก็บไปยังเครื่องมือแก้ไข Cloud Shell ในเครื่อง และคุณจะเรียกใช้คำสั่งด้านล่างจากโฟลเดอร์โปรเจ็กต์ได้ (สิ่งสำคัญคือต้องตรวจสอบว่าคุณอยู่ในไดเรกทอรีโปรเจ็กต์)
sh run.sh
- ตอนนี้ให้ใช้ UI (คลิกลิงก์ในเทอร์มินัลหรือคลิกลิงก์ "แสดงตัวอย่างบนเว็บ" ในเทอร์มินัล)
- ป้อนรายละเอียดรหัสโปรเจ็กต์ ชื่อคลัสเตอร์ และชื่ออินสแตนซ์เพื่อเริ่มต้นใช้งาน
- คุณสามารถไปดื่มกาแฟรอขณะที่บันทึกเลื่อนไปเรื่อยๆ และอ่านเกี่ยวกับวิธีการทำงานเบื้องหลังได้ที่นี่ ซึ่งอาจใช้เวลาประมาณ 10-15 นาที
ข้อควรระวังและการแก้ปัญหา
ปัญหา "ความอดทน" | คลัสเตอร์ฐานข้อมูลเป็นโครงสร้างพื้นฐานที่ซับซ้อน หากคุณรีเฟรชหน้าเว็บหรือปิดเซสชัน Cloud Shell เนื่องจาก "ดูเหมือนค้าง" คุณอาจพบอินสแตนซ์ "ผี" ที่จัดสรรไว้บางส่วนและไม่สามารถลบได้โดยไม่ต้องดำเนินการด้วยตนเอง |
ภูมิภาคไม่ตรงกัน | หากคุณเปิดใช้ API ใน |
Zombie Clusters | หากก่อนหน้านี้คุณใช้ชื่อเดียวกันสำหรับคลัสเตอร์และไม่ได้ลบออก สคริปต์อาจแจ้งว่ามีชื่อคลัสเตอร์อยู่แล้ว ชื่อคลัสเตอร์ต้องไม่ซ้ำกันภายในโปรเจ็กต์ |
Cloud Shell Timeout | หากคุณพักดื่มกาแฟเป็นเวลา 30 นาที Cloud Shell อาจเข้าสู่โหมดสลีปและยกเลิกการเชื่อมต่อกระบวนการ |
4. การจัดสรรสคีมา
ในขั้นตอนนี้ เราจะพูดถึงหัวข้อต่อไปนี้

เมื่อคลัสเตอร์และอินสแตนซ์ AlloyDB ทำงานแล้ว ให้ไปที่เครื่องมือแก้ไข SQL ของ AlloyDB Studio เพื่อเปิดใช้ส่วนขยาย AI และจัดสรรสคีมา
คุณอาจต้องรอให้ระบบสร้างอินสแตนซ์ให้เสร็จก่อน เมื่อพร้อมแล้ว ให้ลงชื่อเข้าใช้ AlloyDB โดยใช้ข้อมูลเข้าสู่ระบบที่คุณสร้างขึ้นเมื่อสร้างคลัสเตอร์ ใช้ข้อมูลต่อไปนี้เพื่อตรวจสอบสิทธิ์กับ PostgreSQL
- ชื่อผู้ใช้ : "
postgres" - ฐานข้อมูล : "
postgres" - รหัสผ่าน : "
alloydb" (หรือรหัสผ่านที่คุณตั้งไว้ตอนสร้าง)
เมื่อตรวจสอบสิทธิ์ใน AlloyDB Studio สำเร็จแล้ว ระบบจะป้อนคำสั่ง SQL ในเครื่องมือแก้ไข คุณเพิ่มหน้าต่างเครื่องมือแก้ไขได้หลายหน้าต่างโดยใช้เครื่องหมายบวกทางด้านขวาของหน้าต่างสุดท้าย

คุณจะป้อนคำสั่งสำหรับ AlloyDB ในหน้าต่างเครื่องมือแก้ไข โดยใช้ตัวเลือกเรียกใช้ จัดรูปแบบ และล้างตามความจำเป็น
เปิดใช้ส่วนขยาย
ในการสร้างแอปนี้ เราจะใช้ส่วนขยาย pgvector และ google_ml_integration ส่วนขยาย pgvector ช่วยให้คุณจัดเก็บและค้นหาการฝังเวกเตอร์ได้ ส่วนขยาย google_ml_integration มีฟังก์ชันที่คุณใช้เพื่อเข้าถึงปลายทางการคาดการณ์ของ Vertex AI เพื่อรับการคาดการณ์ใน SQL เปิดใช้ส่วนขยายเหล่านี้โดยเรียกใช้ DDL ต่อไปนี้
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
CREATE EXTENSION IF NOT EXISTS vector;
สร้างตาราง
เราต้องการชุดข้อมูลเพื่อแสดงให้เห็นถึงขนาด เราจะสร้าง "บทความช่วยเหลือ" สังเคราะห์จำนวน 50,000 แถวทันทีโดยใช้ SQL แทนการนำเข้า CSV
คุณสร้างตารางได้โดยใช้คำสั่ง DDL ด้านล่างใน AlloyDB Studio
-- 1. Create the table
CREATE TABLE help_articles (
id SERIAL PRIMARY KEY,
title TEXT,
category TEXT,
product_version TEXT,
content_body TEXT,
embedding vector(768) -- Dimension for text-embedding-005
);
-- 2. Generate 50,000 rows of synthetic data
INSERT INTO help_articles (title, category, product_version, content_body)
SELECT
'Help Article ' || i,
CASE
WHEN i % 3 = 0 THEN 'Billing'
WHEN i % 3 = 1 THEN 'Technical'
ELSE 'General'
END,
CASE
WHEN i % 2 = 0 THEN '2.0'
ELSE '1.0'
END,
'This article covers common issues regarding ' ||
CASE
WHEN i % 3 = 0 THEN 'payment failures, invoice disputes, and credit card updates.'
WHEN i % 3 = 1 THEN 'connection timeouts, latency issues, and API errors.'
ELSE 'account profile settings, password resets, and user roles.'
END
FROM generate_series(1, 50000) AS i;
คอลัมน์ item_vector จะอนุญาตให้จัดเก็บค่าเวกเตอร์ของข้อความ
ตรวจสอบข้อมูล
SELECT count(*) FROM help_articles;
-- Output: 50000
เปิดใช้แฟล็กฐานข้อมูล
ไปที่คอนโซลการกำหนดค่าอินสแตนซ์ คลิก "แก้ไขอินสแตนซ์หลัก" ไปที่การกำหนดค่าขั้นสูง แล้วคลิก "เพิ่มแฟล็กฐานข้อมูล"
หากไม่มี ให้ป้อนในเมนูแบบเลื่อนลงของแฟล็กและตั้งค่าเป็น "ON" แล้วอัปเดตอินสแตนซ์
หากไม่มี ให้ป้อนในเมนูแบบเลื่อนลงของแฟล็กและตั้งค่าเป็น "ON" แล้วอัปเดตอินสแตนซ์
ขั้นตอนในการกำหนดค่าแฟล็กฐานข้อมูล
- ในคอนโซล Google Cloud ให้ไปที่หน้าคลัสเตอร์
- คลิกคลัสเตอร์ในคอลัมน์ชื่อทรัพยากร
- ในหน้าภาพรวม ให้ไปที่อินสแตนซ์ในคลัสเตอร์ เลือกอินสแตนซ์ แล้วคลิกแก้ไข
- เพิ่ม แก้ไข หรือลบแฟล็กฐานข้อมูลออกจากอินสแตนซ์โดยทำดังนี้
เพิ่มแฟล็ก
- หากต้องการเพิ่มแฟล็กฐานข้อมูลลงในอินสแตนซ์ ให้คลิก "เพิ่มแฟล็ก"
- เลือกแฟล็กจากรายการแฟล็กฐานข้อมูลใหม่
- ระบุค่าสำหรับแฟล็ก
- คลิกเสร็จสิ้น
- คลิกอัปเดตอินสแตนซ์
- ตรวจสอบว่าส่วนขยาย google_ml_integration เป็นเวอร์ชัน 1.5.2 ขึ้นไป
หากต้องการตรวจสอบเวอร์ชันของส่วนขยาย ให้ใช้คำสั่งต่อไปนี้
SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
หากต้องการอัปเดตส่วนขยายเป็นเวอร์ชันที่สูงขึ้น ให้ใช้คำสั่งต่อไปนี้
ALTER EXTENSION google_ml_integration UPDATE;
ให้สิทธิ์
- หากต้องการอนุญาตให้ผู้ใช้จัดการการสร้างการฝังอัตโนมัติ ให้มอบสิทธิ์ INSERT, UPDATE และ DELETE ในตาราง google_ml.embed_gen_progress และ google_ml.embed_gen_settings ดังนี้
GRANT INSERT, UPDATE, DELETE ON google_ml.embed_gen_progress TO postgres;
"postgres" คือ USER_NAME ที่ได้รับสิทธิ์
- เรียกใช้คำสั่งด้านล่างเพื่อให้สิทธิ์ดำเนินการในฟังก์ชัน "การฝัง"
GRANT EXECUTE ON FUNCTION embedding TO postgres;
ให้บทบาทผู้ใช้ Vertex AI แก่บัญชีบริการ AlloyDB
จากคอนโซล Google Cloud IAM ให้สิทธิ์เข้าถึงบทบาท "ผู้ใช้ Vertex AI" แก่บัญชีบริการ AlloyDB (ซึ่งมีลักษณะดังนี้ service-<<PROJECT_NUMBER >>@gcp-sa-alloydb.iam.gserviceaccount.com) PROJECT_NUMBER จะมีหมายเลขโปรเจ็กต์ของคุณ
หรือจะเรียกใช้คำสั่งด้านล่างจากเทอร์มินัล Cloud Shell ก็ได้
PROJECT_ID=$(gcloud config get-value project)
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
ข้อควรระวังและการแก้ปัญหา
วงจร "ลืมรหัสผ่าน" | หากคุณใช้การตั้งค่า "คลิกเดียว" และจำรหัสผ่านไม่ได้ ให้ไปที่หน้าข้อมูลพื้นฐานของอินสแตนซ์ในคอนโซล แล้วคลิก "แก้ไข" เพื่อรีเซ็ตรหัสผ่าน |
ข้อผิดพลาด "ไม่พบส่วนขยาย" | หาก |
5. การสร้างเวกเตอร์แบบ "One-Shot"
ซึ่งเป็นหัวใจสำคัญของห้องทดลองนี้ แทนที่จะเขียน Python Loop เพื่อประมวลผล 50,000 แถวนี้ เราจะใช้ฟังก์ชัน ai.initialize_embeddings
คำสั่งเดียวนี้ทำ 2 อย่างต่อไปนี้
- ทดแทนแถวที่มีอยู่ทั้งหมด
- สร้างทริกเกอร์เพื่อฝังแถวในอนาคตโดยอัตโนมัติ
เรียกใช้คำสั่ง SQL ด้านล่างจากเครื่องมือแก้ไขการค้นหา AlloyDB
CALL ai.initialize_embeddings(
model_id => 'text-embedding-005',
table_name => 'help_articles',
content_column => 'content_body',
embedding_column => 'embedding',
incremental_refresh_mode => 'transactional'
);
ยืนยันการฝัง
ตรวจสอบว่าคอลัมน์ embedding มีข้อมูลแล้ว โดยทำดังนี้
SELECT id, left(content_body, 30), substring(embedding::text, 1, 30) as vector_partial
FROM help_articles;
คุณควรเห็นผลลัพธ์ที่คล้ายกับด้านล่างนี้

เกิดอะไรขึ้น
- ทดแทนข้อมูลจำนวนมาก: ระบบจะสแกนแถวที่มีอยู่ 50,000 แถวโดยอัตโนมัติและสร้างการฝังผ่าน Vertex AI
- การทำงานอัตโนมัติ: การตั้งค่า incremental_refresh_mode => 'transactional' จะทำให้ AlloyDB ตั้งค่าทริกเกอร์ภายในโดยอัตโนมัติ แถวใหม่ที่แทรกใน help_articles จะมีการสร้างการฝังทันที
- คุณสามารถเลือกตั้งค่า incremental_refresh_mode => ‘None' เพื่อให้ได้รับเฉพาะคำสั่งเพื่ออัปเดตหลายรายการพร้อมกัน และเรียกใช้ ai.refresh_embeddings() ด้วยตนเองเพื่ออัปเดตการฝังแถวทั้งหมด
คุณเพิ่งแทนที่คิว Kafka, Python Worker และสคริปต์การย้ายข้อมูลด้วย SQL 6 บรรทัด ดูเอกสารประกอบอย่างเป็นทางการโดยละเอียดสำหรับแอตทริบิวต์ทั้งหมด
การทดสอบทริกเกอร์แบบเรียลไทม์
มาตรวจสอบกันว่าการทำงานอัตโนมัติ "Zero Loop" ทำงานกับข้อมูลใหม่ได้หรือไม่
- แทรกแถวใหม่
INSERT INTO help_articles (title, category, product_version, content_body)
VALUES ('New Scaling Guide', 'Technical', '2.0', 'How to scale AlloyDB to millions of transactions.');
- ตรวจสอบทันที:
SELECT embedding FROM help_articles WHERE title = 'New Scaling Guide';
ผลลัพธ์:
คุณควรเห็นเวกเตอร์ที่สร้างขึ้นทันทีโดยไม่ต้องเรียกใช้สคริปต์ภายนอก
ขนาดกลุ่มการปรับแต่ง
ปัจจุบัน AlloyDB จะกำหนดขนาดกลุ่มเริ่มต้นเป็น 50 รายการตั้งแต่แกะกล่อง แม้ว่าค่าเริ่มต้นจะทำงานได้ดีตั้งแต่เริ่มต้น แต่ AlloyDB ยังคงให้ผู้ใช้ควบคุมการปรับแต่งการกำหนดค่าที่สมบูรณ์แบบสำหรับโมเดลและชุดข้อมูลที่ไม่ซ้ำกันของคุณ
CALL ai.initialize_embeddings(
model_id => 'text-embedding-005',
table_name => 'help_articles',
content_column => 'content_body',
embedding_column => 'embedding',
incremental_refresh_mode => 'transactional',
batch_size => 20
);
อย่างไรก็ตาม ผู้ใช้ต้องตระหนักถึงขีดจำกัดโควต้าที่อาจจำกัดประสิทธิภาพ หากต้องการตรวจสอบโควต้า AlloyDB ที่แนะนำ โปรดดูส่วน "ข้อควรทราบก่อนที่จะเริ่มต้น" ในเอกสารประกอบ
ข้อควรระวังและการแก้ปัญหา
ช่องว่างในการเผยแพร่ IAM | คุณเรียกใช้คำสั่ง IAM |
มิติข้อมูลเวกเตอร์ไม่ตรงกัน | ตาราง |
6. การค้นหาบริบทที่ยืดหยุ่น
ตอนนี้เราจะทำการค้นหาแบบผสม เราผสานรวมความเข้าใจเชิงความหมาย (เวกเตอร์) เข้ากับตรรกะทางธุรกิจ (ตัวกรอง SQL)
เรียกใช้การค้นหานี้เพื่อค้นหาปัญหาการเรียกเก็บเงินสำหรับ Product Version 2.0 โดยเฉพาะ
SELECT
title,
left(content_body, 100) as content_snippet,
1 - (embedding <=> embedding('text-embedding-005', 'Invoice did not go through')::vector) as relevance
FROM help_articles
WHERE category = 'Billing' -- Hard SQL Filter
AND product_version = '2.0' -- Hard SQL Filter
ORDER BY relevance DESC
LIMIT 5;
นี่คือการปรับเปลี่ยนบริบท การค้นหาจะ "ยืดหยุ่น" เพื่อทำความเข้าใจเจตนาของผู้ใช้ ("ปัญหาการเรียกเก็บเงิน") ขณะเดียวกันก็เคารพข้อจำกัดทางธุรกิจที่เข้มงวด (เวอร์ชัน 2.0)

เหตุผลที่โซลูชันนี้เหมาะสำหรับสตาร์ทอัพและการย้ายข้อมูล
- ไม่มีหนี้ทางเทคนิคด้านโครงสร้างพื้นฐาน: คุณไม่ได้สร้างฐานข้อมูลเวกเตอร์แยกต่างหาก (Pinecone/Milvus) คุณไม่ได้เขียนงาน ETL แยกต่างหาก ข้อมูลทั้งหมดอยู่ใน Postgres
- การอัปเดตแบบเรียลไทม์: การใช้โหมด "ธุรกรรม" จะทำให้ดัชนีของ Search ไม่ล้าสมัย เมื่อคอมมิตข้อมูลแล้ว ข้อมูลจะพร้อมใช้งานเวกเตอร์
- การปรับขนาด: AlloyDB สร้างขึ้นบนโครงสร้างพื้นฐานของ Google โดยสามารถจัดการการสร้างเวกเตอร์หลายล้านรายการพร้อมกันได้เร็วกว่าสคริปต์ Python ของคุณ
ข้อควรระวังและการแก้ปัญหา
Production Performance Gotcha | ปัญหา: ทำงานได้รวดเร็วสำหรับ 50,000 แถว ช้ามากสำหรับ 1 ล้านแถวหากตัวกรองหมวดหมู่ไม่เลือกมากพอวิธีแก้ไข:เพิ่มดัชนีเวกเตอร์: สำหรับขนาดการใช้งานจริง คุณต้องสร้างดัชนี:CREATE INDEX ON help_articles USING hnsw (embedding vector_cosine_ops);ยืนยันการใช้ดัชนี: เรียกใช้ |
หายนะจาก "รูปแบบที่ไม่ตรงกัน" | ปัญหา: คุณเริ่มต้นคอลัมน์โดยใช้ text-embedding-005 ในกระบวนการ CALL หากคุณใช้โมเดลอื่นโดยไม่ตั้งใจ (เช่น text-embedding-004 หรือโมเดล OSS) ในฟังก์ชันการค้นหา SELECT embedding('model-name', ...) มิติข้อมูลอาจตรงกัน (768) แต่พื้นที่เวกเตอร์จะแตกต่างกันโดยสิ้นเชิง การค้นหาจะทำงานโดยไม่มีข้อผิดพลาด แต่ผลลัพธ์จะไม่เกี่ยวข้องเลย (คะแนนความเกี่ยวข้องเป็นขยะ) การแก้ปัญหา:ตรวจสอบว่า model_id ใน ai.initialize_embeddings ตรงกับ model_id ในการค้นหา SELECT ทุกประการ |
ผลลัพธ์ "ว่างเปล่าแบบเงียบ" (การกรองมากเกินไป) | ปัญหา: การค้นหาแบบผสมเป็นการดำเนินการ "AND" ซึ่งต้องใช้ทั้งการจับคู่เชิงความหมายและการจับคู่ SQL หากผู้ใช้ค้นหา "ความช่วยเหลือเกี่ยวกับการเรียกเก็บเงิน" แต่คอลัมน์
|
4. ข้อผิดพลาดเกี่ยวกับสิทธิ์/โควต้า (ข้อผิดพลาด 500) | ปัญหา:ฟังก์ชัน
|
5. การฝัง Null | ปัญหา:หากคุณแทรกข้อมูลก่อนที่โมเดลจะเริ่มต้นอย่างสมบูรณ์หรือหากผู้ปฏิบัติงานเบื้องหลังทำงานไม่สำเร็จ บางแถวอาจมี
|
7. ล้างข้อมูล
เมื่อห้องทดลองนี้เสร็จสิ้นแล้ว อย่าลืมลบคลัสเตอร์และอินสแตนซ์ AlloyDB
ซึ่งควรล้างคลัสเตอร์พร้อมกับอินสแตนซ์
8. ขอแสดงความยินดี
คุณสร้างแอปพลิเคชันการค้นหาฐานความรู้ที่รองรับการปรับขนาดได้เรียบร้อยแล้ว แทนที่จะจัดการไปป์ไลน์ ETL ที่ซับซ้อนด้วยสคริปต์ Python และลูปเพื่อสร้างการฝังเวกเตอร์ คุณใช้ AlloyDB AI เพื่อจัดการการสร้างการฝังในฐานข้อมูลโดยตรงโดยใช้คำสั่ง SQL เพียงคำสั่งเดียว
สรุปประเด็นที่ได้พูดถึง
- เราได้ยกเลิก "Python For-Loop" สำหรับการประมวลผลข้อมูล
- เราสร้างเวกเตอร์ 50,000 รายการด้วยคำสั่ง SQL เพียงคำสั่งเดียว
- เราทำให้การสร้างเวกเตอร์ในอนาคตเป็นแบบอัตโนมัติด้วยทริกเกอร์
- เราทำการค้นหาแบบผสมผสาน
ขั้นตอนถัดไป
- ลองทำตามขั้นตอนนี้กับชุดข้อมูลของคุณเอง
- สำรวจเอกสารประกอบของ AlloyDB AI
- ดูเวิร์กช็อปเพิ่มเติมได้ที่เว็บไซต์ Code Vipassana