Cohere RankerCompatible with Milvus 2.6.x
O Cohere Ranker aproveita os poderosos modelos de rerank do Cohere para aumentar a relevância da pesquisa por meio do reranking semântico. Ele fornece recursos de reranking de nível empresarial com uma infraestrutura de API robusta e desempenho otimizado para ambientes de produção.
O Cohere Ranker é particularmente valioso para aplicativos que exigem:
Compreensão semântica de alta qualidade com modelos de rerank de última geração
Confiabilidade e escalabilidade de nível empresarial para cargas de trabalho de produção
Recursos de reranking multilíngüe em diversos tipos de conteúdo
Desempenho consistente da API com limitação de taxa e tratamento de erros incorporados
Pré-requisitos
Antes de implementar o Cohere Ranker no Milvus, verifique se você tem:
Uma coleção do Milvus com um campo
VARCHARcontendo o texto a ser ranqueadoUma chave de API Cohere válida com acesso aos modelos de classificação. Inscreva-se na plataforma do Cohere para obter suas credenciais de API. Você pode:
Definir a variável de ambiente
COHERE_API_KEYouEspecificar a chave da API diretamente no site
credentialda configuração do classificador
Criar uma função do Cohere ranker
Para utilizar o Cohere Ranker na sua aplicação Milvus, crie um objeto Function que especifique a forma 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 Cohere Ranker
cohere_ranker = Function(
name="cohere_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": "cohere", # Specifies Cohere as the service provider
"model_name": "rerank-english-v3.0", # Cohere rerank model 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)
"max_tokens_per_doc": 4096, # Optional: max tokens per document (default: 4096)
# "credential": "your-cohere-api-key" # Optional: authentication credential for Cohere API
}
)
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("cohere_semantic_ranker")
.inputFieldNames(Collections.singletonList("document"))
.param("reranker", "model")
.param("provider", "cohere")
.param("model_name", "rerank-english-v3.0")
.param("queries", "[\"renewable energy developments\"]")
.param("endpoint", "http://localhost:8080")
.param("max_client_batch_size", "128")
.param("max_tokens_per_doc", "4096")
.build();
// nodejs
// go
# restful
Parâmetros específicos do classificador Cohere
Os parâmetros seguintes são específicos do classificador Cohere:
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 modelo de classificação hierárquica Cohere a ser usado entre os modelos compatíveis na plataforma Cohere. Para obter uma lista dos modelos de rerank disponíveis, consulte a documentação do Cohere. |
|
|
Sim |
Lista de cadeias de consulta usadas 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 |
Número máximo de tokens por documento. Os documentos longos serão automaticamente truncados para o número especificado de tokens. |
|
|
Não |
Credencial de autenticação para acessar os serviços de API Cohere. Se não for especificado, o sistema procurará a variável de ambiente |
"your-cohere-api-key" |
Para obter parâmetros gerais compartilhados em todos os classificadores de modelo (por exemplo, provider, queries), consulte Criar um classificador de modelo.
Aplicar à pesquisa de vetor padrão
Para aplicar o Cohere Ranker a uma pesquisa de vetor padrão:
# Execute search with Cohere reranking
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=cohere_ranker, # Apply Cohere reranking
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(COLLECTION_NAME)
.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