1. ภาพรวม
MCP Toolbox สำหรับฐานข้อมูลคือเซิร์ฟเวอร์โอเพนซอร์สจาก Google ที่ช่วยให้สร้างเครื่องมือ Gen AI สำหรับการโต้ตอบกับฐานข้อมูลได้ง่ายขึ้น ซึ่งช่วยให้คุณพัฒนาเครื่องมือได้ง่ายขึ้น เร็วขึ้น และปลอดภัยยิ่งขึ้นด้วยการจัดการความซับซ้อนต่างๆ เช่น การจัดกลุ่มการเชื่อมต่อ การตรวจสอบสิทธิ์ และอื่นๆ ซึ่งจะช่วยคุณสร้างเครื่องมือ Gen AI ที่ช่วยให้ตัวแทนเข้าถึงข้อมูลในฐานข้อมูลได้ กล่องเครื่องมือมีฟีเจอร์ต่อไปนี้
การพัฒนาที่ง่ายขึ้น: ผสานรวมเครื่องมือกับ Agent ด้วยโค้ดไม่ถึง 10 บรรทัด นำเครื่องมือมาใช้ซ้ำระหว่าง Agent หรือเฟรมเวิร์กหลายรายการ และติดตั้งใช้งานเครื่องมือเวอร์ชันใหม่ได้ง่ายขึ้น
ประสิทธิภาพที่ดียิ่งขึ้น: แนวทางปฏิบัติแนะนำ เช่น การรวมการเชื่อมต่อ การตรวจสอบสิทธิ์ และอื่นๆ
การรักษาความปลอดภัยที่ดียิ่งขึ้น: การตรวจสอบสิทธิ์แบบผสานรวมเพื่อให้เข้าถึงข้อมูลได้อย่างปลอดภัยยิ่งขึ้น
ความสามารถในการสังเกตแบบครบวงจร: เมตริกและการติดตามที่พร้อมใช้งานพร้อมการรองรับ OpenTelemetry ในตัว
Toolbox อยู่ระหว่างเฟรมเวิร์กการจัดระเบียบของแอปพลิเคชันกับฐานข้อมูล โดยมี Control Plane ที่ใช้ในการแก้ไข แจกจ่าย หรือเรียกใช้เครื่องมือ ซึ่งจะช่วยให้การจัดการเครื่องมือของคุณง่ายขึ้นด้วยการจัดหาตำแหน่งส่วนกลางสำหรับจัดเก็บและอัปเดตเครื่องมือ ทำให้คุณแชร์เครื่องมือระหว่างตัวแทนและแอปพลิเคชัน รวมถึงอัปเดตเครื่องมือเหล่านั้นได้โดยไม่ต้องติดตั้งแอปพลิเคชันใหม่
สิ่งที่คุณจะสร้าง
ในส่วนหนึ่งของฟังก์ชันทดลองนี้ คุณจะได้สร้างแอปพลิเคชันที่ใช้เครื่องมือเพื่อทำการค้นหาฐานข้อมูล (AlloyDB) อย่างง่ายที่เรียกใช้ได้จากเอเจนต์หรือแอปพลิเคชัน Generative AI โดยคุณจะต้อง
- ติดตั้ง MCP Toolbox สำหรับฐานข้อมูล
- ตั้งค่าเครื่องมือ (ที่ออกแบบมาเพื่อทำงานใน AlloyDB) บนเซิร์ฟเวอร์กล่องเครื่องมือ
- ติดตั้งใช้งาน MCP Toolbox สำหรับฐานข้อมูลใน Cloud Run
- ทดสอบเครื่องมือด้วยปลายทาง Cloud Run ที่ติดตั้งใช้งาน
- สร้างฟังก์ชัน Cloud Run เพื่อเรียกใช้กล่องเครื่องมือ
ข้อกำหนด
2. ก่อนเริ่มต้น
สร้างโปรเจ็กต์
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ 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 ที่จำเป็นโดยการเรียกใช้คำสั่งต่อไปนี้ทีละรายการในเทอร์มินัล Cloud Shell
นอกจากนี้ ยังมีคำสั่งเดียวที่ใช้เรียกใช้คำสั่งด้านล่างได้ แต่หากคุณเป็นผู้ใช้บัญชีช่วงทดลองใช้ คุณอาจพบปัญหาเกี่ยวกับโควต้าเมื่อพยายามเปิดใช้ฟีเจอร์เหล่านี้พร้อมกันหลายรายการ ด้วยเหตุนี้จึงต้องระบุคำสั่งทีละรายการในแต่ละบรรทัด
gcloud services enable alloydb.googleapis.com
gcloud services enable compute.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable servicenetworking.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable cloudfunctions.googleapis.com
gcloud services enable aiplatform.googleapis.com
อีกวิธีหนึ่งในการใช้คำสั่ง gcloud คือผ่านคอนโซลโดยค้นหาแต่ละผลิตภัณฑ์หรือใช้ลิงก์นี้
หากพลาด API ใดไป คุณก็เปิดใช้ได้เสมอในระหว่างการติดตั้งใช้งาน
โปรดดูคำสั่งและการใช้งาน gcloud ในเอกสารประกอบ
3. การตั้งค่าฐานข้อมูล
ในแล็บนี้ เราจะใช้ AlloyDB เป็นฐานข้อมูลเพื่อจัดเก็บข้อมูลการค้าปลีก โดยจะใช้คลัสเตอร์เพื่อจัดเก็บทรัพยากรทั้งหมด เช่น ฐานข้อมูลและบันทึก แต่ละคลัสเตอร์มีอินสแตนซ์หลักที่ให้จุดเข้าใช้งานข้อมูล ตารางจะเก็บข้อมูลจริง
มาสร้างคลัสเตอร์ อินสแตนซ์ และตาราง AlloyDB ที่จะโหลดชุดข้อมูลอีคอมเมิร์ซกัน
สร้างคลัสเตอร์และอินสแตนซ์
- ไปที่หน้า AlloyDB ใน Cloud Console
วิธีง่ายๆ ในการค้นหาหน้าส่วนใหญ่ใน Cloud Console คือการค้นหาโดยใช้แถบค้นหาของคอนโซล
- เลือกสร้างคลัสเตอร์จากหน้านั้น

