จาก Docusaurus สู่ WordPress: 3 วิธีในการสร้าง AI Chat
ผมได้สร้างสถาปัตยกรรม AI chat ที่แตกต่างกัน 3 รูปแบบ ซึ่งแต่ละแบบก็แก้ปัญหาที่ต่างกันออกไป
เป้าหมายไม่ใช่การค้นหาเทคโนโลยีที่ดีที่สุด แต่คือการเลือกเทคโนโลยีให้เหมาะสมกับกลุ่มผู้ใช้งานเป้าหมายของคุณ
1. The Static Index (Docusaurus + Vercel) วิธีนี้ใช้ไฟล์ JSON ภายใน static site โดยขั้นตอนการ build จะเปลี่ยนไฟล์ markdown ของคุณให้กลายเป็น index ชุดเดียว การค้นหาจะทำงานในหน่วยความจำ (in memory) โดยใช้ serverless function
• เหมาะสำหรับ: เว็บไซต์เอกสาร (Documentation sites) ที่คุณเป็นเจ้าของเอง • ข้อดี: ไม่ต้องมีโครงสร้างพื้นฐานเพิ่มเติม รวดเร็วและราคาถูก • ข้อเสีย: ไม่สามารถขยายขนาดได้ (does not scale) ใช้ได้กับข้อความจำนวนน้อยเท่านั้น
2. The Scalable Service (Neon + pgvector) วิธีนี้ใช้ฐานข้อมูล Postgres ที่รองรับ vector โดยใช้การค้นหาเชิงความหมาย (semantic search) จริงๆ เพื่อค้นหาข้อมูลได้อย่างรวดเร็ว
• เหมาะสำหรับ: ผลิตภัณฑ์ SaaS ที่มีผู้ใช้งานจำนวนมาก • ข้อดี: รองรับข้อมูลมหาศาล รองรับบัญชีผู้ใช้หลายคนและประวัติการใช้งาน • ข้อเสีย: ต้องใช้โครงสร้างพื้นฐานแบบ managed และต้องมีการดูแลจัดการ (operational work) มากขึ้น
3. The Drop-in Plugin (WordPress) เวอร์ชันนี้จะเก็บ vector ไว้ในฐานข้อมูล WordPress โดยตรง โดยใช้ PHP ในการทำ brute-force search ผ่านข้อความส่วนต่างๆ (text chunks)
• เหมาะสำหรับ: ลูกค้าที่ต้องการปลั๊กอิน WordPress แบบง่ายๆ • ข้อดี: ไม่ต้องตั้งค่าเพิ่มเติม ใช้งานได้กับ WordPress host ทุกแห่ง และทำงานอยู่ภายในฐานข้อมูลของเว็บไซต์เอง • ข้อเสีย: ทำงานช้าลงเมื่อใช้กับชุดข้อมูลขนาดใหญ่มาก
บทสรุปสำคัญ:
- เลือกสถาปัตยกรรมให้สอดคล้องกับการ deployment ปลั๊กอิน WordPress ที่ต้องใช้ฐานข้อมูลแยกต่างหากนั้นไม่ใช่ปลั๊กอินที่มีประโยชน์
- เริ่มจากจุดเล็กๆ การใช้ static JSON index ช่วยพิสูจน์ว่าประสบการณ์ผู้ใช้งาน (user experience) ของคุณใช้งานได้จริง ก่อนที่คุณจะเริ่มสร้างฐานข้อมูลที่ซับซ้อน
- การค้นหาแบบ brute-force นั้นเพียงพอแล้วสำหรับเว็บไซต์ขนาดเล็ก สำหรับข้อความไม่กี่พันย่อหน้า มันเร็วเพียงพอแล้ว อย่าเพิ่งใช้ vector engine ที่ซับซ้อนจนกว่าจะจำเป็นจริงๆ
- เขียนโค้ดให้ยืดหยุ่นเสมอ ใช้ interface สำหรับ vector store ของคุณ วิธีนี้จะช่วยให้คุณสามารถเปลี่ยนจาก JSON ไปเป็น Postgres ได้โดยไม่ต้องเขียนแอปใหม่ทั้งหมด
- ความปลอดภัยเป็นเรื่องสำคัญ เข้ารหัส API keys ในทุกระดับ และใช้โมเดลแบบ bring-your-own-key เพื่อที่คุณจะได้ไม่ต้องจัดการกับข้อมูลที่ละเอียดอ่อนของผู้ใช้งาน
ที่มา: https://dev.to/kaidanov/from-docusaurus-mai-to-a-wordpress-ai-chat-with-vectors-41ba