Magasin vectoriel Turbopuffer
La classe TurbopufferVector fournit une recherche vectorielle avec Turbopuffer, une base de données vectorielle hautes performances optimisée pour les applications RAG. Turbopuffer offre une recherche de similarité vectorielle rapide, des capacités de filtrage avancées et une gestion efficace du stockage.
Options du constructeurLien direct vers Options du constructeur
apiKey:
baseUrl?:
connectTimeout?:
connectionIdleTimeout?:
warmConnections?:
compression?:
consistency?:
schemaConfigForIndex?:
MéthodesLien direct vers Méthodes
createIndex()Lien direct vers createindex
indexName:
dimension:
metric?:
upsert()Lien direct vers upsert
vectors:
metadata?:
ids?:
query()Lien direct vers query
indexName:
queryVector:
topK?:
filter?:
includeVector?:
consistency?:
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?:
update:
deleteVector()Lien direct vers deletevector
indexName:
id:
deleteVectors()Lien direct vers deletevectors
Supprime plusieurs vecteurs par leurs ID ou par filtre de métadonnées. Vous devez fournir ids ou filter, mais pas les deux.
indexName:
ids?:
filter?:
Types de réponseLien direct vers Types de réponse
Les résultats de la 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
}
Configuration des schémasLien direct vers Configuration des schémas
L’option schemaConfigForIndex vous permet de définir des schémas explicites pour différents index :
schemaConfigForIndex: (indexName: string) => {
// Mastra's default embedding model and index for memory messages:
if (indexName === 'memory_messages_384') {
return {
dimensions: 384,
schema: {
thread_id: {
type: 'string',
filterable: true,
},
},
}
} else {
throw new Error(`TODO: add schema for index: ${indexName}`)
}
}
Gestion des erreursLien direct vers Gestion des erreurs
Le magasin lève des erreurs typées pouvant ê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
}
}