- คุณจะเห็นหน้าจอคล้ายกับหน้าจอด้านล่าง สร้างคลัสเตอร์และอินสแตนซ์ด้วยค่าต่อไปนี้ (ตรวจสอบว่าค่าตรงกันในกรณีที่คุณโคลนโค้ดของแอปพลิเคชันจากที่เก็บ)
- รหัสคลัสเตอร์: "
vector-cluster" - รหัสผ่าน: "
alloydb" - รองรับ PostgreSQL 15
- ภูมิภาค: "
us-central1" - การสร้างเครือข่าย: "
default"

- เมื่อเลือกเครือข่ายเริ่มต้น คุณจะเห็นหน้าจอคล้ายกับหน้าจอด้านล่าง เลือกตั้งค่าการเชื่อมต่อ

- จากนั้นเลือก "ใช้ช่วง IP ที่มีการจัดสรรโดยอัตโนมัติ" แล้วคลิก "ต่อไป" หลังจากตรวจสอบข้อมูลแล้ว ให้เลือกสร้างการเชื่อมต่อ

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

อย่าลืมเปลี่ยนรหัสอินสแตนซ์เป็น "
vector-instance"
โปรดทราบว่าการสร้างคลัสเตอร์จะใช้เวลาประมาณ 10 นาที เมื่อดำเนินการสำเร็จแล้ว คุณควรเห็นหน้าจอที่แสดงภาพรวมของคลัสเตอร์ที่เพิ่งสร้าง
4. การนำเข้าข้อมูล
ตอนนี้ได้เวลาเพิ่มตารางที่มีข้อมูลเกี่ยวกับร้านค้าแล้ว ไปที่ AlloyDB เลือกคลัสเตอร์หลัก แล้วเลือก AlloyDB Studio โดยทำดังนี้

