跳到主要内容

Astra Vector 存储

AstraVector 类使用 DataStax Astra DB 提供 Vector 搜索。DataStax Astra DB 是一款基于 Apache Cassandra 构建的云原生无服务器数据库。 它提供企业级容量和高可用性的 Vector 搜索功能。

构造函数选项
构造函数选项的直接链接

token:

string
用于访问 Astra DB 的 API token

endpoint:

string
Astra DB API endpoint 地址

keyspace?:

string
可选的 keyspace 名称

方法
方法的直接链接

createIndex()
createindex的直接链接

indexName:

string
要创建的索引名称

dimension:

number
Vector 维度(必须与 embedding 模型匹配)

metric?:

'cosine' | 'euclidean' | 'dotproduct'
= cosine
相似度搜索的距离度量(dotproduct 映射到 dot_product)

upsert()
upsert的直接链接

indexName:

string
要执行 upsert 的索引名称

vectors:

number[][]
embedding Vector 数组

metadata?:

Record<string, any>[]
每个 Vector 的元数据

ids?:

string[]
可选的 Vector ID(未提供时自动生成)

query()
query的直接链接

indexName:

string
要查询的索引名称

queryVector:

number[]
用于查找相似 Vector 的查询 Vector

topK?:

number
= 10
要返回的结果数量

filter?:

Record<string, any>
查询的元数据过滤条件

includeVector?:

boolean
= false
是否在结果中包含 Vector

listIndexes()
listindexes的直接链接

返回由索引名称字符串组成的数组。

describeIndex()
describeindex的直接链接

indexName:

string
要描述的索引名称

返回:

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

deleteIndex()
deleteindex的直接链接

indexName:

string
要删除的索引名称

updateVector()
updatevector的直接链接

indexName:

string
包含该 Vector 的索引名称

id:

string
要更新的 Vector ID

update:

object
包含 Vector 和/或元数据变更的更新对象
number[]
Record<string, any>

deleteVector()
deletevector的直接链接

indexName:

string
包含该 Vector 的索引名称

id:

string
要删除的 Vector ID

响应类型
响应类型的直接链接

查询结果按以下格式返回:

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

环境变量
环境变量的直接链接

必需的环境变量:

  • ASTRA_DB_TOKEN:你的 Astra DB API token
  • ASTRA_DB_ENDPOINT:你的 Astra DB API endpoint