Aller au contenu principal

Stockage vectoriel Astra

La classe AstraVector fournit une recherche vectorielle à l'aide de DataStax Astra DB, une base de données cloud-native et serverless fondée sur Apache Cassandra. Elle offre des capacités de recherche vectorielle adaptées aux entreprises et une haute disponibilité.

Options du constructeur
Lien direct vers Options du constructeur

token:

string
Jeton de l'API Astra DB

endpoint:

string
Endpoint de l'API Astra DB

keyspace?:

string
Nom facultatif du keyspace

Méthodes
Lien direct vers Méthodes

createIndex()
Lien direct vers createindex

indexName:

string
Nom de l'index à créer

dimension:

number
Dimension du vecteur (doit correspondre à votre modèle d'embedding)

metric?:

'cosine' | 'euclidean' | 'dotproduct'
= cosine
Métrique de distance pour la recherche par similarité (correspond à dot_product pour dotproduct)

upsert()
Lien direct vers upsert

indexName:

string
Nom de l'index dans lequel effectuer l'upsert

vectors:

number[][]
Tableau de vecteurs d'embedding

metadata?:

Record<string, any>[]
Métadonnées de chaque vecteur

ids?:

string[]
Identifiants facultatifs des vecteurs (générés automatiquement s'ils ne sont pas fournis)

query()
Lien direct vers query

indexName:

string
Nom de l'index à interroger

queryVector:

number[]
Vecteur de requête permettant de trouver des vecteurs similaires

topK?:

number
= 10
Nombre de résultats à renvoyer

filter?:

Record<string, any>
Filtres de métadonnées de la requête

includeVector?:

boolean
= false
Indique si les vecteurs doivent être inclus dans les résultats

listIndexes()
Lien direct vers listindexes

Renvoie un tableau de noms d'index sous forme de chaînes.

describeIndex()
Lien direct vers describeindex

indexName:

string
Nom de l'index à décrire

Renvoie :

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

deleteIndex()
Lien direct vers deleteindex

indexName:

string
Nom de l'index à supprimer

updateVector()
Lien direct vers updatevector

indexName:

string
Nom de l'index contenant le vecteur

id:

string
Identifiant du vecteur à mettre à jour

update:

object
Objet de mise à jour contenant les modifications du vecteur ou des métadonnées, ou les deux
number[]
Record<string, any>

deleteVector()
Lien direct vers deletevector

indexName:

string
Nom de l'index contenant le vecteur

id:

string
Identifiant du vecteur à supprimer

Types de réponse
Lien 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
}

Gestion des erreurs
Lien direct vers Gestion des erreurs

Le stockage 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'environnement
Lien direct vers Variables d'environnement

Variables d'environnement requises :

  • ASTRA_DB_TOKEN : votre jeton de l'API Astra DB
  • ASTRA_DB_ENDPOINT : votre endpoint de l'API Astra DB