LanceDB : 基本機能 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 09/20/2023 (v0.2.6)
* 本ページは、lancedb の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
LanceDB : 基本機能
インストール
JavaScript
npm install vectordb
データベースに接続する方法
JavaScript
const lancedb = require("vectordb");
const uri = "data/sample-lancedb";
const db = await lancedb.connect(uri);
LanceDB はディレクトリをそれが (親ディレクトリを含めて) 存在しない場合には作成します。
uri のリマインダーが必要な場合、db.uri プロパティを使用します。
テーブルを作成する方法
JavaScript
const tb = await db.createTable("my_table",
data=[{"vector": [3.1, 4.1], "item": "foo", "price": 10.0},
{"vector": [5.9, 26.5], "item": "bar", "price": 20.0}])
注意 : テーブルが既に存在すれば、LanceDB はデフォルトでエラーを上げます。テーブルを上書きしたい場合には、mode=”overwrite” を createTable 関数に渡すことができます。
情報 : 内部的には、LanceDB は入力データを Apache Arrow テーブルに変換してそれを Lance 形式 でディスクに永続化します。
空のテーブルの作成
作成時にテーブルに挿入するデータを持たない場合があるかもしれません。この場合、空のテーブルを作成してスキーマを指定することができます。
Python
import pyarrow as pa
schema = pa.schema([pa.field("vector", pa.list_(pa.float32(), list_size=2))])
tbl = db.create_table("empty_table", schema=schema)
既存のテーブルをオープンする方法
ひとたび作成されれば、次のコードを使用してテーブルをオープンできます :
JavaScript
const tbl = await db.openTable("my_table");
テーブルの名前を忘れた場合、すべてのテーブル名のリストを常に取得することができます :
JavaScript
console.log(await db.tableNames());
テーブルにデータを追加する方法
テーブルが作成された後は、以下を使用してより多くのデータをそれに追加することができます :
JavaScript
await tbl.add([{vector: [1.3, 1.4], item: "fizz", price: 100.0},
{vector: [9.5, 56.2], item: "buzz", price: 200.0}])
(近似) 最近傍を検索する方法
クエリーを埋め込んだら、以下のコードを使用して最近傍を見つけることができます :
JavaScript
const query = await tbl.search([100, 100]).limit(2).execute();
テーブルから行を削除する方法
テーブルから行を削除するにはテーブル上で delete() メソッドを使用します。どの行を削除するか選択するには、メタデータカラム上で一致するフィルタを提供します。これはフィルタに一致する任意の数の行を削除できます。
JavaScript
await tbl.delete('item = "fizz"')
削除 (deletion) 述語は、検索時の where() 句と同じ式をサポートする SQL 式です。必要に応じて単純にも複雑にもすることができます。どのような式がサポートされるかは、SQL フィルタ セクションをご覧ください。
テーブルを削除する方法
テーブルを削除するためにデータベース上で drop_table() メソッドを使用します。
Python
db.drop_table("my_table")
以上