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 VARCHAR contendo o texto a ser ranqueado

  • Uma 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:

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

reranker

Sim

Tem de ser definido para "model" para permitir a reclassificação do modelo.

"model"

provider

Sim

O fornecedor de serviços de modelos a utilizar para a reclassificação.

"cohere"

model_name

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.

"rerank-english-v3.0", "rerank-multilingual-v3.0"

queries

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"]

max_client_batch_size

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.

128 (predefinição)

max_tokens_per_doc

Não

Número máximo de tokens por documento. Os documentos longos serão automaticamente truncados para o número especificado de tokens.

4096 (predefinição)

credential

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 COHERE_API_KEY.

"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.

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

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?