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
VARCHARcontenente il testo da rerankizzareUna 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, oppureSpecificare la chiave API direttamente nel sito
credentialdella 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 |
|---|---|---|---|
|
Sì |
Deve essere impostato su |
|
|
Sì |
Il fornitore di servizi del modello da usare per il reranking. |
|
|
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. |
|
|
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"] |
|
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. |
|
|
No |
Numero massimo di token per documento. I documenti lunghi saranno automaticamente troncati al numero di token specificato. |
|
|
No |
Credenziale di autenticazione per l'accesso ai servizi API di Cohere. Se non viene specificata, il sistema cercherà la variabile d'ambiente |
"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.
Applicare alla ricerca vettoriale standard
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