Skip to content

nojaja/SQLite-Vec-Sample

Repository files navigation

SQLite-Vec-Sample

概要

このプロジェクトは、sqlite-vecTransformer.jsを使用して、ドキュメントのEmbedding生成からベクトルデータベースのインデクシングまでのすべての処理をブラウザ上で完結動作するサンプルです。

作成について

このプロジェクトはsql.jsでの実装をClaude 3.7 Sonnetを使ってsqlite-vecに移植したものです。

利用モデル:intfloat/multilingual-e5-large

参考記事

emKdB SQLiteと「intfloat/multilingual-e5-large」を使っておすそ分けベクトル検索

セットアップ手順

  1. リポジトリをクローンします。
    git clone https://github.com/nojaja/SQLite-Vec-Sample.git
  2. 必要な依存関係をインストールします。
    npm install
  3. 開発サーバーを起動します。
    npm start
  4. open browser
    http://localhost:8080
    

プログラムの仕様

機能

  • emKdBのsqlite-vec実装
  • Transformer.jsを使用して、テキストボックスに入力された値をベクトル化する
  • ベクトル化したデータをsqlite-vecにINSERTする
  • INSERTしたデータを検索する

実装詳細

  • DBはsqlite-vecを利用する
  • ドキュメントのEmbedding生成はTransformer.jsを利用する
  • sqlite-vecをブラウザ上で稼働させるためにはCodePen Home sqlite-vec wasm minimal demoを使う

利用モデル

  • intfloat/multilingual-e5-large

その他の要件

  • 外部ライブラリを使用せず、標準モジュールのみで実装する
  • コードは適切にコメントを付け、読みやすく構造化する

使用例と実行方法

  1. テキストボックスにテキストを入力します。
  2. 「ベクトル化」ボタンをクリックして、テキストをベクトル化します。
  3. 「INSERT」ボタンをクリックして、ベクトル化したデータをデータベースに挿入します。
  4. 「検索」ボタンをクリックして、データベースからベクトルデータを検索します。

利点と制限事項

利点

  • すべての処理がブラウザ上で完結するため、サーバーサイドの設定が不要です。
  • SQLiteとTransformer.jsを組み合わせることで、高度なベクトル検索機能を簡単に実装できます。

制限事項

  • ブラウザの性能に依存するため、大規模なデータセットの処理には向いていません。
  • WebAssemblyのサポートが必要です。

License

Licensed under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors