跳至主要內容

Astra 向量儲存

AstraVector 類別使用 DataStax Astra DB 提供向量搜尋;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>[]
每個向量的中繼資料

ids?:

string[]
選用的向量 ID(未提供時會自動產生)

query()
「query」的直接連結

indexName:

string
要查詢的索引名稱

queryVector:

number[]
用於尋找相似向量的查詢向量

topK?:

number
= 10
要傳回的結果數量

filter?:

Record<string, any>
查詢的中繼資料篩選條件

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
包含向量及/或中繼資料變更的更新物件
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 端點