15 points par GN⁺ 2024-08-14 | 3 commentaires | Partager sur WhatsApp
  • Un bac à sable Postgres exécuté directement dans le navigateur, avec prise en charge de l’IA
  • Possibilité de créer instantanément un nombre illimité de bases de données Postgres (déploiement sur S3 bientôt disponible)
  • Chaque base de données est associée à un grand modèle de langage (LLM), ce qui ouvre à divers cas d’usage intéressants :
    • Création de tables par glisser-déposer de fichiers CSV
    • Génération et export de rapports
    • Création de graphiques
    • Création de diagrammes de base de données
  • Toutes les opérations sont effectuées localement dans le navigateur

Démonstrations d’usage

  • Quand vous voulez interroger et visualiser rapidement un fichier CSV
  • Quand vous voulez utiliser ChatGPT pour écrire du SQL et l’exécuter sur une vraie base de données
  • Quand vous planifiez un nouveau projet et souhaitez confier la conception de la base de données à l’IA

Fonctionnement

  • Toutes les requêtes s’exécutent dans le navigateur
  • Cela est rendu possible par PGlite, une version WASM de Postgres qui peut s’exécuter directement dans le navigateur

Pourquoi ce projet

  1. Développement piloté par l’IA : repenser l’interaction entre Postgres et l’IA
  2. Sandboxing de Postgres : exécution rapide et éphémère dans le navigateur
  3. Base de données à bas coût : le potentiel de proposer de nombreuses bases à faible coût

Fonctionnalités et fonctionnement

Assistant IA

  • Association de PGlite et de GPT-4o pour donner à la base de données des autorisations complètes.
  • L’IA peut enchaîner plusieurs tâches, ce qui la rend plus naturelle à utiliser.

Import et export CSV

  • Création automatique de tables par glisser-déposer de fichiers CSV.
  • L’IA analyse les en-têtes et des lignes d’exemple du CSV pour déterminer les types de données.
  • En cas d’erreur SQL, l’IA tente de la corriger elle-même.

Graphiques

  • Si vous ajoutez le mot "chart" dans un message, l’IA exécute la requête appropriée et génère un graphique.
  • Les graphiques sont rendus avec Chart.js.

Diagrammes ER et migrations

  • L’IA génère des instructions CREATE et ALTER afin de produire des diagrammes ER à partir de la base de données réelle.
  • Une version compatible navigateur de postgres-meta est utilisée pour charger les tables PGlite en JavaScript, puis les afficher avec un outil de visualisation de schéma.

Recherche sémantique et RAG

  • Prise en charge de la recherche vectorielle dans le navigateur avec l’extension pgvector.
  • Utilisation de Transformers.js pour générer des embeddings de texte, puis les stocker et les interroger dans PGlite.

Déploiement

  • Prévoit de déployer les bases de données PGlite sur S3 afin de prendre en charge divers cas d’usage à faible coût.

Analyse approfondie de PGlite

Qu’est-ce que PGlite ?

  • PGlite est une build WASM de Postgres, capable de s’exécuter dans le navigateur, Node.js et Bun.
  • Idéal pour les tests unitaires, le développement local et le développement à distance.

Persistance des données

  • Sur Node, prise en charge du système de fichiers natif ; dans le navigateur, prise en charge d’IndexedDB et d’OPFS.

Prise en charge des extensions

  • Prise en charge d’extensions utiles comme pgvector et live.

Aperçu technique

  • Basé sur le mode mono-utilisateur de Postgres, ce qui permet son exécution dans WASM.
  • Diverses fonctionnalités de Postgres ont été adaptées pour WASM.

Bientôt disponible

  • Déploiement des bases de données sur S3 et accès via Internet à venir.
  • Ajout prévu de la prise en charge de davantage de formats de fichiers, du partage de bases de données et de l’export de bases de données.

Open source

  • Tout le travail est disponible en open source :
    • PGlite (Apache 2.0)
    • pg-gateway (MIT)
    • postgres-new (Apache 2.0)
    • transformers.js

Résumé de GN⁺

  • postgres.new est un bac à sable Postgres qui fonctionne dans le navigateur et permet d’effectuer facilement des tâches liées aux bases de données grâce à l’assistance de l’IA.
  • Avec PGlite, il devient possible de créer rapidement et à faible coût des bases de données, tout en profitant de diverses fonctionnalités pilotées par l’IA.
  • Visualisation de données, génération de diagrammes ER, recherche sémantique : autant de fonctions qui peuvent en faire un outil utile pour les développeurs.
  • Parmi les projets offrant des fonctionnalités similaires, on peut citer Supabase et ElectricSQL.

3 commentaires

 
yangeok 2024-08-20

C’était donc supabase.

 
GN⁺ 2024-08-14
Avis Hacker News
  • Partage d’expérience après avoir créé 3 bases de données avec postgres.new

    • A créé avec succès une base de données de commandes clients, un système de suivi des tickets et un modèle de relations familiales
    • Le modèle de relations familiales gère bien aussi les relations complexes, y compris les cousins et les oncles
    • Certaines relations réciproques (par ex. les liens entre frères et sœurs) manquaient, mais ont été corrigées après une demande de révision des données
    • L’outil est jugé très utile
  • Considéré comme une démo technique qui montre les limites de l’IA

    • Génère du SQL invalide, provoquant des erreurs
    • Le SQL généré crée un ensemble de tables déconnectées
    • Mention de la nécessité de relire tout le code
    • Les nouveaux systèmes demandent souvent des éléments abstraits ou intelligents, mais celui-ci ne génère que des systèmes simples
    • Écrire directement le code est plus facile
    • Les merge requests issues de LLM sont interdites dans l’organisation, car le code n’était pas optimisé et comportait beaucoup de bugs
    • Difficile à surmonter avec la conception actuelle des LLM
  • Aucun changement ne se produit en cliquant sur le bouton "New database"

    • La personne n’était pas connectée à Github, mais ne comptait de toute façon pas utiliser les fonctions d’IA
    • Déçue que chatGPT soit obligatoire
    • Mécontentement face à une approche local-first limitée par l’IA
  • Très impressionnant

  • Souhait qu’il soit possible de l’utiliser sans fonctions d’IA

    • Demande si le build WASM permet d’utiliser Postgres comme base de données embarquée
  • Cet outil est jugé très utile pour la conception de bases de données

    • Demande s’il est possible de représenter sous forme de diagramme un schéma de base de données existant
    • La possibilité de représenter en diagramme des schémas développés avec le style de migrations de Supabase ou avec des outils comme Flyway serait très utile en environnement d’entreprise
  • Initialement sceptique sur l’association de l’IA/LLM avec les workflows existants, mais juge que cela fonctionne plutôt bien dans ce cas

    • Le LLM est utile pour générer des données à insérer dans la base
    • Comprend pourquoi l’outil n’est pas utilisable sur mobile, mais demande qu’un résumé soit fourni aux utilisateurs mobiles
  • Un ingénieur de Supabase indique qu’il a été amusant de développer cet outil avec l’équipe d’Electric

    • Il y a eu un travail pour surmonter des obstacles techniques
    • L’outil continuera d’être amélioré en tenant compte des retours
  • Indication d’utiliser postgres.new sur ordinateur portable ou de bureau

    • Mention qu’il n’y a pas de problème particulier avec Webkit/Safari