{"status":"ok","framework":"Express.js","system":"Meilisearch + Vertex AI (text-multilingual-embedding-002)","indices":["products","specs","datasheets","faqs","knowledges"],"endpoints":[{"method":"POST","path":"/api/products","description":"นำเข้าสินค้า (เดี่ยว หรือ Batch Array) + ตรวจ Hash"},{"method":"GET","path":"/api/products","description":"ดึงรายการสินค้า (รองรับ limit, offset, filter)"},{"method":"POST","path":"/api/products/search","description":"ค้นหาสินค้า Hybrid/Semantic Search"},{"method":"GET","path":"/api/products/:id","description":"ดึงข้อมูลสินค้าเดี่ยวตาม ID"},{"method":"PUT","path":"/api/products/:id","description":"อัปเดตสินค้าเดี่ยวตาม ID (ตรวจ Hash 0 Token หากไม่เปลี่ยน)"},{"method":"DELETE","path":"/api/products/:id","description":"ลบสินค้าเดี่ยวตาม ID (Cascade Datasheets ที่ผูกอยู่)"},{"method":"POST","path":"/api/specs","description":"นำเข้า Specification (เดี่ยว หรือ Batch) + ตรวจ Hash"},{"method":"GET","path":"/api/specs","description":"ดึงรายการ Specification (รองรับ ?product_id=...)"},{"method":"POST","path":"/api/specs/search","description":"ค้นหา Specification Hybrid/Semantic Search"},{"method":"DELETE","path":"/api/specs","description":"ลบ Specification ตาม Filter (product_id)"},{"method":"GET","path":"/api/specs/:id","description":"ดึงข้อมูล Specification เดี่ยวตาม ID"},{"method":"PUT","path":"/api/specs/:id","description":"อัปเดต Specification เดี่ยวตาม ID"},{"method":"DELETE","path":"/api/specs/:id","description":"ลบ Specification เดี่ยวตาม ID"},{"method":"POST","path":"/api/datasheets","description":"นำเข้า Datasheet (เดี่ยว หรือ Batch Chunks) + ตรวจ Hash"},{"method":"GET","path":"/api/datasheets","description":"ดึงรายการ Datasheet"},{"method":"POST","path":"/api/datasheets/search","description":"ค้นหา Datasheet Hybrid/Semantic Search"},{"method":"DELETE","path":"/api/datasheets","description":"ลบ Datasheet เป็นกลุ่มตาม Filter (file_name, product_id)"},{"method":"GET","path":"/api/datasheets/:id","description":"ดึงข้อมูล Datasheet เดี่ยวตาม ID"},{"method":"PUT","path":"/api/datasheets/:id","description":"อัปเดต Datasheet เดี่ยวตาม ID"},{"method":"DELETE","path":"/api/datasheets/:id","description":"ลบ Datasheet เดี่ยวตาม ID"},{"method":"POST","path":"/api/faq","description":"นำเข้า FAQ (เดี่ยว หรือ Batch Array)"},{"method":"GET","path":"/api/faq","description":"ดึงรายการ FAQ"},{"method":"POST","path":"/api/faq/search","description":"ค้นหา FAQ Hybrid/Semantic Search"},{"method":"DELETE","path":"/api/faq","description":"ลบ FAQ เป็นกลุ่มตาม Filter (file_name, topic_id)"},{"method":"GET","path":"/api/faq/:id","description":"ดึงข้อมูล FAQ เดี่ยวตาม ID"},{"method":"PUT","path":"/api/faq/:id","description":"อัปเดต FAQ เดี่ยวตาม ID"},{"method":"DELETE","path":"/api/faq/:id","description":"ลบ FAQ เดี่ยวตาม ID"},{"method":"POST","path":"/api/knowledge","description":"นำเข้าคลังความรู้ (เดี่ยว หรือ Batch Array)"},{"method":"GET","path":"/api/knowledge","description":"ดึงรายการคลังความรู้"},{"method":"POST","path":"/api/knowledge/search","description":"ค้นหาคลังความรู้ Hybrid/Semantic Search"},{"method":"DELETE","path":"/api/knowledge","description":"ลบคลังความรู้เป็นกลุ่มตาม Filter"},{"method":"GET","path":"/api/knowledge/:id","description":"ดึงข้อมูลคลังความรู้เดี่ยวตาม ID"},{"method":"PUT","path":"/api/knowledge/:id","description":"อัปเดตคลังความรู้เดี่ยวตาม ID"},{"method":"DELETE","path":"/api/knowledge/:id","description":"ลบคลังความรู้เดี่ยวตาม ID"},{"method":"POST","path":"/api/rag/context","description":"⭐️ รวมบริบท RAG เส้นเดียวจบ (Cascade: Products/Datasheet -> FAQ -> Knowledge)"},{"method":"GET","path":"/api/stats","description":"ดูสถิติจำนวนเอกสารใน Meilisearch ทุก Index"},{"method":"GET/POST","path":"/api/embed","description":"Vertex AI Embedder Proxy สำหรับ Meilisearch"}]}