15 puan yazan GN⁺ 2024-08-14 | 3 yorum | WhatsApp'ta paylaş
  • Doğrudan tarayıcıda çalışan, yapay zeka destekli bir Postgres sandbox'ı
  • Anında sınırsız sayıda Postgres veritabanı oluşturulabiliyor (yakında S3'e de dağıtılabilecek)
  • Her veritabanı bir büyük dil modeli (LLM) ile eşleştirilerek çeşitli ilgi çekici kullanım senaryoları sunuyor:
    • CSV dosyalarını sürükleyip bırakarak tablo oluşturma
    • Rapor oluşturma ve dışa aktarma
    • Grafik oluşturma
    • Veritabanı diyagramları hazırlama
  • Tüm işlemler tarayıcı içinde yerel olarak gerçekleştiriliyor

Kullanım demosu

  • CSV dosyalarını hızlıca sorgulamak ve görselleştirmek istediğinizde
  • ChatGPT kullanarak SQL yazıp bunu gerçek bir veritabanında çalıştırmak istediğinizde
  • Yeni bir proje planlayıp veritabanı tasarımını yapay zekaya bırakmak istediğinizde

Nasıl çalışıyor

  • Tüm sorgular tarayıcı içinde çalıştırılıyor
  • Bu, Postgres'in tarayıcıda doğrudan çalışabilen WASM sürümü olan PGlite sayesinde mümkün oluyor

Geliştirme motivasyonu

  1. Yapay zeka destekli geliştirme: Postgres ile yapay zeka arasındaki etkileşim yeniden düşünüldü
  2. Postgres sandbox'ı: Tarayıcıda hızlı ve tek seferlik çalıştırma
  3. Uygun maliyetli veritabanları: Düşük maliyetle çok sayıda veritabanı sunma potansiyeli

Özellikler ve çalışma şekli

Yapay zeka asistanı

  • PGlite ile GPT-4o eşleştirilerek veritabanı üzerinde tam yetki veriliyor.
  • Yapay zeka birden fazla işi art arda gerçekleştirebildiği için daha insansı bir his veriyor.

CSV içe aktarma ve dışa aktarma

  • CSV dosyalarını sürükleyip bırakarak otomatik olarak tablo oluşturma.
  • Yapay zeka, veri türlerini belirlemek için CSV başlıklarını ve örnek satırları analiz ediyor.
  • SQL hatası oluşursa yapay zeka bunu kendi kendine düzeltmeyi deniyor.

Grafikler

  • Mesaja "chart" kelimesini eklerseniz yapay zeka uygun sorguyu çalıştırıp grafik oluşturuyor.
  • Grafikler Chart.js kullanılarak render ediliyor.

ER diyagramları ve migration'lar

  • Yapay zeka, gerçek veritabanında ER diyagramları oluşturmak için CREATE ve ALTER ifadeleri üretiyor.
  • PGlite tablolarını JavaScript'e yüklemek için tarayıcı uyumlu bir postgres-meta sürümü kullanılıyor ve şema görselleştirme aracıyla render ediliyor.

Anlamsal arama ve RAG

  • pgvector eklentisi kullanılarak tarayıcı içinde vektör arama destekleniyor.
  • Transformers.js kullanılarak metin embedding'leri oluşturuluyor, PGlite'a kaydediliyor ve sorgulanıyor.

Dağıtım

  • PGlite veritabanlarını S3'e dağıtarak düşük maliyetle çeşitli kullanım senaryolarını destekleme planı var.

PGlite'a derinlemesine bakış

PGlite nedir?

  • PGlite, Postgres'in WASM derlemesidir; tarayıcı, Node.js ve Bun üzerinde çalışabilir.
  • Unit test, yerel geliştirme ve uzaktan geliştirme için idealdir.

Veri kalıcılığı

  • Node'da yerel dosya sistemi, tarayıcıda ise IndexedDB ve OPFS desteklenir.

Eklenti desteği

  • pgvector ve live gibi kullanışlı eklentileri destekler.

Teknik genel bakış

  • Postgres'in tek kullanıcılı modu temel alınarak WASM üzerinde çalışabilir hale getirildi.
  • Çeşitli Postgres özellikleri WASM'e uyacak şekilde uyarlandı.

Yakında geliyor

  • Veritabanlarını S3'e dağıtıp internet üzerinden erişilebilir hale getirme planı var.
  • Daha fazla dosya biçimi desteği, veritabanı paylaşımı ve veritabanı dışa aktarma özellikleri eklenecek.

Açık kaynak

  • Tüm çalışmalar açık kaynak olarak sunuluyor:
    • PGlite (Apache 2.0)
    • pg-gateway (MIT)
    • postgres-new (Apache 2.0)
    • transformers.js

GN⁺ özeti

  • postgres.new, tarayıcıda çalışan bir Postgres sandbox'ı olarak yapay zeka desteğiyle veritabanı işlerini kolaylaştırabiliyor.
  • PGlite sayesinde hızlı ve düşük maliyetli veritabanı oluşturma mümkün olurken, çeşitli yapay zeka tabanlı özellikler de sunuluyor.
  • Veri görselleştirme, ER diyagramı üretimi, anlamsal arama gibi özellikleriyle geliştiriciler için faydalı bir araç olabilir.
  • Benzer işlevler sunan diğer projeler arasında Supabase ve ElectricSQL bulunuyor.

3 yorum

 
yangeok 2024-08-20

Supabase'miş.

 
GN⁺ 2024-08-14
Hacker News görüşleri
  • postgres.new ile 3 veritabanı oluşturma deneyimini paylaşıyor

    • Müşteri sipariş veritabanı, issue takip sistemi ve aile ilişkileri modelini başarıyla oluşturdu
    • Aile ilişkileri modelinde kuzen ve amca/dayı gibi karmaşık ilişkileri de iyi işledi
    • Karşılıklı ilişkilerde (ör. kardeşlik ilişkisi) bazı eksikler vardı, ancak verinin gözden geçirilmesi istendikten sonra düzeltildi
    • Oldukça faydalı bir araç olarak değerlendiriyor
  • Bunu yapay zekanın sınırlarını gösteren bir teknik demo olarak değerlendiriyor

    • Geçersiz SQL üreterek hataya yol açtı
    • Üretilen SQL, birbirinden kopuk tablo setleri oluşturdu
    • Tüm kodun gözden geçirilmesi gerektiğini belirtiyor
    • Yeni sistemler çoğu zaman soyut ya da akıllı öğeler gerektirir, ancak bu sistem yalnızca basit sistemler üretiyor
    • Kodu doğrudan yazmak daha kolay
    • Kurum içinde LLM merge request'lerini yasakladıklarını, kodun optimize olmadığını ve çok sayıda hata içerdiğini söylüyor
    • Bunun mevcut LLM tasarımıyla aşılmasının zor olduğunu düşünüyor
  • "New database" düğmesine tıklandığında hiçbir şey olmuyor

    • GitHub'da oturum açmamıştı, ancak zaten yapay zeka özelliğini kullanmak istemiyordu
    • ChatGPT'nin zorunlu olmasına hayal kırıklığına uğradı
    • Local-first yaklaşımın yapay zekayla sınırlandırılmasından memnun değil
  • Oldukça etkileyici

  • Yapay zeka özelliği olmadan da kullanılabilse iyi olurdu görüşü var

    • WASM build'inin Postgres'i gömülü veritabanı olarak kullanmayı mümkün kılıp kılmadığını soruyor
  • Bu aracın veritabanı tasarımında çok yardımcı olduğunu düşünüyor

    • Mevcut veritabanı şemasını diyagram olarak çizebilip çizemediğini soruyor
    • Supabase migration tarzı ya da Flyway benzeri araçlarla geliştirilen şemaları diyagram olarak gösterebilme özelliğinin kurumsal ortamlarda çok faydalı olacağını söylüyor
  • Yapay zeka/LLM ile mevcut iş akışlarının birleştirilmesine kuşkuyla yaklaşıyordu, ancak bu örnekte bunu olumlu buluyor

    • LLM'nin veritabanına eklenecek verileri üretmede faydalı olduğunu düşünüyor
    • Mobilde kullanılamamasının nedenini anladığını, ancak mobil kullanıcılar için özet bilgi sağlanmasını istediğini belirtiyor
  • Bir Supabase mühendisi olarak bu aracı Electric ekibiyle birlikte geliştirmenin eğlenceli olduğunu söylüyor

    • Teknik engelleri aşma süreci yaşandı
    • Geri bildirimleri yansıtarak geliştirmeye devam edeceklerini belirtiyor
  • postgres.new'i laptop veya masaüstünde kullanmaları yönünde yönlendirme yapılıyor

    • WebKit/Safari kullanımında sorun olmadığını belirtiyor