Voyage AI RankerCompatible with Milvus 2.6.x
Voyage AI Ranker sfrutta i reranker specializzati di Voyage AI per migliorare la rilevanza delle ricerche attraverso il reranking semantico. Fornisce funzionalità di reranking ad alte prestazioni ottimizzate per applicazioni di retrieval-augmented generation (RAG) e di ricerca.
Voyage AI Ranker è particolarmente utile per le applicazioni che richiedono:
Comprensione semantica avanzata con modelli specificamente addestrati per le attività di reranking.
Elaborazione ad alte prestazioni con inferenza ottimizzata per i carichi di lavoro di produzione
Controlli di troncamento flessibili per gestire documenti di lunghezza diversa
Prestazioni ottimizzate per le diverse varianti del modello (rerank-2, rerank-lite, ecc.).
Prerequisiti
Prima di implementare Voyage AI Ranker in Milvus, assicurarsi di disporre di:
una raccolta Milvus con un campo
VARCHARcontenente il testo da rerankizzareUna chiave API Voyage AI valida con accesso ai reranker. Registrarsi sulla piattaforma di Voyage AI per ottenere le credenziali API. È possibile scegliere tra:
Impostare la variabile d'ambiente
VOYAGE_API_KEY, oppureSpecificare la chiave API direttamente nella configurazione del ranker.
Creare una funzione ranker di Voyage AI
Per utilizzare Voyage AI Ranker nella vostra applicazione Milvus, create un oggetto Function che specifichi come deve funzionare il 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 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
Parametri specifici del ranker di Voyage AI
I seguenti parametri sono specifici del ranker Voyage AI:
Parametro |
Richiesto? |
Descrizione |
Valore / Esempio |
|---|---|---|---|
|
Sì |
Deve essere impostato su |
|
|
Sì |
Il fornitore di servizi del modello da usare per il reranking. |
|
|
Sì |
Il reranker di Voyage AI da utilizzare tra i modelli supportati sulla piattaforma Voyage AI. Per un elenco dei reranker disponibili, consultare la documentazione di Voyage AI. |
|
|
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 utilizzano 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 |
Se troncare l'input per soddisfare il "limite di lunghezza del contesto" della query e dei documenti.
|
|
|
No |
Credenziale di autenticazione per l'accesso ai servizi API di Voyage AI. Se non viene specificata, il sistema cercherà la variabile d'ambiente |
"your-voyage-api-key" |
Per i parametri generali condivisi da tutti i classificatori di modelli (ad esempio, provider, queries), fare riferimento a Creare un classificatore di modelli.
Applicare alla ricerca vettoriale standard
Per applicare Voyage AI Ranker a una ricerca vettoriale 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