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アシスタント

  • PGliteとGPT-4oを組み合わせ、データベースに対する完全な権限を付与。
  • AIが複数の作業を連続して実行できるため、より人間らしい感覚になる。

CSVのインポートとエクスポート

  • CSVファイルをドラッグ&ドロップすると自動的にテーブルを作成。
  • AIがCSVのヘッダーとサンプル行を分析してデータ型を決定。
  • SQLエラーが発生すると、AIが自律的に修正を試みる。

チャート

  • メッセージに"chart"という単語を追加すると、AIが適切なクエリを実行してチャートを生成する。
  • Chart.jsを使ってチャートをレンダリングする。

ER図とマイグレーション

  • AIがCREATEおよびALTER文を生成し、実際のデータベースからER図を作成する。
  • ブラウザ互換版のpostgres-metaを使ってPGliteテーブルをJavaScriptに読み込み、スキーマ可視化ツールでレンダリングする。

セマンティック検索とRAG

  • pgvector拡張を使って、ブラウザ内でベクトル検索をサポートする。
  • Transformers.jsを使ってテキスト埋め込みを生成し、PGliteに保存・クエリする。
広告

デプロイ

  • PGliteデータベースをS3にデプロイし、低コストでさまざまなユースケースを支える計画。

PGliteの詳細分析

PGliteとは?

  • PGliteはPostgresのWASMビルドで、ブラウザ、Node.js、Bunで実行可能。
  • ユニットテスト、ローカル開発、リモート開発などに最適。

データ永続性

  • Nodeではネイティブファイルシステム、ブラウザではIndexedDBとOPFSをサポート。

拡張サポート

  • pgvectorliveのような有用な拡張をサポート。
広告

技術概要

  • 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図の生成、セマンティック検索など多様な機能を通じて、開発者にとって有用なツールになり得る。
  • 類似の機能を提供する他のプロジェクトには、SupabaseやElectricSQLなどがある。

3件のコメント

 
yangeok 2024-08-20

supabaseでしたね

 
GN⁺ 2024-08-14
Hacker Newsの意見
  • postgres.new を使って 3 つのデータベースを作成してみた体験を共有

    • 顧客注文データベース、課題追跡システム、家族関係モデルの作成に成功
    • 家族関係モデルでは、いとこや叔父を含む複雑な関係もうまく処理
    • 相互関係(例: 兄弟関係)が一部欠けていたが、データの見直しを依頼した後に修正された
    • とても有用なツールだと評価
  • AI の限界を示す技術デモだと評価

    • 無効な SQL を生成してエラーが発生
    • 生成された SQL が分断されたテーブル群を作成
    • すべてのコードをレビューする必要性に言及
    • 新しいシステムには抽象的またはスマートな要素が必要になることが多いが、このシステムは単純なシステムしか生成しない
    • 自分でコードを書くほうが簡単
    • 組織内で LLM のマージリクエストを禁止しており、コードは最適化されておらずバグも多かった
    • 現在の LLM の設計では克服が難しい
  • "New database" ボタンをクリックしても何も起こらない

    • GitHub にログインしていなかったが、そもそも AI 機能は使いたくなかった
    • ChatGPT が必須である点に失望
    • ローカルファーストのアプローチが AI に制限されていることへの不満
  • とても印象的

  • AI 機能なしでも使えるとよいという意見

    • WASM ビルドによって Postgres を組み込み DB として使えるようになるのか質問
  • このツールはデータベース設計に大いに役立つと評価

    • 既存のデータベーススキーマを図として描けるか質問
    • Supabase の migration スタイルや Flyway のようなツールで開発されたスキーマを図式化する機能は、企業環境で大きな助けになる
  • AI/LLM と既存ワークフローの結合には懐疑的だったが、このケースは悪くないと評価

    • LLM はデータベースに挿入するデータを生成するのに有用
    • モバイルで使えない理由は理解できるが、モバイルユーザー向けに要約情報を提供してほしいという要望
  • Supabase のエンジニアとして、Electric チームと一緒にこのツールを開発するのは楽しかったとコメント

    • 技術的な障害を乗り越える過程があった
    • フィードバックを反映しながら継続的に改善していく予定
  • ノートPCまたはデスクトップで postgres.new を使うよう案内

    • WebKit/Safari の利用には問題がないと言及