คุณอาจต้องรอให้อินสแตนซ์สร้างเสร็จ เมื่อเสร็จแล้ว ให้ลงชื่อเข้าใช้ 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;
หากต้องการตรวจสอบส่วนขยายที่เปิดใช้ในฐานข้อมูล ให้เรียกใช้คำสั่ง SQL นี้
select extname, extversion from pg_extension;
สร้างตาราง
สร้างตารางโดยใช้คำสั่ง DDL ด้านล่าง
CREATE TABLE toys ( id VARCHAR(25), name VARCHAR(25), description VARCHAR(20000), quantity INT, price FLOAT, image_url VARCHAR(200), text_embeddings vector(768)) ;
เมื่อดำเนินการคำสั่งข้างต้นสำเร็จ คุณควรจะดูตารางในฐานข้อมูลได้
นำเข้าข้อมูล
สำหรับแล็บนี้ เรามีข้อมูลทดสอบประมาณ 72 รายการในไฟล์ SQL นี้ โดยไฟล์ดังกล่าวจะมีช่อง id, name, description, quantity, price, image_url ส่วนช่องอื่นๆ จะกรอกในภายหลังในห้องทดลอง
คัดลอกบรรทัด/แทรกคำสั่งจากที่นั่น จากนั้นวางบรรทัดเหล่านั้นในแท็บเครื่องมือแก้ไขที่ว่างเปล่า แล้วเลือกเรียกใช้
หากต้องการดูเนื้อหาของตาราง ให้ขยายส่วน Explorer จนกว่าจะเห็นตารางชื่อ apparels เลือกปุ่มสามจุด (⋮) เพื่อดูตัวเลือกในการค้นหาตาราง คำสั่ง SELECT จะเปิดขึ้นในแท็บเครื่องมือแก้ไขใหม่

ให้สิทธิ์
เรียกใช้คำสั่งด้านล่างเพื่อมอบสิทธิ์ในการเรียกใช้ฟังก์ชัน embedding ให้กับผู้ใช้ postgres
GRANT EXECUTE ON FUNCTION embedding TO postgres;
มอบบทบาทผู้ใช้ Vertex AI ให้กับบัญชีบริการ AlloyDB
ไปที่เทอร์มินัล 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. สร้างการฝังสำหรับบริบท
คอมพิวเตอร์จะประมวลผลตัวเลขได้ง่ายกว่าประมวลผลข้อความมาก ระบบการฝังจะแปลงข้อความเป็นชุดตัวเลขทศนิยมที่เรียกว่าการฝังเวกเตอร์ ซึ่งควรแสดงข้อความ ไม่ว่าข้อความนั้นจะใช้คำใด ภาษาใด ฯลฯ
เช่น สถานที่ริมทะเลอาจเรียกว่า "ริมน้ำ" "ติดชายหาด" "เดินจากห้องพักไปทะเล" "sur la mer" "на берегу океана" เป็นต้น คำเหล่านี้ดูแตกต่างกัน แต่ความหมายเชิงความหมายหรือในคำศัพท์ของแมชชีนเลิร์นนิง การฝังคำควรจะใกล้เคียงกันมาก
เมื่อข้อมูลและบริบทพร้อมแล้ว เราจะเรียกใช้ SQL เพื่อเพิ่มการฝังของคำอธิบายผลิตภัณฑ์ลงในตารางในช่อง embedding คุณใช้โมเดลการฝังได้หลากหลาย เราใช้ text-embedding-005 จาก Vertex AI โปรดใช้โมเดลการฝังเดียวกันตลอดทั้งโปรเจ็กต์
หมายเหตุ: หากคุณใช้โปรเจ็กต์ Google Cloud แบบเก่า คุณอาจต้องใช้โมเดลการฝังข้อความเวอร์ชันเก่าต่อไป เช่น textembedding-gecko
กลับไปที่แท็บ AlloyDB Studio แล้วพิมพ์ DML ต่อไปนี้
UPDATE toys set text_embeddings = embedding( 'text-embedding-005', description);
ดูtoysตารางอีกครั้งเพื่อดูการฝังบางส่วน อย่าลืมเรียกใช้คำสั่ง SELECT อีกครั้งเพื่อดูการเปลี่ยนแปลง
SELECT id, name, description, price, quantity, image_url, text_embeddings FROM toys;
ซึ่งควรแสดงเวกเตอร์การฝังที่มีลักษณะเป็นอาร์เรย์ของจำนวนทศนิยมสำหรับคำอธิบายของเล่นดังที่แสดงด้านล่าง

