このプロジェクトは、sqlite-vecとTransformer.jsを使用して、ドキュメントのEmbedding生成からベクトルデータベースのインデクシングまでのすべての処理をブラウザ上で完結動作するサンプルです。
このプロジェクトはsql.jsでの実装をClaude 3.7 Sonnetを使ってsqlite-vecに移植したものです。
利用モデル:intfloat/multilingual-e5-large
emKdB SQLiteと「intfloat/multilingual-e5-large」を使っておすそ分けベクトル検索
- リポジトリをクローンします。
git clone https://github.com/nojaja/SQLite-Vec-Sample.git
- 必要な依存関係をインストールします。
npm install
- 開発サーバーを起動します。
npm start
- 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
- 外部ライブラリを使用せず、標準モジュールのみで実装する
- コードは適切にコメントを付け、読みやすく構造化する
- テキストボックスにテキストを入力します。
- 「ベクトル化」ボタンをクリックして、テキストをベクトル化します。
- 「INSERT」ボタンをクリックして、ベクトル化したデータをデータベースに挿入します。
- 「検索」ボタンをクリックして、データベースからベクトルデータを検索します。
- すべての処理がブラウザ上で完結するため、サーバーサイドの設定が不要です。
- SQLiteとTransformer.jsを組み合わせることで、高度なベクトル検索機能を簡単に実装できます。
- ブラウザの性能に依存するため、大規模なデータセットの処理には向いていません。
- WebAssemblyのサポートが必要です。
Licensed under the MIT License.