15 puntos por GN⁺ 2024-08-14 | 3 comentarios | Compartir por WhatsApp
  • Un sandbox de Postgres que se ejecuta directamente en el navegador y ofrece soporte de IA
  • Permite crear al instante una cantidad ilimitada de bases de datos Postgres (pronto también se podrán desplegar en S3)
  • Cada base de datos se empareja con un modelo de lenguaje grande (LLM) para ofrecer varios casos de uso interesantes:
    • Crear tablas arrastrando y soltando archivos CSV
    • Generar y exportar informes
    • Crear gráficos
    • Elaborar diagramas de base de datos
  • Todo se realiza localmente dentro del navegador

Demo de uso

  • Cuando quieres consultar y visualizar rápidamente archivos CSV
  • Cuando quieres usar ChatGPT para escribir SQL y probarlo en una base de datos real
  • Cuando quieres planear un proyecto nuevo y dejar el diseño de la base de datos en manos de la IA

Cómo funciona

  • Todas las consultas se ejecutan dentro del navegador
  • Esto es posible gracias a PGlite, una versión WASM de Postgres que puede ejecutarse directamente en el navegador

Motivación de desarrollo

  1. Desarrollo impulsado por IA: replantea la interacción entre Postgres y la IA
  2. Sandboxing de Postgres: ejecución rápida y efímera en el navegador
  3. Bases de datos de bajo costo: potencial para ofrecer muchas bases de datos a un costo reducido

Funciones y funcionamiento

Asistente de IA

  • Empareja PGlite con GPT-4o para darle control total sobre la base de datos.
  • La IA puede realizar varias tareas de forma consecutiva, lo que le da una sensación más humana.

Importación y exportación de CSV

  • Crea tablas automáticamente al arrastrar y soltar archivos CSV.
  • La IA analiza los encabezados y filas de muestra del CSV para determinar los tipos de datos.
  • Si ocurre un error SQL, la IA intenta corregirlo por sí sola.

Gráficos

  • Si agregas la palabra "chart" en el mensaje, la IA ejecuta la consulta adecuada y genera un gráfico.
  • Usa Chart.js para renderizar los gráficos.

Diagramas ER y migraciones

  • La IA genera sentencias CREATE y ALTER para crear diagramas ER a partir de una base de datos real.
  • Usa una versión compatible con navegador de postgres-meta para cargar tablas de PGlite en JavaScript y renderizarlas con una herramienta de visualización de esquemas.

Búsqueda semántica y RAG

  • Soporta búsqueda vectorial dentro del navegador mediante la extensión pgvector.
  • Usa Transformers.js para generar embeddings de texto y almacenarlos y consultarlos en PGlite.

Despliegue

  • Planea desplegar bases de datos PGlite en S3 para soportar diversos casos de uso a bajo costo.

Análisis a fondo de PGlite

¿Qué es PGlite?

  • PGlite es una compilación WASM de Postgres que puede ejecutarse en el navegador, Node.js y Bun.
  • Es ideal para pruebas unitarias, desarrollo local y desarrollo remoto.

Persistencia de datos

  • En Node soporta el sistema de archivos nativo; en el navegador, IndexedDB y OPFS.

Soporte de extensiones

  • Soporta extensiones útiles como pgvector y live.

Resumen técnico

  • Se basa en el modo de usuario único de Postgres para hacerlo ejecutable en WASM.
  • Adapta varias funciones de Postgres para ajustarlas a WASM.

Próximamente

  • Planea desplegar bases de datos en S3 y hacerlas accesibles desde internet.
  • Agregará soporte para más formatos de archivo, uso compartido de bases de datos y exportación de bases de datos.

Código abierto

  • Todo el trabajo se ofrece como código abierto:
    • PGlite (Apache 2.0)
    • pg-gateway (MIT)
    • postgres-new (Apache 2.0)
    • transformers.js

Resumen de GN⁺

  • postgres.new es un sandbox de Postgres que corre en el navegador y facilita el trabajo con bases de datos mediante soporte de IA.
  • Con PGlite permite crear bases de datos rápidas y de bajo costo, además de ofrecer varias funciones impulsadas por IA.
  • Puede convertirse en una herramienta útil para desarrolladores gracias a funciones como visualización de datos, generación de diagramas ER y búsqueda semántica.
  • Otros proyectos con funciones similares incluyen Supabase y ElectricSQL.

3 comentarios

 
yangeok 2024-08-20

Era supabase.

 
GN⁺ 2024-08-14
Opiniones de Hacker News
  • Comparte su experiencia usando postgres.new para crear 3 bases de datos

    • Creó con éxito una base de datos de pedidos de clientes, un sistema de seguimiento de issues y un modelo de relaciones familiares
    • En el modelo de relaciones familiares, también manejó bien relaciones complejas, incluyendo primos y tíos
    • Faltaban algunas relaciones mutuas (por ejemplo, entre hermanos), pero se corrigieron después de pedir una revisión de los datos
    • Lo considera una herramienta muy útil
  • Lo considera una demo técnica que muestra las limitaciones de la IA

    • Generó SQL no válido y produjo errores
    • El SQL generado creó un conjunto de tablas desconectadas
    • Menciona la necesidad de revisar todo el código
    • Los sistemas nuevos a menudo necesitan elementos abstractos o inteligentes, pero este sistema solo genera sistemas simples
    • Es más fácil escribir el código directamente
    • En su organización prohibieron los merge requests hechos con LLM, porque el código no estaba optimizado y tenía muchos bugs
    • Con el diseño actual de los LLM, es difícil superar esto
  • Al hacer clic en el botón "New database" no pasa nada

    • No había iniciado sesión en GitHub, pero su intención era no usar la función de IA
    • Le decepciona que ChatGPT sea obligatorio
    • Le molesta que un enfoque local-first quede limitado por la IA
  • Muy impresionante

  • Opina que sería bueno poder usarlo sin funciones de IA

    • Pregunta si el build de WASM permite usar Postgres como base de datos embebida
  • Considera que esta herramienta ayuda mucho en el diseño de bases de datos

    • Pregunta si puede dibujar en diagramas un esquema de base de datos existente
    • Una función para representar en diagramas esquemas desarrollados con el estilo de migraciones de Supabase o herramientas como Flyway sería de gran ayuda en entornos empresariales
  • Era escéptico sobre combinar IA/LLM con flujos de trabajo existentes, pero considera que en este caso está bien

    • El LLM es útil para generar los datos que se insertarán en la base de datos
    • Entiende por qué no se puede usar en móvil, pero pide que se muestre información resumida para usuarios móviles
  • Como ingeniero de Supabase, menciona que fue divertido desarrollar esta herramienta junto con el equipo de Electric

    • Hubo un proceso para superar obstáculos técnicos
    • Planean seguir mejorándola incorporando feedback
  • Indican usar postgres.new en laptop o desktop

    • Mencionan que no hay problema al usar WebKit/Safari