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
VARCHARcontenant le texte à rerankerUne 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, ouSpé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 |
|---|---|---|---|
|
Oui |
Doit être défini sur |
|
|
Oui |
Le fournisseur de services de modèle à utiliser pour le reclassement. |
|
|
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. |
|
|
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"] |
|
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 |
Indique s'il faut tronquer l'entrée pour satisfaire à la "limite de longueur du contexte" de la requête et des documents.
|
|
|
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 |
"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.
Appliquer à la recherche vectorielle standard
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