DashScope RankerCompatible with Milvus 2.6.x

DashScope 排名器允许 Milvus 调用阿里云 DashScope 重新排序模型,根据语义相关性对搜索结果进行重新排序。

先决条件

在使用 DashScope 排序器之前,请确保您具备以下条件:

  • 一个包含VARCHAR 字段的Milvus Collection,该字段中包含待重新排序的文本。

  • 一个有效的 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 SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?