Voyage AI RankerCompatible with Milvus 2.6.x

Voyage AI Ranker s'appuie sur les rerankers spécialisés de Voyage AI pour améliorer la pertinence des recherches grâce au reranking sémantique. Il offre des capacités de reclassement de haute performance optimisées pour les applications de recherche et de génération augmentée de données (RAG).

Voyage AI Ranker est particulièrement utile pour les applications qui requièrent

  • Une compréhension sémantique avancée avec des modèles spécifiquement entraînés pour les tâches de reranking

  • Un traitement haute performance avec une inférence optimisée pour les charges de travail de production

  • Des contrôles de troncature flexibles pour gérer différentes longueurs de documents

  • Des performances finement ajustées à travers différentes variantes de modèles (rerank-2, rerank-lite, etc.).

Conditions préalables

Avant de mettre en œuvre Voyage AI Ranker dans Milvus, assurez-vous d'avoir :

  • Une collection Milvus avec un champ VARCHAR contenant le texte à reranker

  • Une clé API Voyage AI valide avec accès aux rerankers. Inscrivez-vous sur la plateforme de Voyage AI pour obtenir vos identifiants API. Vous pouvez soit :

    • définir la variable d'environnement VOYAGE_API_KEY, ou

    • Spécifier la clé API directement dans la configuration du ranker.

Créer une fonction Voyage AI Ranker

Pour utiliser Voyage AI Ranker dans votre application Milvus, créez un objet Function qui spécifie comment le reranking doit fonctionner. 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 Voyage AI Ranker
voyageai_ranker = Function(
    name="voyageai_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": "voyageai",             # Specifies Voyage AI as the service provider
        "model_name": "rerank-2.5",           # Voyage AI reranker 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)
        "truncation": True,                 # Optional: enable input truncation (default: True)
        # "credential": "your-voyage-api-key" # Optional: if not set, uses VOYAGE_API_KEY env var
    }
)
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("voyageai_semantic_ranker")
                       .inputFieldNames(Collections.singletonList("document"))
                       .param("reranker", "model")
                       .param("provider", "voyageai")
                       .param("model_name", "rerank-2.5")
                       .param("queries", "[\"renewable energy developments\"]")
                       .param("endpoint", "http://localhost:8080")
                       .param("max_client_batch_size", "128")
                       .param("truncation", "true")
                       .build();
// nodejs
// go
# restful

Paramètres spécifiques au classeur de Voyage AI

Les paramètres suivants sont spécifiques au classeur Voyage AI :

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.

"voyageai"

model_name

Oui

Le reranker de Voyage AI à utiliser parmi les modèles pris en charge sur la plateforme Voyage AI.

Pour une liste des rerankers disponibles, se référer à la documentation de Voyage AI.

"rerank-2.5"

queries

Oui

Liste des chaînes de requête utilisées par le modèle de reranking 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)

truncation

Non

Indique s'il faut tronquer l'entrée pour satisfaire à la "limite de longueur du contexte" de la requête et des documents.

  • Si True, la requête et les documents seront tronqués pour respecter la limite de longueur du contexte, avant d'être traités par le modèle reranker.

  • Si False, une erreur est levée lorsque la requête dépasse 8 000 tokens pour rerank-2.5 et rerank-2.5-lite; 4 000 tokens pour rerank-2; 2 000 tokens pour rerank-2-lite et rerank-1; et 1 000 tokens pour rerank-lite-1, ou lorsque la somme du nombre de tokens dans la requête et du nombre de tokens dans un seul document dépasse 16 000 pour rerank-2; 8 000 pour rerank-2-lite et rerank-1; et 4 000 pour rerank-lite-1.

True (par défaut) ou False

credential

Non

Certificat d'authentification pour accéder aux services de l'API de Voyage AI. S'il n'est pas spécifié, le système recherchera la variable d'environnement VOYAGE_API_KEY.

"your-voyage-api-key" (votre clé d'accès à l'API de Voyage)

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 Voyage AI Ranker à une recherche vectorielle standard :

# Execute search with Voyage AI reranker
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=voyageai_ranker,                     # Apply Voyage AI reranker
    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("your_collection")
        .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 ?