メインコンテンツへ移動

Pinecone ベクターストア

PineconeVector クラスは、Pinecone のベクトルデータベースへのインターフェースを提供します。 ハイブリッド検索、メタデータフィルタリング、名前空間管理などの機能を備えたリアルタイムのベクトル検索を提供します。

コンストラクターオプション
コンストラクターオプションへの直接リンク

コンストラクターは、すべての Pinecone 設定オプション に加え、Mastra 固有のフィールドを受け取ります。

id:

string
このベクターストアインスタンスの一意な識別子

apiKey:

string
Pinecone API キー

controllerHostUrl?:

string
カスタム Pinecone コントローラーホスト URL

additionalHeaders?:

Record<string, string>
リクエストに含める追加の HTTP ヘッダー

sourceTag?:

string
リクエスト追跡用のソースタグ

cloud?:

'aws' | 'gcp' | 'azure'
= aws
新しいインデックスを作成するクラウドプロバイダー

region?:

string
= us-east-1
新しいインデックスを作成するリージョン

メソッド
メソッドへの直接リンク

createIndex()
createindexへの直接リンク

indexName:

string
作成するインデックスの名前

dimension:

number
ベクトルの次元数(埋め込みモデルと一致させる必要があります)

metric?:

'cosine' | 'euclidean' | 'dotproduct'
= cosine
類似検索の距離メトリクス。ハイブリッド検索を使用する場合は 'dotproduct' を指定します。

upsert()
upsertへの直接リンク

indexName:

string
Pinecone インデックスの名前

vectors:

number[][]
密な埋め込みベクトルの配列

sparseVectors?:

{ indices: number[], values: number[] }[]
ハイブリッド検索用の疎ベクトルの配列。各ベクトルの indices 配列と values 配列の要素数は一致している必要があります。

metadata?:

Record<string, any>[]
各ベクトルのメタデータ

ids?:

string[]
任意のベクトル ID(指定しない場合は自動生成されます)

namespace?:

string
ベクトルを保存する任意の名前空間。異なる名前空間のベクトルは互いに分離されます。

query()
queryへの直接リンク

indexName:

string
検索するインデックスの名前

queryVector:

number[]
類似ベクトルを検索するための密なクエリベクトル

sparseVector?:

{ indices: number[], values: number[] }
ハイブリッド検索用の任意の疎ベクトル。indices 配列と values 配列の要素数は一致している必要があります。

topK?:

number
= 10
返す結果の数

filter?:

Record<string, any>
クエリに適用するメタデータフィルター

includeVector?:

boolean
= false
結果にベクトルを含めるかどうか

namespace?:

string
ベクトルを検索する任意の名前空間。指定した名前空間の結果のみを返します。

listIndexes()
listindexesへの直接リンク

インデックス名を文字列の配列として返します。

describeIndex()
describeindexへの直接リンク

indexName:

string
詳細を取得するインデックスの名前

戻り値:

interface IndexStats {
dimension: number
count: number
metric: 'cosine' | 'euclidean' | 'dotproduct'
}

deleteIndex()
deleteindexへの直接リンク

indexName:

string
削除するインデックスの名前

updateVector()
updatevectorへの直接リンク

ID またはメタデータフィルターで単一のベクトルを更新します。idfilter のどちらか一方だけを指定する必要があります。

indexName:

string
ベクトルを含むインデックスの名前

id?:

string
更新するベクトルの ID(filter と同時に指定できません)

filter?:

Record<string, any>
更新するベクトルを特定するメタデータフィルター(id と同時に指定できません)

namespace?:

string
更新操作に使用する任意の名前空間

update:

object
更新パラメーター

update.vector?:

number[]
更新後の新しいベクトル値

update.metadata?:

Record<string, any>
更新後の新しいメタデータ

deleteVector()
deletevectorへの直接リンク

indexName:

string
ベクトルを含むインデックスの名前

id:

string
削除するベクトルの ID

deleteVectors()
deletevectorsへの直接リンク

ID またはメタデータフィルターで複数のベクトルを削除します。idsfilter のどちらか一方だけを指定する必要があります。

indexName:

string
削除するベクトルを含むインデックスの名前

ids?:

string[]
削除するベクトル ID の配列(filter と同時に指定できません)

filter?:

Record<string, any>
削除するベクトルを特定するメタデータフィルター(ids と同時に指定できません)

namespace?:

string
削除操作に使用する任意の名前空間

レスポンス型
レスポンス型への直接リンク

クエリ結果は次の形式で返されます。

interface QueryResult {
id: string
score: number
metadata: Record<string, any>
vector?: number[] // Only included if includeVector is true
}

エラー処理
エラー処理への直接リンク

ストアはキャッチ可能な型付きエラーをスローします。

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
}
}

環境変数
環境変数への直接リンク

必須の環境変数:

  • PINECONE_API_KEY: Pinecone API キー

Pinecone は、密ベクトルと疎ベクトルを組み合わせたハイブリッド検索をサポートしています。ハイブリッド検索を使用する手順は次のとおりです。

  1. metric: 'dotproduct' を指定してインデックスを作成します
  2. upsert 時に sparseVectors パラメーターで疎ベクトルを指定します
  3. クエリ時に sparseVector パラメーターで疎ベクトルを指定します