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 VARCHAR contenant le texte à reclasser

  • Une 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, ou

    • Spécifier la clé API directement dans le site credential de 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

reranker

Oui

Doit être défini sur "model" pour activer le reclassement des modèles.

"model"

provider

Oui

Le fournisseur de services de modèle à utiliser pour le reclassement.

"cohere"

model_name

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.

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

queries

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

max_client_batch_size

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.

128 (par défaut)

max_tokens_per_doc

Non

Nombre maximal de tokens par document. Les documents longs seront automatiquement tronqués au nombre de tokens spécifié.

4096 (par défaut)

credential

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

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

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

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?