หมายเหตุ: โปรเจ็กต์ Google Cloud ที่สร้างใหม่ภายใต้รุ่นฟรีอาจประสบปัญหาโควต้าเมื่อพูดถึงจำนวนคำขอ Embedding ที่อนุญาตต่อวินาทีไปยังโมเดล Embedding เราขอแนะนำให้คุณใช้การค้นหาตัวกรองสำหรับรหัส จากนั้นเลือก 1-5 ระเบียนและอื่นๆ ในขณะที่สร้างการฝัง
6. ทำการค้นหาเวกเตอร์
ตอนนี้ตาราง ข้อมูล และการฝังพร้อมใช้งานแล้ว เรามาทำการค้นหาเวกเตอร์แบบเรียลไทม์สำหรับข้อความค้นหาของผู้ใช้กัน
สมมติว่าผู้ใช้ถามว่า
"I want a white plush teddy bear toy with a floral pattern"
คุณดูการจับคู่สำหรับรายการนี้ได้โดยเรียกใช้การค้นหาด้านล่าง
select * from toys
ORDER BY text_embeddings <=> CAST(embedding('text-embedding-005', 'I want a white plush teddy bear toy with a floral pattern') as vector(768))
LIMIT 5;
มาดูรายละเอียดของคำค้นหานี้กัน
ในคำค้นหานี้
- ข้อความค้นหาของผู้ใช้คือ "
I want a white plush teddy bear toy with a floral pattern." - เราจะแปลงเป็น Embedding ใน
embedding()โดยใช้โมเดลtext-embedding-005ขั้นตอนนี้ควรจะคุ้นเคยหลังจากขั้นตอนสุดท้าย ซึ่งเราได้ใช้ฟังก์ชันการฝังกับรายการทั้งหมดในตาราง - "
<=>" แสดงถึงการใช้วิธีการวัดระยะทางความคล้ายคลึงของโคไซน์ คุณดูการวัดความคล้ายกันทั้งหมดที่มีได้ในเอกสารประกอบของ pgvector - เราจะแปลงผลลัพธ์ของวิธีการฝังเป็นประเภทเวกเตอร์เพื่อให้เข้ากันได้กับเวกเตอร์ที่จัดเก็บไว้ในฐานข้อมูล
- LIMIT 5 หมายความว่าเราต้องการดึงเพื่อนบ้านที่ใกล้ที่สุด 5 รายการสำหรับข้อความค้นหา
ผลลัพธ์จะมีลักษณะดังนี้

ดังที่คุณเห็นในผลการค้นหา ข้อความที่ตรงกันจะค่อนข้างใกล้เคียงกับข้อความค้นหา ลองเปลี่ยนข้อความเพื่อดูว่าผลลัพธ์เปลี่ยนแปลงไปอย่างไร
7. การเตรียม AlloyDB สำหรับการโต้ตอบกับกล่องเครื่องมือ
ในการเตรียมพร้อมสำหรับการตั้งค่ากล่องเครื่องมือ ให้เปิดใช้การเชื่อมต่อ IP สาธารณะในอินสแตนซ์ AlloyDB เพื่อให้เครื่องมือใหม่เข้าถึงฐานข้อมูลได้
- ไปที่อินสแตนซ์ AlloyDB แล้วคลิกแก้ไขเพื่อไปยังหน้าแก้ไขอินสแตนซ์หลัก
- ไปที่ส่วนการเชื่อมต่อ IP สาธารณะ เลือกช่องทำเครื่องหมายเปิดใช้ IP สาธารณะ แล้วป้อนที่อยู่ IP ของเครื่อง Cloud Shell
- หากต้องการดู IP ของเครื่อง Cloud Shell ให้ไปที่เทอร์มินัล Cloud Shell แล้วป้อน ifconfig จากผลลัพธ์ ให้ระบุที่อยู่ inet ของ eth0 แล้วแทนที่ 2 หลักสุดท้ายด้วย 0.0 โดยมีขนาดมาสก์เป็น '/16' เช่น "XX.XX.0.0/16" โดยที่ XX เป็นตัวเลข
- วาง IP นี้ในกล่องข้อความ "เครือข่าย" ของเครือข่ายภายนอกที่ได้รับอนุญาตในหน้าแก้ไขอินสแตนซ์

