1. บทนำ
ใน Codelab นี้ คุณจะได้เพิ่มวิดเจ็ตแชทสำหรับฝ่ายสนับสนุนลูกค้าอัจฉริยะลงในร้านค้าอีคอมเมิร์ซอุปกรณ์กลางแจ้งที่ชื่อว่า Rugged Terrain Guide คุณจะใช้ Firebase AI Logic เพื่อสร้างเอเจนต์นี้ และจะได้เรียนรู้วิธีกำหนดค่าเทมเพลตข้อความแจ้งฝั่งเซิร์ฟเวอร์ (product-agent) ที่จัดการลักษณะตัวตนของ AI, กฎงบประมาณการประนีประนอมที่เข้มงวด และใช้แคตตาล็อกสินค้าเป็นบริบทแบบไดนามิก
สิ่งที่คุณต้องดำเนินการมีดังต่อไปนี้
- รับโค้ดเริ่มต้นสำหรับเว็บแอปของ Codelab นี้
- ตั้งค่าโปรเจ็กต์ Firebase
- ตั้งค่าและเริ่มต้นบริการ Firebase (เช่น Firebase AI Logic) ในเว็บแอป
- กำหนดค่าเทมเพลตข้อความแจ้งฝั่งเซิร์ฟเวอร์ในคอนโซล Firebase
- เข้าถึงเทมเพลตจากการเรียกใช้บริการ Generative AI จากส่วนหน้าของ TypeScript ที่คล้ายกับ React
สิ่งที่คุณต้องมี ได้แก่
- เว็บเบราว์เซอร์ เช่น Chrome
- ความคุ้นเคยกับ TypeScript และ Node.js ในระดับพื้นฐาน
- IDE หรือโปรแกรมแก้ไขข้อความที่คุณเลือก Antigravity เป็นตัวเลือกที่ดี
2. รับโค้ดเริ่มต้น
- ในเทอร์มินัล ให้โคลนที่เก็บเริ่มต้น
git clone https://github.com/GoogleCloudPlatform/devrel-demos.git - ไปที่ไดเรกทอรีโค้ดและติดตั้งทรัพยากร Dependency โดยใช้คำสั่งต่อไปนี้
cd devrel-demos/codelabs/firebase-server-prompt-templates-codelab npm install
3. ตั้งค่าโปรเจ็กต์ Firebase
สร้างโปรเจ็กต์ Firebase
- ลงชื่อเข้าใช้คอนโซล Firebaseด้วยบัญชี Google
- คลิกปุ่มเพื่อสร้างโปรเจ็กต์ใหม่ แล้วป้อนชื่อโปรเจ็กต์ (เช่น
rugged-terrain-ai)
- คลิกต่อไป
- หากได้รับแจ้ง ให้อ่านและยอมรับข้อกำหนดของ Firebase แล้วคลิกต่อไป
- (ไม่บังคับ) เปิดใช้ความช่วยเหลือจาก AI ในคอนโซล Firebase (เรียกว่า "Gemini ใน Firebase")
- สำหรับ Codelab นี้ คุณไม่จำเป็นต้อง ใช้ Google Analytics จึงให้ปิด ตัวเลือก Google Analytics
- คลิกสร้างโปรเจ็กต์ รอให้ระบบจัดสรรโปรเจ็กต์ แล้วคลิกต่อไป
อัปเกรดแพ็กเกจราคาของ Firebase
หากต้องการใช้บริการ Firebase ใน Codelab นี้ โปรเจ็กต์ Firebase ของคุณต้องอยู่ในแพ็กเกจราคาแบบจ่ายตามการใช้งาน (Blaze) ซึ่งหมายความว่าโปรเจ็กต์ต้องลิงก์กับบัญชีสำหรับการเรียกเก็บเงินใน Cloud
- บัญชีสำหรับการเรียกเก็บเงินใน Cloud ต้องมีวิธีการชำระเงิน เช่น บัตรเครดิต
- หากคุณเพิ่งเริ่มใช้ Firebase และ Google Cloud ให้ตรวจสอบว่าคุณมีสิทธิ์รับเครดิต$300 และบัญชีสำหรับการเรียกเก็บเงินใน Cloud รุ่นทดลองใช้ฟรีหรือไม่
- หากคุณทำ Codelab นี้เป็นส่วนหนึ่งของกิจกรรม ให้สอบถามผู้จัดงานว่ามีเครดิต Cloud ให้หรือไม่
หากต้องการอัปเกรดโปรเจ็กต์เป็นแพ็กเกจ Blaze ให้ทำตามขั้นตอนต่อไปนี้
- ในคอนโซล Firebase ให้เลือกเพื่อ อัปเกรดแพ็กเกจ
- เลือกแพ็กเกจ Blaze ทำตามวิธีการบนหน้าจอเพื่อลิงก์บัญชีสำหรับการเรียกเก็บเงินใน Cloud กับโปรเจ็กต์
หากคุณต้องสร้างบัญชีสำหรับการเรียกเก็บเงินใน Cloud เป็นส่วนหนึ่งของการอัปเกรดนี้ คุณอาจต้องกลับไปที่ขั้นตอนการอัปเกรดในคอนโซล Firebase เพื่อทำการอัปเกรดให้เสร็จสมบูรณ์
4. ตั้งค่าบริการ Firebase และเชื่อมต่อแอป
สำหรับ Codelab นี้ คุณต้องตั้งค่า Cloud Storage for Firebase และ Firebase AI Logic ในโปรเจ็กต์ Firebase นอกจากนี้ คุณยังต้องเชื่อมต่อซอร์สโค้ดของแอปกับโปรเจ็กต์ Firebase ด้วย
ตั้งค่า Cloud Storage for Firebase
Codelab นี้ใช้ Cloud Storage for Firebase เพื่อจัดเก็บรายละเอียดผลิตภัณฑ์
- ในคอนโซล Firebase ให้ไปที่ฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล
- คลิกเริ่มต้นใช้งาน
- เลือกตำแหน่งสำหรับที่เก็บข้อมูลเริ่มต้น
ที่เก็บข้อมูลในUS-WEST1,US-CENTRAL1และUS-EAST1สามารถใช้ประโยชน์จากระดับ "ใช้งานฟรีตลอดไป" สำหรับ Google Cloud Storage ได้ ที่เก็บข้อมูลในตำแหน่งอื่นๆ ทั้งหมดจะเป็นไปตาม ราคาและการใช้งาน Google Cloud Storage - คลิกโหมดการใช้งานจริง ในขั้นตอนด้านล่าง คุณจะอัปเดตกฎความปลอดภัยเหล่านี้ให้เฉพาะเจาะจงสำหรับ Codelab นี้
- คลิกสร้าง
- อัปเดตกฎความปลอดภัยโดยทำดังนี้
- หลังจากจัดสรรที่เก็บข้อมูลแล้ว ให้ไปที่แท็บกฎ
- คัดลอกกฎต่อไปนี้แล้ววาง
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /products.txt { allow read; } } } - คลิกเผยแพร่
- อัปโหลดรายละเอียดผลิตภัณฑ์จากโค้ดเริ่มต้นโดยทำดังนี้
- คลิกแท็บไฟล์ สำหรับที่เก็บข้อมูล
- คลิกอัปโหลดไฟล์ แล้วอัปโหลดไฟล์
products.txtจากโค้ดเริ่มต้น คุณจะพบไฟล์นี้ได้ที่src/data/products.txt
กำหนดค่า Firebase AI Logic
Firebase AI Logic เป็นบริการหลักของ Firebase ที่คุณจะได้ใช้ใน Codelab นี้
- ในคอนโซล Firebase ให้ไปที่ บริการ AI > AI Logic
- คลิกเริ่มต้นใช้งาน
- ในการ์ด Vertex AI Gemini API ให้คลิกเริ่มต้นใช้งาน API นี้ แล้วทำตามวิธีการบนหน้าจอ ขั้นตอนการทำงานนี้จะเปิดใช้ API ที่จำเป็นเพื่อให้คุณใช้ Firebase AI Logic กับ Vertex AI Gemini API ได้
- (ไม่บังคับ) เลือกเปิดใช้การตรวจสอบ AI เพื่อให้คุณสังเกตเมตริกและการใช้งานระดับแอปต่างๆ เพื่อให้เห็นภาพรวมที่ครอบคลุมเกี่ยวกับคำขอผ่าน Firebase AI Logic
เชื่อมต่อโค้ดกับโปรเจ็กต์ Firebase
เมื่อตั้งค่า Firebase AI Logic ระบบจะแจ้งให้คุณสร้าง Firebase Web App และเพิ่มการกำหนดค่าลงในซอร์สโค้ด
- เมื่อได้รับแจ้งในขั้นตอนการตั้งค่า Firebase AI Logic ให้คลิกไอคอนเว็บ (
) เพื่อลงทะเบียนเว็บแอปใหม่ - ตั้งชื่อแอป (เช่น
Rugged Web) - คัดลอกออบเจ็กต์
firebaseConfigจากวิธีการตั้งค่า
จากนั้นให้อัปเดตโค้ดเริ่มต้นโดยทำดังนี้
- เปิด
src/firebase.tsในตัวแก้ไขโค้ด - แทนที่
firebaseConfigที่มีอยู่ด้วยfirebaseConfigที่คุณคัดลอกจากคอนโซล Firebase
ไฟล์ควรมีลักษณะดังนี้
import { getAI, getTemplateGenerativeModel, VertexAIBackend } from "firebase/ai";
import { initializeApp } from "firebase/app";
// Your web app's Firebase configuration
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.firebasestorage.app",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};
// Initialize Firebase
export const app = initializeApp(firebaseConfig);
const ai = getAI(app, { backend: new VertexAIBackend() });
5. สร้างเทมเพลตข้อความแจ้งฝั่งเซิร์ฟเวอร์
แทนที่จะฮาร์ดโค้ดข้อความแจ้ง AI ที่ซับซ้อนในแอปไคลเอ็นต์ คุณจะใช้ไวยากรณ์ Dotprompt เพื่อจัดการวิธีการอย่างปลอดภัยในเซิร์ฟเวอร์
ซึ่งจะป้องกันไม่ให้ผู้ใช้ปลายทางเห็นกฎลับ "งบประมาณการประนีประนอม"
- ในคอนโซล Firebase ให้ไปที่ส่วน Vertex AI หรือ การจัดการข้อความแจ้ง
- สร้างเทมเพลตข้อความแจ้งใหม่และตั้งชื่อว่า
product-agent - ตั้งค่าโมเดลเป็น
gemini-2.5-flash - กำหนดสคีมาอินพุตดังนี้
input: schema: query: type: string description: the customers ask of the robot productId?: type: string description: the product the customer is looking at right now history?: type: array description: list of previous history between the user and system items: type: object required: [role, contents] properties: role: type: string contents: type: string - คัดลอกเนื้อหาของ
agent-product.promptจากไดเรกทอรีรากลงในช่องข้อความแจ้งและวิธีการของระบบ (ไม่บังคับ) ซึ่งจะบอกให้โมเดลทำงานเป็น "ผู้ให้บริการ Rugged" และแทรกแคตตาล็อกสินค้าอย่างปลอดภัย - ในคอนโซล Firebase ให้บันทึกและเผยแพร่เทมเพลต
product-agent
6. เรียกใช้โมเดล AI
เมื่อกำหนดเทมเพลตอย่างปลอดภัยในเซิร์ฟเวอร์แล้ว คุณเพียงแค่ต้องเรียกใช้เทมเพลตจากส่วนหน้าของแอป
- กลับไปที่
src/firebase.tsในตัวแก้ไขโค้ด - ใช้
getTemplateGenerativeModelเพื่อเชื่อมต่อกับเทมเพลตด้านล่างการเริ่มต้นconst model = getTemplateGenerativeModel(ai); export const callCustomerSupportModel = async (query: string, productId?: string, history?: { role: string, contents: string }[]) => { // Generate content using the published 'product-agent' template const result = await model.generateContent('product-agent', { query, productId, history, }); return result.response.text(); }
7. รักษาความปลอดภัยให้เอเจนต์ด้วย Firebase App Check
โมเดล AI มีประสิทธิภาพ แต่ก็อาจถูกนำไปใช้ในทางที่ผิดได้หากไม่มีการป้องกันปลายทางสาธารณะ คุณควรใช้ Firebase App Check เสมอเพื่อให้แน่ใจว่าเฉพาะเว็บแอปจริงของคุณเท่านั้นที่จะเรียกใช้โมเดล Generative AI ของ Vertex AI ได้ โดยจะบล็อกบ็อตและไคลเอ็นต์ที่ไม่ได้รับอนุญาต
- ในคอนโซล Firebase ให้ไปที่สร้าง > App Check
- คลิกแท็บแอป ขยายเว็บแอป (
Rugged Web) แล้วคลิกผู้ให้บริการ reCAPTCHA Enterprise - เลือกสร้างคีย์ reCAPTCHA Enterprise ใหม่ แล้วกรอกข้อมูลในข้อความแจ้งโดยทำดังนี้
- ชื่อ:
Codelab Key - โดเมน: เพิ่ม
localhostและ127.0.0.1เพื่ออนุญาตให้เซิร์ฟเวอร์ Vite ในเครื่องส่งคำขอได้
- ชื่อ:
- คลิกบันทึก เพื่อลงทะเบียนแอป
- เมื่อลงทะเบียนแล้ว คอนโซล Firebase จะแสดงคีย์เว็บไซต์ คัดลอกสตริงนี้
- เปิด
src/firebase.tsอีกครั้งในตัวแก้ไขโค้ด - เพิ่มการนำเข้าต่อไปนี้ที่ด้านบน
import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check"; - เพิ่มการเริ่มต้น App Check ทันทีหลังจากเรียกใช้
initializeApp(firebaseConfig)แล้ววางคีย์เว็บไซต์ที่คุณคัดลอกไว้// Initialize App Check const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider('YOUR_RECAPTCHA_ENTERPRISE_SITE_KEY'), useLimitedUseAppCheckTokens: true }); - อัปเดตการเรียกใช้ฟังก์ชัน
getAI()เพื่อใช้โทเค็นเหล่านี้ โดยทำการเปลี่ยนแปลงต่อไปนี้ การตั้งค่าconst ai = getAI(app, { backend: new VertexAIBackend(), useLimitedUseAppCheckTokens: true });useLimitedUseAppCheckTokensเป็น "จริง" จะช่วยให้มั่นใจได้ว่าระบบจะใช้โทเค็นที่มีอายุสั้นเพื่อช่วยจำกัดการละเมิดที่แบ็กเอนด์อาจได้รับ
8. เรียกใช้แอป
เมื่อกำหนดค่า Firebase เรียบร้อยแล้วและเชื่อมต่อวิดเจ็ตแชทสำหรับฝ่ายสนับสนุนแล้ว ก็ถึงเวลาเรียกใช้แอป
- ในเทอร์มินัล ให้เรียกใช้เซิร์ฟเวอร์การพัฒนา Vite โดยใช้คำสั่งต่อไปนี้
npm run dev - เปิด URL ในเครื่องที่ระบบให้ไว้ (โดยปกติคือ
http://localhost:5173/) - คลิกปุ่มการทำงานแบบลอย (FAB) Tactical Support ที่มุมขวาล่าง
- ลองถามคำถามเกี่ยวกับผลิตภัณฑ์ เช่น
- ฉันกำลังมองหาเสื้อแจ็กเก็ตที่ทนต่อทุกสภาพอากาศ
- หมวกไหมพรมกันหนาวของฉันมีตำหนิ ฉันควรทำอย่างไร
- ลองถามคำถามต่อไปเรื่อยๆ เพื่อเรียกใช้ตรรกะ "งบประมาณการประนีประนอม" ของ AI
9. (ไม่บังคับ) ล้างข้อมูลทรัพยากรจาก Codelab
หากต้องการหลีกเลี่ยงการเรียกเก็บเงินที่อาจเกิดขึ้นกับบัญชีสำหรับการเรียกเก็บเงินใน Cloud ของ Google Cloud คุณสามารถลบทรัพยากรที่สร้างขึ้นระหว่าง Codelab นี้ได้
- ไปที่คอนโซล Firebase
- เลือกโปรเจ็กต์
rugged-terrain-ai - ไปที่การตั้งค่าโปรเจ็กต์ (ไอคอนรูปเฟือง)
- เลื่อนลงไปที่ด้านล่างแล้วคลิกลบโปรเจ็กต์
- ทำตามวิธีการบนหน้าจอเพื่อยืนยันการลบ
10. ยินดีด้วย
🎊 ภารกิจสำเร็จ! คุณผสานรวมเอเจนต์ฝ่ายสนับสนุนลูกค้า AI ที่มีประสิทธิภาพและขับเคลื่อนด้วยเทมเพลตได้สำเร็จแล้ว
สิ่งที่คุณทำสำเร็จมีดังนี้
- เริ่มต้น Firebase และแบ็กเอนด์ Vertex AI ในแอปไคลเอ็นต์
- กำหนดค่าเทมเพลตข้อความแจ้งฝั่งเซิร์ฟเวอร์ที่ปลอดภัย โดยใช้ Handlebars และสคีมาอินพุตที่เข้มงวดเพื่อกำหนดลักษณะการทำงานที่ซับซ้อนของเอเจนต์
- เรียกใช้ LLM แบบไดนามิก โดยส่งประวัติการแชทและรหัสผลิตภัณฑ์ตามบริบทอย่างปลอดภัยโดยไม่เปิดเผยตรรกะข้อความแจ้งภายในต่อไคลเอ็นต์
ขั้นตอนต่อไปคืออะไร
- Firebase App Check: รักษาความปลอดภัยปลายทาง AI จากการละเมิด