Astra 向量儲存
AstraVector 類別使用 DataStax Astra DB 提供向量搜尋功能。DataStax Astra DB 是建基於 Apache Cassandra 的雲端原生無伺服器數據庫。 它提供企業級容量及高可用性的向量搜尋功能。
建構函數選項建構函數選項 的直接連結
token:
string
Astra DB API 金鑰
endpoint:
string
Astra DB API 端點
keyspace?:
string
選填 keyspace 名稱
方法方法 的直接連結
createIndex()createindex 的直接連結
indexName:
string
要建立的索引名稱
dimension:
number
向量維度(必須與你的嵌入模型相符)
metric?:
'cosine' | 'euclidean' | 'dotproduct'
= cosine
相似度搜尋的距離度量(dotproduct 會對應至 dot_product)
upsert()upsert 的直接連結
indexName:
string
要 upsert 至其中的索引名稱
vectors:
number[][]
嵌入向量陣列
metadata?:
Record<string, any>[]
每個向量的 metadata
ids?:
string[]
選填向量 ID(如未提供則自動產生)
query()query 的直接連結
indexName:
string
要查詢的索引名稱
queryVector:
number[]
用於尋找相似向量的查詢向量
topK?:
number
= 10
要傳回的結果數目
filter?:
Record<string, any>
查詢的 metadata 篩選條件
includeVector?:
boolean
= false
是否在結果中包含向量
listIndexes()listindexes 的直接連結
傳回由索引名稱字串組成的陣列。
describeIndex()describeindex 的直接連結
indexName:
string
要描述的索引名稱
傳回:
interface IndexStats {
dimension: number
count: number
metric: 'cosine' | 'euclidean' | 'dotproduct'
}
deleteIndex()deleteindex 的直接連結
indexName:
string
要刪除的索引名稱
updateVector()updatevector 的直接連結
indexName:
string
包含該向量的索引名稱
id:
string
要更新的向量 ID
update:
object
包含向量及/或 metadata 變更的更新物件
number[]
Record<string, any>
deleteVector()deletevector 的直接連結
indexName:
string
包含該向量的索引名稱
id:
string
要刪除的向量 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 金鑰ASTRA_DB_ENDPOINT:你的 Astra DB API 端點