- คลิกอัปเดตอินสแตนซ์เมื่อเสร็จแล้ว
ซึ่งอาจใช้เวลาดำเนินการสักครู่
8. การติดตั้ง MCP Toolbox สำหรับฐานข้อมูล
- คุณสามารถสร้างโฟลเดอร์โปรเจ็กต์เพื่อจัดเก็บรายละเอียดเครื่องมือได้ ในกรณีนี้ เนื่องจากเรากำลังทำงานกับข้อมูลร้านขายของเล่น ให้สร้างโฟลเดอร์ชื่อ "toystore" แล้วไปที่โฟลเดอร์นั้น ไปที่เทอร์มินัล Cloud Shell และตรวจสอบว่าได้เลือกโปรเจ็กต์และแสดงในพรอมต์ของเทอร์มินัลแล้ว เรียกใช้คำสั่งด้านล่างจากเทอร์มินัล Cloud Shell
mkdir toystore
cd toystore
- เรียกใช้คำสั่งด้านล่างเพื่อดาวน์โหลดและติดตั้งกล่องเครื่องมือในโฟลเดอร์ใหม่
# see releases page for other versions
export VERSION=0.1.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
- สลับไปที่ Cloud Shell Editor ขยายโฟลเดอร์ "toystore" ที่สร้างขึ้นใหม่ แล้วสร้างไฟล์ใหม่ชื่อ tools.yaml คัดลอกเนื้อหาด้านล่าง แทนที่ YOUR_PROJECT_ID และตรวจสอบว่ารายละเอียดการเชื่อมต่ออื่นๆ ทั้งหมดถูกต้อง
sources:
alloydb-toys:
kind: "alloydb-postgres"
project: "YOUR_PROJECT_ID"
region: "us-central1"
cluster: "vector-cluster"
instance: "vector-instance"
database: "postgres"
user: "postgres"
password: "alloydb"
tools:
get-toy-price:
kind: postgres-sql
source: alloydb-toys
description: Get the price of a toy based on a description.
parameters:
- name: description
type: string
description: A description of the toy to search for.
statement: |
SELECT price FROM toys
ORDER BY text_embeddings <=> CAST(embedding('text-embedding-005', $1) AS vector(768))
LIMIT 1;
ในเครื่องมือนี้ เราเพียงแค่ค้นหารายการที่ตรงกับข้อความค้นหาของผู้ใช้มากที่สุด (คำอธิบายของเล่นที่กำหนดเอง) และแสดงราคาของรายการนั้น นอกจากนี้ คุณยังแก้ไขเพื่อค้นหาราคาเฉลี่ยของของเล่น 5 อันดับแรกที่ตรงกันมากที่สุดได้ด้วย โดยทำดังนี้
select avg(price) from ( SELECT price FROM toys ORDER BY text_embeddings <=> CAST(embedding(‘text-embedding-005', $1) AS vector(768)) LIMIT 5 ) as price;
คุณพร้อมใช้งานคำจำกัดความเครื่องมือแล้ว
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่า tools.yaml ได้ในเอกสารประกอบนี้
- สลับไปที่เทอร์มินัล Cloud Shell แล้วป้อนคำสั่งต่อไปนี้เพื่อเริ่มเซิร์ฟเวอร์กล่องเครื่องมือด้วยการกำหนดค่าเครื่องมือ
./toolbox --tools_file "tools.yaml"
- ตอนนี้หากคุณเปิดเซิร์ฟเวอร์ในโหมดแสดงตัวอย่างเว็บในระบบคลาวด์ คุณควรจะเห็นเซิร์ฟเวอร์ Toolbox ทำงานอยู่พร้อมเครื่องมือใหม่ชื่อ
get-toy-price.
9. การติดตั้งใช้งาน MCP Toolbox สำหรับฐานข้อมูลใน Cloud Run
มาทำให้ใช้งานได้ใน Cloud Run เพื่อให้คุณนำเครื่องมือนี้ไปใช้จริงได้
- ทำตามวิธีการในหน้านี้ทีละขั้นตอนจนกว่าจะถึงคำสั่ง
gcloud run deploy toolboxที่อยู่ในจุดที่ 3 ในส่วน "ทำให้ใช้งานได้ใน Cloud Run" คุณต้องใช้ตัวเลือกแรก ไม่ใช่ตัวเลือกที่ 2 ซึ่งใช้เมื่อคุณใช้วิธีเครือข่าย VPC - เมื่อทำให้ใช้งานได้สำเร็จแล้ว คุณจะได้รับปลายทางที่ทำให้ใช้งานได้ Cloud Run ของเซิร์ฟเวอร์กล่องเครื่องมือ ทดสอบด้วยคำสั่ง CURL
เคล็ดลับ
โปรดทำตามวิธีการในหน้าเว็บอย่างละเอียดและอย่าพลาด
คุณพร้อมแล้วที่จะใช้เครื่องมือที่เพิ่งทำให้ใช้งานได้ในแอปพลิเคชันที่เป็น Agent ของคุณ!!!
10. เชื่อมต่อแอปกับ MCP Toolbox สำหรับฐานข้อมูล
ในส่วนนี้ เราจะสร้างแอปพลิเคชันขนาดเล็กเพื่อทดสอบเครื่องมือของคุณในการโต้ตอบกับความต้องการของแอปพลิเคชันและดึงข้อมูลการตอบกลับ
- ไปที่ Google Colab แล้วเปิด Notebook ใหม่
- เรียกใช้คำสั่งต่อไปนี้ในสมุดบันทึก
!pip install toolbox-core
from toolbox_core import ToolboxClient
# Replace with your Toolbox service's URL
toolbox = ToolboxClient("https://toolbox-*****-uc.a.run.app")
# This tool can be passed to your application!
tool = toolbox.load_tool("get-toy-price")
# If there are multiple tools
# These tools can be passed to your application!
# tools = await client.load_toolset("<<toolset_name>>")
# Invoke the tool with a search text to pass as the parameter
result = tool.invoke({"description": "white plush toy"})
# Print result
print(result)
- คุณควรได้รับผลลัพธ์ดังนี้

นี่คือเครื่องมือที่เรียกใช้อย่างชัดเจนในแอปพลิเคชัน Python ที่ใช้ชุดเครื่องมือ toolbox-langchain.
- หากต้องการใช้เครื่องมือนี้และเชื่อมโยงกับเอเจนต์ภายในแอปพลิเคชันที่ผสานรวม LangGraph คุณสามารถทำได้อย่างง่ายดายด้วยชุดเครื่องมือ
langgraph - โปรดดูข้อมูลโค้ดสำหรับกรณีนี้
11. ย้ายไปที่ระบบคลาวด์กันเลย
มาห่อหุ้มข้อมูลโค้ด Python นี้ในฟังก์ชัน Cloud Run เพื่อให้เป็นแบบไร้เซิร์ฟเวอร์กัน
- คัดลอกแหล่งที่มาจากโฟลเดอร์ที่เก็บโค้ดเพื่อนำไปใช้กับ Cloud Functions
- ไปที่คอนโซล Cloud Run Functions แล้วคลิกสร้างฟังก์ชัน
- ปล่อยให้ไม่มีการตรวจสอบสิทธิ์สำหรับแอปพลิเคชันเดโม และเลือกเวลาเรียกใช้ Python 3.11 ในหน้าถัดไป
- คัดลอกไฟล์
main.pyและrequirements.txtจากที่เก็บต้นทางที่แชร์ในขั้นตอนที่ 1 แล้ววางในไฟล์ที่เกี่ยวข้อง - แทนที่ URL ของเซิร์ฟเวอร์ใน main.py ด้วย URL ของเซิร์ฟเวอร์
- ทำให้ฟังก์ชันใช้งานได้ แล้วคุณจะมีปลายทาง REST สำหรับเครื่องมือคาดการณ์ราคาที่เข้าถึงได้ในเว็บแอปพลิเคชันร้านขายของเล่น
- อุปกรณ์ปลายทางของคุณควรมีลักษณะดังนี้
https://us-central1-*****.cloudfunctions.net/toolbox-toys
- คุณทดสอบได้โดยตรงในคอนโซล Cloud Functions โดยไปที่แท็บการทดสอบ แล้วป้อนข้อมูลต่อไปนี้เป็นอินพุตคำขอ
{
"search": "White plush toy"
}
- คลิก TEST THE FUNCTION หรือเรียกใช้ในเทอร์มินัล Cloud Shell แล้วแต่คุณจะเลือกใช้ คุณควรเห็นผลลัพธ์ทางด้านขวาใต้ชื่อ "เอาต์พุต" ดังนี้

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