15 คะแนน โดย GN⁺ 2024-08-14 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • แซนด์บ็อกซ์ Postgres ที่รันได้โดยตรงในเบราว์เซอร์ พร้อมการรองรับ AI
  • สร้างฐานข้อมูล Postgres ได้ไม่จำกัดแบบทันที (และเร็ว ๆ นี้จะสามารถดีพลอยไปยัง S3 ได้ด้วย)
  • แต่ละฐานข้อมูลจะจับคู่กับโมเดลภาษาขนาดใหญ่ (LLM) เพื่อรองรับการใช้งานที่น่าสนใจหลากหลาย:
    • สร้างตารางด้วยการลากและวางไฟล์ CSV
    • สร้างและส่งออกรายงาน
    • สร้างกราฟ
    • สร้างไดอะแกรมฐานข้อมูล
  • ทุกอย่างทำงานแบบโลคัลภายในเบราว์เซอร์

เดโมการใช้งาน

  • เมื่อต้องการคิวรีและทำภาพข้อมูลจากไฟล์ CSV อย่างรวดเร็ว
  • เมื่อต้องการใช้ ChatGPT เขียน SQL แล้วลองรันกับฐานข้อมูลจริง
  • เมื่อต้องการวางแผนโปรเจกต์ใหม่และให้ AI ช่วยออกแบบฐานข้อมูล

วิธีการทำงาน

  • ทุกคิวรีทำงานภายในเบราว์เซอร์
  • เป็นไปได้ด้วย PGlite ซึ่งเป็น Postgres เวอร์ชัน WASM ที่รันได้โดยตรงในเบราว์เซอร์

แรงจูงใจในการพัฒนา

  1. การพัฒนาด้วย AI: นำเสนอการโต้ตอบระหว่าง Postgres และ AI ในรูปแบบใหม่
  2. การทำ Postgres เป็นแซนด์บ็อกซ์: รันได้รวดเร็วในเบราว์เซอร์และเหมาะกับงานใช้ครั้งเดียว
  3. ฐานข้อมูลต้นทุนต่ำ: มีศักยภาพในการให้บริการฐานข้อมูลจำนวนมากด้วยต้นทุนต่ำ
โฆษณา

ฟีเจอร์และการทำงาน

AI Assistant

  • จับคู่ PGlite กับ GPT-4o และมอบสิทธิ์เต็มรูปแบบเหนือฐานข้อมูลให้ AI
  • AI สามารถทำหลายงานต่อเนื่องกันได้ ทำให้ให้ความรู้สึกเหมือนมนุษย์มากขึ้น

การนำเข้าและส่งออก CSV

  • ลากและวางไฟล์ CSV เพื่อสร้างตารางโดยอัตโนมัติ
  • AI จะวิเคราะห์ส่วนหัวและแถวตัวอย่างของ CSV เพื่อกำหนดชนิดข้อมูล
  • หากเกิดข้อผิดพลาดใน SQL, AI จะพยายามแก้ไขด้วยตัวเอง

กราฟ

  • เพียงเพิ่มคำว่า "chart" ลงในข้อความ AI ก็จะรันคิวรีที่เหมาะสมและสร้างกราฟให้
  • ใช้ Chart.js ในการเรนเดอร์กราฟ

ER Diagram และ Migration

  • AI จะสร้างคำสั่ง CREATE และ ALTER เพื่อสร้าง ER Diagram จากฐานข้อมูลจริง
  • ใช้ postgres-meta เวอร์ชันที่เข้ากันได้กับเบราว์เซอร์ เพื่อโหลดตารางของ PGlite เข้า JavaScript และเรนเดอร์ด้วยเครื่องมือสร้างภาพสคีมา

Semantic Search และ RAG

  • รองรับการค้นหาเวกเตอร์ภายในเบราว์เซอร์ด้วยส่วนขยาย pgvector
  • ใช้ Transformers.js เพื่อสร้าง text embedding แล้วจัดเก็บและคิวรีใน PGlite
โฆษณา

การดีพลอย

  • มีแผนจะดีพลอยฐานข้อมูล PGlite ไปยัง S3 เพื่อรองรับกรณีใช้งานที่หลากหลายในต้นทุนต่ำ

เจาะลึก PGlite

PGlite คืออะไร?

  • PGlite คือบิลด์ WASM ของ Postgres ที่รันได้บนเบราว์เซอร์, Node.js และ Bun
  • เหมาะอย่างยิ่งสำหรับยูนิตเทสต์, การพัฒนาแบบโลคัล และการพัฒนาแบบรีโมต

การคงอยู่ของข้อมูล

  • บน Node รองรับ native file system และบนเบราว์เซอร์รองรับ IndexedDB และ OPFS

การรองรับส่วนขยาย

  • รองรับส่วนขยายที่มีประโยชน์อย่าง pgvector และ live
โฆษณา

ภาพรวมทางเทคนิค

  • อิงจากโหมดผู้ใช้เดี่ยวของ Postgres เพื่อให้สามารถรันบน WASM ได้
  • มีการปรับฟีเจอร์ต่าง ๆ ของ Postgres ให้เหมาะกับ WASM

เร็ว ๆ นี้

  • มีแผนจะดีพลอยฐานข้อมูลไปยัง S3 และเปิดให้เข้าถึงได้ผ่านอินเทอร์เน็ต
  • จะเพิ่มการรองรับไฟล์ฟอร์แมตเพิ่มเติม, การแชร์ฐานข้อมูล และฟีเจอร์ส่งออกฐานข้อมูล

