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