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_API_KEY

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 排序器專屬參數

參數

是否必填?

說明

值/範例

reranker

必須設定為"model" ,才能啟用模型重新排序。

"model"

provider

用於重新排序的模型服務提供者。對於 DashScope,請使用"ali"

"ali"

model_name

要使用的 DashScope 重新排序模型。

"gte-rerank-v2"

queries

重新排序模型用於計算相關性分數的查詢字串清單。查詢字串的數量必須與搜尋請求中的查詢數量相符。

["renewable energy developments"]

max_client_batch_size

每次請求傳送至模型服務的文件最大數量。

128 (預設)

credential

milvus.yaml 的頂層credential: 區段中定義的憑證標籤。

"dashscope_apikey"

關於所有模型排名器共用的通用參數(例如providerqueries ),請參閱「建立模型排名器」。

若要將 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",
)

翻譯者DeepL

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?