跳到主要内容
版本:v3.0.x

DashScope Ranker

DashScope Ranker 支持 Milvus 调用 Alibaba Cloud DashScope reranking 模型,按语义相关性对搜索结果 Reranking。

Prerequisites

在使用 DashScope Ranker 前,请确保你已具备:

  • 一个 Milvus Collection,其中包含用于 rerank 的文本的 VARCHAR 字段。

  • 有效的 DashScope API key。

  • 可访问 DashScope reranking model,例如 gte-rerank-v2

有关可用的 rerank models 和区域 endpoints,请参阅 Alibaba Cloud Model Studio Text Rerank API

Configure credentials

在 Milvus 向 DashScope 请求 Reranking 之前,Milvus 必须知道你的 DashScope API key。你可以在 milvus.yaml 中配置 API key,也可以通过环境变量进行配置。

选项 1:Configuration file

将 API key 存储在 milvus.yaml 中,并将 DashScope rerank provider 指向该凭证标签。

YAML
# 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

Option 2: Environment variable

如果在 milvus.yaml 中未配置匹配的凭据,Milvus 可以从以下环境变量读取 DashScope API key:

变量

是否必需?

说明

MILVUS_DASHSCOPE_API_KEY

Milvus 服务调用 Alibaba Cloud DashScope 时使用的 DashScope API key。

Create a DashScope ranker function

要使用 DashScope Ranker,请创建一个 Function 对象,用于指定 DashScope reranking model 和查询文本。对于 DashScope reranking,请使用 provider: "ali"

Python
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 ranker-specific parameters

参数

是否必需

说明

值 / 示例

reranker

必须设置为 "model",以启用模型 reranking。

"model"

provider

用于 reranking 的模型服务提供方。对于 DashScope,请使用 "ali"

"ali"

model_name

要使用的 DashScope reranking 模型。

"gte-rerank-v2"

queries

查询字符串列表,rerank 模型会使用这些字符串计算相关性分数。查询字符串的数量必须与 search 请求中的 query 数量一致。

["renewable energy developments"]

max_client_batch_size

每次请求发送到模型服务的最大文档数。

128 (默认值)

credential

milvus.yaml 顶层 credential: 部分中定义的 credential 标签。

"dashscope_apikey"

有关所有模型 ranker 共享的通用参数(例如 providerqueries),请参阅 创建模型 ranker

要将 DashScope Ranker 应用于标准向量搜索,请将 ranker Function 传入 search()

Python
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",
)