15 Punkte von GN⁺ 2024-08-14 | 3 Kommentare | Auf WhatsApp teilen
  • Eine Postgres-Sandbox, die direkt im Browser läuft und AI-Unterstützung bietet
  • Unbegrenzt viele Postgres-Datenbanken können sofort erstellt werden (bald auch mit Deployment auf S3)
  • Jede Datenbank wird mit einem Large Language Model (LLM) gepaart und ermöglicht verschiedene interessante Anwendungsfälle:
    • Tabellen per Drag-and-drop von CSV-Dateien erstellen
    • Berichte erstellen und exportieren
    • Diagramme erzeugen
    • Datenbankdiagramme erstellen
  • Alle Vorgänge werden lokal im Browser ausgeführt

Demo der Nutzung

  • Wenn man CSV-Dateien schnell abfragen und visualisieren möchte
  • Wenn man mit ChatGPT SQL schreiben und es an einer echten Datenbank ausführen möchte
  • Wenn man ein neues Projekt planen und das Datenbankdesign einer AI überlassen möchte

Funktionsweise

  • Alle Abfragen werden im Browser ausgeführt
  • Möglich wird das durch PGlite, eine WASM-Version von Postgres, die direkt im Browser läuft

Motivation für die Entwicklung

  1. AI-gestützte Entwicklung: Das Zusammenspiel von Postgres und AI neu gedacht
  2. Postgres-Sandboxing: Schnell und flüchtig im Browser ausführbar
  3. Günstige Datenbanken: Potenzial, viele Datenbanken zu niedrigen Kosten bereitzustellen

Funktionen und Arbeitsweise

AI-Assistent

  • PGlite wird mit GPT-4o gepaart und erhält vollständige Berechtigungen für die Datenbank.
  • Die AI kann mehrere Aufgaben nacheinander ausführen, was sich menschlicher anfühlt.

CSV-Import und -Export

  • CSV-Dateien per Drag-and-drop importieren und automatisch Tabellen erstellen.
  • Die AI analysiert Header und Beispielzeilen der CSV, um Datentypen zu bestimmen.
  • Wenn SQL-Fehler auftreten, versucht die AI, diese selbstständig zu korrigieren.

Diagramme

  • Wenn das Wort "chart" zur Nachricht hinzugefügt wird, führt die AI die passende Abfrage aus und erzeugt ein Diagramm.
  • Diagramme werden mit Chart.js gerendert.

ER-Diagramme und Migrationen

  • Die AI erstellt CREATE- und ALTER-Statements und erzeugt daraus ER-Diagramme aus der echten Datenbank.
  • Mit einer browserkompatiblen Version von postgres-meta werden PGlite-Tabellen in JavaScript geladen und mit einem Schema-Visualisierungstool gerendert.

Semantische Suche und RAG

  • Mit der Erweiterung pgvector wird Vektorsuche im Browser unterstützt.
  • Mit Transformers.js werden Text-Embeddings erzeugt, in PGlite gespeichert und abgefragt.

Deployment

  • Geplant ist, PGlite-Datenbanken auf S3 zu deployen, um vielfältige Anwendungsfälle kostengünstig zu unterstützen.

PGlite im Detail

Was ist PGlite?

  • PGlite ist ein WASM-Build von Postgres und kann im Browser, in Node.js und Bun ausgeführt werden.
  • Ideal für Unit-Tests, lokale Entwicklung und Remote-Entwicklung.

Datenpersistenz

  • Unter Node wird das native Dateisystem unterstützt, im Browser IndexedDB und OPFS.

Erweiterungsunterstützung

  • Unterstützt nützliche Erweiterungen wie pgvector und live.

Technischer Überblick

  • Basiert auf dem Single-User-Modus von Postgres, damit es in WASM ausgeführt werden kann.
  • Verschiedene Postgres-Funktionen wurden für WASM angepasst.

Demnächst verfügbar

  • Datenbanken sollen auf S3 deployt und über das Internet erreichbar gemacht werden.
  • Unterstützung für mehr Dateiformate, Datenbankfreigabe und Datenbankexport sind ebenfalls geplant.

