Voyage AI Ranker公测版
Voyage AI Ranker 利用 Voyage AI 的专业 Reranker,通过语义重排来提高搜索相关性。它提供了针对检索增强生成(RAG)和搜索应用程序优化的高性能重排功能。
Voyage AI Ranker 对于需要以下条件的应用程序特别有价值:
- 
通过专门为重排序任务训练的模型实现高级语义理解
 - 
针对生产工作负载进行优化推理的高性能处理
 - 
灵活的截断控制,用于处理不同长度的文档
 - 
不同模型变体(rerank-2、rerank-lite等)的微调性能
 
前提条件
在 Zilliz Cloud 中实现 Voyage AI Ranker之前,请确保您具备以下条件:
- 
一个 Zilliz Cloud Collection,其中包含一个
VARCHAR字段,该字段包含待重排序的文本 - 
一个有权限访问 Reranker 的有效 Voyage AI API 密钥。在 Voyage AI平台注册以获取您的 API 凭证。您可以选择以下方式之一:
- 
设置
VOYAGE_API_KEY环境变量,或者 - 
直接在 Ranker 配置中指定 API 密钥
 
 - 
 
创建一个Voyage AI Ranker 函数
要在您的 Zilliz Cloud 应用程序中使用 Voyage AI Ranker,请创建一个 Function(函数)对象,该对象指定重排序应如何操作。此函数将被传递给Zilliz Cloud 搜索操作,以增强结果排序。
from pymilvus import MilvusClient, Function, FunctionType
# Connect to your Milvus server
client = MilvusClient(
    uri="YOUR_CLUSTER_ENDPOINT"  # Replace with your Milvus server URI
)
# Configure Voyage AI Ranker
voyageai_ranker = Function(
    name="voyageai_semantic_ranker",        # Unique identifier for your ranker
    input_field_names=["document"],         # VARCHAR field containing text to rerank
    function_type=FunctionType.RERANK,      # Must be RERANK for reranking functions
    params={
        "reranker": "model",                # Enables model-based reranking
        "provider": "voyageai",             # Specifies Voyage AI as the service provider
        "model_name": "rerank-2.5",           # Voyage AI reranker to use
        "queries": ["renewable energy developments"], # Query text for relevance evaluation
        "max_client_batch_size": 128,       # Optional: batch size for model service requests (default: 128)
        "truncation": True,                 # Optional: enable input truncation (default: True)
        # "credential": "your-voyage-api-key" # Optional: if not set, uses VOYAGE_API_KEY env var
    }
)
Voyage AI Ranker 特有参数
以下参数是 Voyage AI Ranker 特有的:
参数  | 必选?  | 描述  | 值 / 示例  | 
|---|---|---|---|
  | 是  | 必须设置为   | 
  | 
  | 是  | 用于重排序的模型服务提供商。  | 
  | 
  | 是  | 要使用的 Voyage AI Reranker,来自Voyage AI 平台上支持的模型。 如需查看可用的 Reranker 列表,请参考 Voyage AI 文档。  | 
  | 
  | 是  | 重排序模型用来计算相关性得分的查询字符串列表。查询字符串的数量必须与搜索操作中的查询数量完全匹配(即使使用查询向量而非文本),否则将报错。  | ["search query"]  | 
  | 否  | 由于模型服务可能无法一次性处理所有数据,因此这里设置了在多次请求中访问模型服务的批量大小。  | 
  | 
  | 否  | 是否截断输入以满足查询和文档的“上下文长度限制”。 
  | 
  | 
  | 否  | 用于访问 Voyage AI API 服务的认证凭证。如果未指定,系统将查找   | "your-voyage-api-key"  | 
对于所有 Model Ranker 共享的通用参数(例如,provider、queries),请参考创建 Model Ranker。
在标准向量搜索中使用
要将 Voyage AI Ranker 应用于标准向量搜索:
- Python
 - Java
 - NodeJS
 - Go
 - cURL
 
# Execute search with Voyage AI reranker
results = client.search(
    collection_name="your_collection",
    data=["AI Research Progress", "What is AI"],  # Search queries
    anns_field="dense_vector",                   # Vector field to search
    limit=5,                                     # Number of results to return
    output_fields=["document"],                  # Include text field for reranking
    #  highlight-next-line
    ranker=voyageai_ranker,                     # Apply Voyage AI reranker
    consistency_level="Bounded"
)
// java
// nodejs
// go
# restful
在混合搜索中使用
Voyage AI Ranker 也可与混合搜索结合使用,以融合稠密和稀疏向量搜索:
- Python
 - Java
 - NodeJS
 - Go
 - cURL
 
from pymilvus import AnnSearchRequest
# Configure dense vector search
dense_search = AnnSearchRequest(
    data=["AI Research Progress", "What is AI"],
    anns_field="dense_vector",
    param={},
    limit=5
)
# Configure sparse vector search  
sparse_search = AnnSearchRequest(
    data=["AI Research Progress", "What is AI"],
    anns_field="sparse_vector", 
    param={},
    limit=5
)
# Execute hybrid search with Voyage AI reranker
hybrid_results = client.hybrid_search(
    collection_name="your_collection",
    [dense_search, sparse_search],              # Multiple search requests
    #  highlight-next-line
    ranker=voyageai_ranker,                    # Apply Voyage AI reranker to combined results
    limit=5,                                   # Final number of results
    output_fields=["document"]
)
// java
// nodejs
// go
# restful