Cloudflare Vector Store
CloudflareVectorクラスは、Cloudflareのエッジネットワークと統合されたベクトルデータベースサービスであるCloudflare Vectorize を使用してベクトル検索を提供します。
コンストラクタオプション
accountId:
string
CloudflareアカウントのアカウントID
apiToken:
string
Vectorize権限を持つCloudflare APIトークン
メソッド
createIndex()
indexName:
string
作成するインデックスの名前
dimension:
number
ベクトルの次元数(埋め込みモデルと一致する必要があります)
metric?:
'cosine' | 'euclidean' | 'dotproduct'
= cosine
類似性検索の距離メトリック(dotproductはドット積に対応します)
upsert()
indexName:
string
アップサートするインデックスの名前
vectors:
number[][]
埋め込みベクトルの配列
metadata?:
Record<string, any>[]
各ベクトルのメタデータ
ids?:
string[]
オプションのベクトルID(指定しない場合は自動生成されます)
query()
indexName:
string
クエリを実行するインデックスの名前
queryVector:
number[]
類似ベクトルを検索するためのクエリベクトル
topK?:
number
= 10
返す結果の数
filter?:
Record<string, any>
クエリのメタデータフィルター
includeVector?:
boolean
= false
結果にベクトルを含めるかどうか
listIndexes()
インデックス名の文字列配列を返します。
describeIndex()
indexName:
string
説明するインデックスの名前
戻り値:
interface IndexStats {
dimension: number;
count: number;
metric: "cosine" | "euclidean" | "dotproduct";
}
deleteIndex()
indexName:
string
削除するインデックスの名前
createMetadataIndex()
フィルタリングを可能にするためにメタデータフィールドにインデックスを作成します。
indexName:
string
メタデータフィールドを含むインデックスの名前
propertyName:
string
インデックスを作成するメタデータフィールドの名前
indexType:
'string' | 'number' | 'boolean'
メタデータフィールドの型
deleteMetadataIndex()
メタデータフィールドからインデックスを削除します。
indexName:
string
メタデータフィールドを含むインデックスの名前
propertyName:
string
インデックスを削除するメタデータフィールドの名前
listMetadataIndexes()
インデックスのすべてのメタデータフィールドインデックスを一覧表示します。
indexName:
string
メタデータインデックスを一覧表示するインデックスの名前
updateVector()
インデックス内の特定のIDのベクトルまたはメタデータを更新します。
indexName:
string
更新するIDを含むインデックスの名前
id:
string
更新するベクトルまたはメタデータの一意の識別子
update:
{ vector?: number[]; metadata?: Record<string, any>; }
更新するベクトルやメタデータを含むオブジェクト
deleteVector()
インデックス内の特定のIDに対するベクトルとそれに関連するメタデータを削除します。
indexName:
string
削除するIDを含むインデックスの名前
id:
string
削除するベクトルとメタデータの一意の識別子
レスポンスタイプ
クエリ結果は以下の形式で返されます:
interface QueryResult {
id: string;
score: number;
metadata: Record<string, any>;
vector?: number[];
}
エラー処理
ストアは型付きエラーをスローし、それをキャッチすることができます:
try {
await store.query({
indexName: "index_name",
queryVector: queryVector,
});
} catch (error) {
if (error instanceof VectorStoreError) {
console.log(error.code); // 'connection_failed' | 'invalid_dimension' | etc
console.log(error.details); // Additional error context
}
}
環境変数
必要な環境変数:
CLOUDFLARE_ACCOUNT_ID
: あなたのCloudflareアカウントIDCLOUDFLARE_API_TOKEN
: Vectorize権限を持つCloudflare APIトークン