Open Source

  • Alle Arbeiten werden als Open Source bereitgestellt:
    • PGlite (Apache 2.0)
    • pg-gateway (MIT)
    • postgres-new (Apache 2.0)
    • transformers.js

Zusammenfassung von GN⁺

  • postgres.new ist eine im Browser laufende Postgres-Sandbox, mit der sich Datenbankaufgaben dank AI-Unterstützung einfach erledigen lassen.
  • Mit PGlite lassen sich schnell und kostengünstig Datenbanken erstellen, ergänzt durch verschiedene AI-basierte Funktionen.
  • Datenvisualisierung, ER-Diagramme, semantische Suche und weitere Funktionen machen das Tool für Entwickler nützlich.
  • Ähnliche Projekte mit vergleichbaren Funktionen sind unter anderem Supabase und ElectricSQL.

3 Kommentare

 
yangeok 2024-08-20

Es war also supabase.

 
GN⁺ 2024-08-14
Hacker-News-Kommentare
  • Jemand teilt die Erfahrung, mit postgres.new drei Datenbanken erstellt zu haben

    • Eine Kundendatenbank für Bestellungen, ein Issue-Tracking-System und ein Modell für Familienbeziehungen wurden erfolgreich erstellt
    • Auch komplexe Beziehungen im Familienmodell, einschließlich Cousins und Onkeln, wurden gut verarbeitet
    • Wechselseitige Beziehungen, etwa zwischen Geschwistern, fehlten teilweise, wurden aber nach der Bitte um Überprüfung der Daten korrigiert
    • Das Tool wird als sehr nützlich bewertet
  • Es wird als Tech-Demo bewertet, die die Grenzen von AI zeigt

    • Es erzeugte ungültiges SQL, wodurch Fehler auftraten
    • Das generierte SQL erstellte einen Satz voneinander getrennter Tabellen
    • Es wird erwähnt, dass der gesamte Code überprüft werden muss
    • Neue Systeme brauchen oft abstrakte oder smarte Elemente, aber dieses System erstellt nur einfache Systeme
    • Den Code direkt selbst zu schreiben ist einfacher
    • LLM-Merge-Requests sind in der Organisation verboten, weil der Code nicht optimiert war und viele Bugs enthielt
    • Mit dem aktuellen LLM-Design ist das schwer zu überwinden
  • Beim Klick auf den Button "New database" passiert nichts

    • GitHub-Login wurde nicht verwendet, aber es bestand auch nicht die Absicht, die AI-Funktionen zu nutzen
    • Es besteht Enttäuschung darüber, dass ChatGPT zwingend erforderlich ist
    • Es gibt Unmut darüber, einen Local-First-Ansatz durch AI einzuschränken
  • Sehr beeindruckend

  • Es wird angemerkt, dass eine Nutzung ohne AI-Funktionen wünschenswert wäre

    • Es wird gefragt, ob der WASM-Build Postgres als eingebettete DB nutzbar macht
  • Das Tool wird als große Hilfe für das Datenbankdesign bewertet

    • Es wird gefragt, ob sich bestehende Datenbankschemata als Diagramm darstellen lassen
    • Eine Funktion, die mit dem Supabase-Migrationsstil oder mit Tools wie Flyway entwickelte Schemata als Diagramm darstellt, wäre in Unternehmensumgebungen sehr hilfreich
  • Gegenüber der Kombination von AI/LLM mit bestehenden Workflows bestand Skepsis, aber in diesem Fall wird es als in Ordnung bewertet

    • Das LLM ist nützlich, um Daten zu erzeugen, die in die Datenbank eingefügt werden
    • Es ist nachvollziehbar, warum es auf Mobilgeräten nicht nutzbar ist, aber es wird darum gebeten, mobilen Nutzern Zusammenfassungen bereitzustellen
  • Ein Supabase-Ingenieur erwähnt, dass es Spaß gemacht habe, dieses Tool gemeinsam mit dem Electric-Team zu entwickeln

    • Dabei mussten technische Hürden überwunden werden
    • Das Tool soll unter Berücksichtigung des Feedbacks weiter verbessert werden
  • Es wird darauf hingewiesen, postgres.new auf einem Laptop oder Desktop zu verwenden

    • Es wird erwähnt, dass es keine Probleme mit WebKit/Safari gibt