โอเพนซอร์ส

  • ทุกอย่างเปิดเป็นโอเพนซอร์ส:
    • PGlite (Apache 2.0)
    • pg-gateway (MIT)
    • postgres-new (Apache 2.0)
    • transformers.js

สรุปโดย GN⁺

  • postgres.new คือแซนด์บ็อกซ์ Postgres ที่ทำงานในเบราว์เซอร์ พร้อมการรองรับ AI ที่ช่วยให้งานด้านฐานข้อมูลทำได้ง่ายขึ้น
  • ใช้ PGlite เพื่อให้สร้างฐานข้อมูลได้รวดเร็วและต้นทุนต่ำ พร้อมฟีเจอร์ที่ขับเคลื่อนด้วย AI หลากหลาย
  • ด้วยความสามารถอย่างการทำภาพข้อมูล, การสร้าง ER Diagram และ semantic search จึงมีศักยภาพเป็นเครื่องมือที่มีประโยชน์สำหรับนักพัฒนา
  • โปรเจกต์อื่นที่มีฟีเจอร์คล้ายกัน ได้แก่ Supabase และ ElectricSQL

3 ความคิดเห็น

 
yangeok 2024-08-20

เหมือนจะเป็น supabase นะ

 
GN⁺ 2024-08-14
ความคิดเห็นจาก Hacker News
  • แชร์ประสบการณ์การใช้ postgres.new เพื่อสร้างฐานข้อมูล 3 ชุด

    • สร้างฐานข้อมูลคำสั่งซื้อของลูกค้า ระบบติดตามประเด็น และโมเดลความสัมพันธ์ในครอบครัวได้สำเร็จ
    • ในโมเดลความสัมพันธ์ในครอบครัว ยังจัดการความสัมพันธ์ที่ซับซ้อนรวมถึงลูกพี่ลูกน้องและลุงได้ดี
    • ความสัมพันธ์แบบสองทางบางส่วน (เช่น ความเป็นพี่น้อง) หลุดหายไปบ้าง แต่ได้รับการแก้ไขหลังจากขอให้ตรวจสอบข้อมูล
    • มองว่าเป็นเครื่องมือที่มีประโยชน์มาก
  • มองว่าเป็นเดโมทางเทคนิคที่แสดงให้เห็นข้อจำกัดของ AI

    • สร้าง SQL ที่ไม่ถูกต้องจนเกิดข้อผิดพลาด
    • SQL ที่สร้างขึ้นทำให้ได้ชุดตารางที่ขาดการเชื่อมโยงกัน
    • กล่าวถึงความจำเป็นที่ต้องตรวจสอบโค้ดทั้งหมด
    • ระบบใหม่มักต้องการองค์ประกอบที่เป็นนามธรรมหรือฉลาด แต่ระบบนี้สร้างได้แค่ระบบที่เรียบง่าย
    • เขียนโค้ดเองง่ายกว่า
    • ในองค์กรมีการห้าม merge request จาก LLM เพราะโค้ดไม่เหมาะสมและมีบั๊กจำนวนมาก
    • ด้วยการออกแบบ LLM ในปัจจุบัน เรื่องนี้ยากจะก้าวข้าม
  • เมื่อคลิกปุ่ม "New database" ก็ไม่มีอะไรเกิดขึ้น

    • ไม่ได้ล็อกอินเข้า Github แต่ตั้งใจจะไม่ใช้ฟีเจอร์ AI อยู่แล้ว
    • รู้สึกผิดหวังที่จำเป็นต้องใช้ chatGPT
    • ไม่พอใจกับการจำกัดแนวทางแบบ local-first ไว้ด้วย AI
  • น่าประทับใจมาก

  • มีความเห็นว่าน่าจะดีถ้าใช้งานได้โดยไม่มีฟีเจอร์ AI

    • ถามว่า WASM build ทำให้สามารถใช้ Postgres เป็น embedded DB ได้หรือไม่
  • ประเมินว่าเครื่องมือนี้ช่วยเรื่องการออกแบบฐานข้อมูลได้มาก

    • ถามว่าสามารถวาด schema ฐานข้อมูลที่มีอยู่เดิมออกมาเป็นไดอะแกรมได้หรือไม่
    • ฟีเจอร์ที่แสดง schema ที่พัฒนาด้วยสไตล์ migration ของ Supabase หรือเครื่องมืออย่าง Flyway เป็นไดอะแกรม จะมีประโยชน์มากในสภาพแวดล้อมองค์กร
  • เดิมทีค่อนข้างกังขาต่อการผสาน AI/LLM เข้ากับ workflow ที่มีอยู่ แต่ในกรณีนี้มองว่าใช้ได้

    • LLM มีประโยชน์ในการสร้างข้อมูลที่จะใส่ลงในฐานข้อมูล
    • เข้าใจว่าทำไมถึงใช้บนมือถือไม่ได้ แต่ขอให้มีข้อมูลสรุปสำหรับผู้ใช้มือถือ
  • ในฐานะวิศวกรของ Supabase ได้กล่าวว่าการพัฒนาเครื่องมือนี้ร่วมกับทีม Electric เป็นเรื่องสนุก

    • มีช่วงเวลาที่ต้องฝ่าอุปสรรคทางเทคนิค
    • มีแผนจะปรับปรุงต่อเนื่องโดยสะท้อนฟีดแบ็กที่ได้รับ
  • มีคำแนะนำให้ใช้ postgres.new บนโน้ตบุ๊กหรือเดสก์ท็อป

    • ระบุว่าไม่มีปัญหาในการใช้ Webkit/Safari แต่อย่างใด