Magasin de vecteurs Pinecone
La classe PineconeVector fournit une interface avec la base de données vectorielle de Pinecone. Elle permet la recherche vectorielle en temps réel, avec des fonctionnalités telles que la recherche hybride, le filtrage de métadonnées et la gestion des espaces de noms.
Options du constructeurLien direct vers Options du constructeur
Le constructeur accepte toutes les options de configuration de Pinecone, ainsi que des champs propres à Mastra.
id:
apiKey:
controllerHostUrl?:
additionalHeaders?:
sourceTag?:
cloud?:
region?:
MéthodesLien direct vers Méthodes
createIndex()Lien direct vers createindex
indexName:
dimension:
metric?:
upsert()Lien direct vers upsert
indexName:
vectors:
sparseVectors?:
metadata?:
ids?:
namespace?:
query()Lien direct vers query
indexName:
queryVector:
sparseVector?:
topK?:
filter?:
includeVector?:
namespace?:
listIndexes()Lien direct vers listindexes
Renvoie un tableau de noms d'index sous forme de chaînes.
describeIndex()Lien direct vers describeindex
indexName:
Renvoie :
interface IndexStats {
dimension: number
count: number
metric: 'cosine' | 'euclidean' | 'dotproduct'
}
deleteIndex()Lien direct vers deleteindex
indexName:
updateVector()Lien direct vers updatevector
Met à jour un seul vecteur par ID ou par filtre de métadonnées. Vous devez fournir id ou filter, mais pas les deux.
indexName:
id?:
filter?:
namespace?:
update:
update.vector?:
update.metadata?:
deleteVector()Lien direct vers deletevector
indexName:
id:
deleteVectors()Lien direct vers deletevectors
Supprime plusieurs vecteurs par ID ou par filtre de métadonnées. Vous devez fournir ids ou filter, mais pas les deux.
indexName:
ids?:
filter?:
namespace?:
Types de réponseLien direct vers Types de réponse
Les résultats de requête sont renvoyés dans ce format :
interface QueryResult {
id: string
score: number
metadata: Record<string, any>
vector?: number[] // Only included if includeVector is true
}
Gestion des erreursLien direct vers Gestion des erreurs
Le magasin lève des erreurs typées qui peuvent être interceptées :
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
}
}
Variables d'environnementLien direct vers Variables d'environnement
Variables d'environnement requises :
PINECONE_API_KEY: votre clé d'API Pinecone
Recherche hybrideLien direct vers Recherche hybride
Pinecone prend en charge la recherche hybride en combinant des vecteurs denses et creux. Pour utiliser la recherche hybride :
- Créez un index avec
metric: 'dotproduct' - Lors de l'upsert, fournissez des vecteurs creux avec le paramètre
sparseVectors - Lors de la requête, fournissez un vecteur creux avec le paramètre
sparseVector