VectorWave - เฟรมเวิร์กที่บันทึก/แคชอินพุตและเอาต์พุตของฟังก์ชัน Python ลงใน Vector DB โดยอัตโนมัติด้วยดีคอเรเตอร์เพียงบรรทัดเดียว
(github.com/cozymori)สวัสดีครับ ผมขอแนะนำ VectorWave โอเพนซอร์สเฟรมเวิร์กที่พัฒนาขึ้นเพื่อบันทึกและจัดการข้อมูลการทำงานของฟังก์ชัน/เมธอด Python ลงในเวกเตอร์ดาต้าเบส (Weaviate) โดยอัตโนมัติ
โปรเจกต์นี้เริ่มต้นจากประสบการณ์ที่พบว่าการสร้างระบบ RAG หรือทำแอปพลิเคชัน LLM นั้น การสร้างไปป์ไลน์สำหรับเก็บข้อมูล ทำ embedding และทำ logging เป็นเรื่องที่ยุ่งยาก
Github: https://github.com/cozymori/vectorwave
VectorWave คืออะไร?
VectorWave ใช้ดีคอเรเตอร์ @vectorize เพื่อทำ embedding ของซอร์สโค้ด, docstring, ค่าข้อมูลนำเข้า/ค่าที่คืนกลับขณะรัน ฯลฯ โดยอัตโนมัติ และบันทึกลงใน Vector DB ได้โดยไม่ต้องตั้งค่าซับซ้อน ทำให้สามารถทำ "การค้นหาเชิงความหมายของการทำงานของโค้ด" และ "semantic caching" ได้
ความสามารถหลัก
Seamless Auto-Vectorization:
เพียงใส่ดีคอเรเตอร์ @vectorize ตัวเดียว เมทาดาทาของฟังก์ชัน (แบบสถิต) และล็อกการทำงาน (แบบไดนามิก) ก็จะถูกบันทึกลงใน Vector DB โดยอัตโนมัติ
Semantic Caching (ลดต้นทุน):
สำหรับฟังก์ชันที่มีค่าใช้จ่ายสูง เช่น การเรียก LLM ระบบจะคืนผลลัพธ์ที่แคชไว้โดยอิงจากความคล้ายคลึงเชิงความหมายของอินพุต (Semantic Similarity) ช่วยลดค่าใช้จ่าย API และเวลาแฝง (Latency) ได้อย่างมาก
การทำเอกสารอัตโนมัติด้วย AI:
LLM สามารถสร้าง search_description ของฟังก์ชันโดยอัตโนมัติ เพื่อเพิ่มคุณภาพการค้นหาและลดภาระการเขียนเอกสารของนักพัฒนา
Distributed Tracing:
เมื่อใช้ร่วมกับ @trace_span จะสามารถรวมเวิร์กโฟลว์ที่ซับซ้อนเข้าไว้ภายใต้ trace_id เดียว เพื่อแสดงภาพและมอนิเตอร์ลำดับการทำงานได้
Auto-Injection:
สามารถฉีดความสามารถจากภายนอกเข้าไปเพื่อใช้มอนิเตอร์/ล็อกได้ โดยไม่ต้องแก้ไขโค้ด business logic เดิม
Docs: https://cozymori.github.io/vectorwave-docs/
สามารถดูรายละเอียดเพิ่มเติมได้ในเอกสารด้านบน
ยินดีรับทุกฟีดแบ็กและการมีส่วนร่วม และถ้าชอบก็ฝากกดดาวให้ด้วยครับ!
ยังไม่มีความคิดเห็น