DashScope RankerCompatible with Milvus 2.6.x
DashScope 排名器可讓 Milvus 呼叫阿里雲 DashScope 的重新排序模型,根據語義相關性重新排列搜尋結果的順序。
先決條件
在使用 DashScope 排序器之前,請確保您具備以下條件:
一個包含「
VARCHAR」欄位的 Milvus 集合,該欄位需包含待重新排序的文字。一個有效的 DashScope API 金鑰。
可存取的 DashScope 重新排序模型,例如
gte-rerank-v2。
有關可用的重新排序模型及區域端點,請參閱「阿里雲 Model Studio 文本重新排序 API」。
設定憑證
Milvus 必須先取得您的 DashScope API 金鑰,才能向 DashScope 發出重新排序請求。您可以在milvus.yaml 中設定 API 金鑰,或透過環境變數進行設定。
選項 1:配置檔案
請將您的 API 金鑰儲存於milvus.yaml 中,並將 DashScope 重新排序提供者指向該憑證標籤。
# milvus.yaml
credential:
dashscope_apikey:
apikey: <YOUR_DASHSCOPE_API_KEY>
function:
rerank:
model:
providers:
ali:
credential: dashscope_apikey
# url: https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank
選項 2:環境變數
若milvus.yaml 中未配置相應的憑證,Milvus 可從以下環境變數讀取 DashScope API 金鑰:
變數 |
是否必填? |
說明 |
|---|---|---|
|
是 |
Milvus 服務用於呼叫阿里雲 DashScope 的 DashScope API 金鑰。 |
建立 DashScope 排序函式
若要使用 DashScope 排序器,請建立一個 Function 物件,並在其中指定 DashScope 重新排序模型及查詢文字。請使用 `provider: "ali" ` 進行 DashScope 重新排序。
from pymilvus import Function, FunctionType
dashscope_ranker = Function(
name="dashscope_semantic_ranker",
input_field_names=["document"],
function_type=FunctionType.RERANK,
params={
"reranker": "model",
"provider": "ali",
"model_name": "gte-rerank-v2",
"queries": ["renewable energy developments"],
"max_client_batch_size": 128,
"credential": "dashscope_apikey",
},
)
DashScope 排序器專屬參數
參數 |
是否必填? |
說明 |
值/範例 |
|---|---|---|---|
|
是 |
必須設定為 |
|
|
是 |
用於重新排序的模型服務提供者。對於 DashScope,請使用 |
|
|
是 |
要使用的 DashScope 重新排序模型。 |
|
|
是 |
重新排序模型用於計算相關性分數的查詢字串清單。查詢字串的數量必須與搜尋請求中的查詢數量相符。 |
|
|
否 |
每次請求傳送至模型服務的文件最大數量。 |
|
|
否 |
在 |
|
關於所有模型排名器共用的通用參數(例如provider 和queries ),請參閱「建立模型排名器」。
套用至標準向量搜尋
若要將 DashScope Ranker 套用至標準向量搜尋,請將排名器函式傳遞給search() 。
results = client.search(
collection_name="your_collection",
data=[your_query_vector],
anns_field="dense_vector",
limit=5,
output_fields=["document"],
ranker=dashscope_ranker,
consistency_level="Bounded",
)