Cohere RankerCompatible with Milvus 2.6.x
Cohere Ranker s'appuie sur les puissants modèles de reranking de Cohere pour améliorer la pertinence des recherches grâce au reranking sémantique. Il fournit des capacités de reranking de niveau entreprise avec une infrastructure API robuste et des performances optimisées pour les environnements de production.
Cohere Ranker est particulièrement utile pour les applications qui requièrent
Une compréhension sémantique de haute qualité avec des modèles de reranking de pointe
Une fiabilité et une évolutivité de niveau entreprise pour les charges de travail de production
Des capacités de reranking multilingues à travers divers types de contenu
Des performances API cohérentes avec une limitation de la vitesse et une gestion des erreurs intégrées.
Conditions préalables
Avant de mettre en œuvre Cohere Ranker dans Milvus, assurez-vous que vous disposez des éléments suivants
une collection Milvus avec un champ
VARCHARcontenant le texte à reclasserUne clé API Cohere valide avec accès aux modèles de reranking. Inscrivez-vous sur la plateforme Cohere pour obtenir vos identifiants API. Vous pouvez soit :
Définir la variable d'environnement
COHERE_API_KEY, ouSpécifier la clé API directement dans le site
credentialde la configuration du ranker.
Créer une fonction Cohere Ranker
Pour utiliser Cohere Ranker dans votre application Milvus, créez un objet Function qui spécifie le mode de fonctionnement du reranking. Cette fonction sera transmise aux opérations de recherche Milvus pour améliorer le classement des résultats.
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
Paramètres spécifiques au classeur Cohere
Les paramètres suivants sont spécifiques au classeur Cohere :
Paramètre |
Nécessaire ? |
Description du paramètre |
Valeur / Exemple |
|---|---|---|---|
|
Oui |
Doit être défini sur |
|
|
Oui |
Le fournisseur de services de modèle à utiliser pour le reclassement. |
|
|
Oui |
Le modèle de reranking Cohere à utiliser parmi les modèles pris en charge sur la plateforme Cohere. Pour une liste des modèles de reclassement disponibles, se référer à la documentation Cohere. |
|
|
Oui |
Liste des chaînes de requête utilisées par le modèle de rerank pour calculer les scores de pertinence. Le nombre de chaînes de requête doit correspondre exactement au nombre de requêtes dans votre opération de recherche (même si vous utilisez des vecteurs de requête au lieu de texte), sinon une erreur sera signalée. |
["search query"] |
|
Non |
Étant donné que les services de modélisation peuvent ne pas traiter toutes les données en même temps, cette option définit la taille du lot pour l'accès au service de modélisation en plusieurs requêtes. |
|
|
Non |
Nombre maximal de tokens par document. Les documents longs seront automatiquement tronqués au nombre de tokens spécifié. |
|
|
Non |
Identifiant d'authentification pour l'accès aux services Cohere API. S'il n'est pas spécifié, le système recherchera la variable d'environnement |
"your-cohere-api-key" (votre clé d'accès à l'API Cohere) |
Pour les paramètres généraux partagés par tous les classeurs de modèles (par exemple, provider, queries), reportez-vous à la section Créer un classeur de modèles.
Appliquer à la recherche vectorielle standard
Pour appliquer Cohere Ranker à une recherche vectorielle 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