Voyage AI RankerCompatible with Milvus 2.6.x
O Voyage AI Ranker aproveita os rerankers especializados do Voyage AI para aumentar a relevância da pesquisa por meio do reranking semântico. Ele fornece recursos de reranking de alto desempenho otimizados para geração aumentada de recuperação (RAG) e aplicativos de pesquisa.
O Voyage AI Ranker é particularmente valioso para aplicações que requerem:
Compreensão semântica avançada com modelos especificamente treinados para tarefas de classificação
Processamento de alto desempenho com inferência optimizada para cargas de trabalho de produção
Controlos de truncagem flexíveis para lidar com diversos comprimentos de documentos
Desempenho ajustado em diferentes variantes de modelo (rerank-2, rerank-lite, etc.)
Pré-requisitos
Antes de implementar o Voyage AI Ranker no Milvus, certifique-se de ter:
Uma coleção Milvus com um campo
VARCHARque contenha o texto a ser classificadoUma chave API válida do Voyage AI com acesso aos rerankers. Registe-se na plataforma da Voyage AI para obter as suas credenciais de API. Você pode:
Definir a variável de ambiente
VOYAGE_API_KEY, ouEspecificar a chave da API diretamente na configuração do classificador
Criar uma função do classificador do Voyage AI
Para utilizar o Voyage AI Ranker na sua aplicação Milvus, crie um objeto Function que especifique como o reranking deve funcionar. Esta função será transmitida às operações de pesquisa do Milvus para melhorar a classificação dos resultados.
from pymilvus import MilvusClient, Function, FunctionType
# Connect to your Milvus server
client = MilvusClient(
uri="http://localhost:19530" # 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
}
)
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.common.clientenum.FunctionType;
import io.milvus.v2.service.collection.request.CreateCollectionReq;
MilvusClientV2 client = new MilvusClientV2(ConnectConfig.builder()
.uri("http://localhost:19530")
.build());
CreateCollectionReq.Function ranker = CreateCollectionReq.Function.builder()
.functionType(FunctionType.RERANK)
.name("voyageai_semantic_ranker")
.inputFieldNames(Collections.singletonList("document"))
.param("reranker", "model")
.param("provider", "voyageai")
.param("model_name", "rerank-2.5")
.param("queries", "[\"renewable energy developments\"]")
.param("endpoint", "http://localhost:8080")
.param("max_client_batch_size", "128")
.param("truncation", "true")
.build();
// nodejs
// go
# restful
Parâmetros específicos do classificador do Voyage AI
Os parâmetros seguintes são específicos do classificador do Voyage AI:
Parâmetro |
Necessário? |
Descrição |
Valor / Exemplo |
|---|---|---|---|
|
Sim |
Tem de ser definido para |
|
|
Sim |
O fornecedor de serviços de modelos a utilizar para a reclassificação. |
|
|
Sim |
O reranker do Voyage AI a ser usado a partir dos modelos suportados na plataforma do Voyage AI. Para obter uma lista de rerankers disponíveis, consulte a documentação do Voyage AI. |
|
|
Sim |
Lista de cadeias de consulta utilizadas pelo modelo de classificação para calcular as pontuações de relevância. O número de cadeias de consulta tem de corresponder exatamente ao número de consultas na sua operação de pesquisa (mesmo quando utiliza vectores de consulta em vez de texto), caso contrário será comunicado um erro. |
["consulta de pesquisa"] |
|
Não |
Uma vez que os serviços modelo podem não processar todos os dados de uma só vez, isto define o tamanho do lote para aceder ao serviço modelo em vários pedidos. |
|
|
Não |
Se se deve truncar a entrada para satisfazer o "limite de comprimento do contexto" na consulta e nos documentos.
|
|
|
Não |
Credencial de autenticação para aceder aos serviços da API do Voyage AI. Se não for especificado, o sistema procurará a variável de ambiente |
"your-voyage-api-key" |
Para parâmetros gerais partilhados entre todos os classificadores de modelos (por exemplo, provider, queries), consulte Criar um classificador de modelos.
Aplicar à pesquisa vetorial padrão
Para aplicar o Voyage AI Ranker a uma pesquisa vetorial padrão:
# Execute search with Voyage AI reranker
results = client.search(
collection_name="your_collection",
data=[your_query_vector], # Replace with your query vector
anns_field="dense_vector", # Vector field to search
limit=5, # Number of results to return
output_fields=["document"], # Include text field for reranking
ranker=voyageai_ranker, # Apply Voyage AI reranker
consistency_level="Bounded"
)
import io.milvus.v2.common.ConsistencyLevel;
import io.milvus.v2.service.vector.request.SearchReq;
import io.milvus.v2.service.vector.response.SearchResp;
import io.milvus.v2.service.vector.request.data.EmbeddedText;
SearchReq searchReq = SearchReq.builder()
.collectionName("your_collection")
.data(Arrays.asList(new EmbeddedText("AI Research Progress"), new EmbeddedText("What is AI")))
.annsField("vector_field")
.limit(10)
.outputFields(Collections.singletonList("document"))
.functionScore(FunctionScore.builder()
.addFunction(ranker)
.build())
.consistencyLevel(ConsistencyLevel.BOUNDED)
.build();
SearchResp searchResp = client.search(searchReq);
// nodejs
// go
# restful