Classificatore CohereCompatible with Milvus 2.6.x

Cohere Ranker sfrutta i potenti modelli di rerank di Cohere per migliorare la rilevanza delle ricerche attraverso il reranking semantico. Offre funzionalità di reranking di livello aziendale con una solida infrastruttura API e prestazioni ottimizzate per gli ambienti di produzione.

Cohere Ranker è particolarmente utile per le applicazioni che richiedono:

  • comprensione semantica di alta qualità con modelli di reranking all'avanguardia

  • Affidabilità e scalabilità di livello enterprise per i carichi di lavoro di produzione

  • Funzionalità di reranking multilingue per diversi tipi di contenuto

  • Prestazioni API coerenti con limitazione della velocità e gestione degli errori integrate.

Prerequisiti

Prima di implementare Cohere Ranker in Milvus, assicurarsi di disporre di:

  • una raccolta Milvus con un campo VARCHAR contenente il testo da rerankizzare

  • Una chiave API Cohere valida con accesso ai modelli di reranking. Registrarsi sulla piattaforma di Cohere per ottenere le credenziali API. È possibile scegliere tra:

    • Impostare la variabile d'ambiente COHERE_API_KEY, oppure

    • Specificare la chiave API direttamente nel sito credential della configurazione del ranker.

Creare una funzione ranker di Cohere

Per utilizzare Cohere Ranker nella propria applicazione Milvus, si deve creare un oggetto Function che specifichi il funzionamento del reranking. Questa funzione verrà passata alle operazioni di ricerca di Milvus per migliorare la classificazione dei risultati.

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

Parametri specifici di Cohere ranker

I seguenti parametri sono specifici del ranker Cohere:

Parametro

Richiesto?

Descrizione

Valore / Esempio

reranker

Sì

Deve essere impostato su "model" per abilitare il reranking del modello.

"model"

provider

Sì

Il fornitore di servizi del modello da usare per il reranking.

"cohere"

model_name

Sì

Il modello di reranking Cohere da utilizzare tra i modelli supportati dalla piattaforma Cohere.

Per un elenco dei modelli di reranking disponibili, consultare la documentazione di Cohere.

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

queries

Sì

Elenco delle stringhe di query utilizzate dal modello di rerank per calcolare i punteggi di rilevanza. Il numero di stringhe di query deve corrispondere esattamente al numero di query dell'operazione di ricerca (anche quando si usano vettori di query al posto del testo), altrimenti verrà segnalato un errore.

["query di ricerca"]

max_client_batch_size

No

Poiché i servizi modello non possono elaborare tutti i dati in una sola volta, si imposta la dimensione del batch per accedere al servizio modello in più richieste.

128 (predefinito)

max_tokens_per_doc

No

Numero massimo di token per documento. I documenti lunghi saranno automaticamente troncati al numero di token specificato.

4096 (predefinito)

credential

No

Credenziale di autenticazione per l'accesso ai servizi API di Cohere. Se non viene specificata, il sistema cercherà la variabile d'ambiente COHERE_API_KEY.

"your-cohere-api-key"

Per i parametri generali condivisi da tutti i ranker di modelli (ad esempio, provider, queries), fare riferimento a Creare un ranker di modelli.

Per applicare Cohere Ranker a una ricerca vettoriale standard:

# 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

Questa pagina è stata utile?