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 VARCHAR contenente il testo da rerankizzare

  • Una 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, oppure

    • Specificare 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

reranker

Sì

Deve essere impostato su "model" per abilitare il reranking del modello.

"model"

provider

Sì

Il fornitore di servizi del modello da usare per il reranking.

"voyageai"

model_name

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.

"rerank-2.5"

queries

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

max_client_batch_size

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.

128 (predefinito)

truncation

No

Se troncare l'input per soddisfare il "limite di lunghezza del contesto" della query e dei documenti.

  • Se True, la query e i documenti saranno troncati per rientrare nel limite di lunghezza del contesto, prima di essere elaborati dal modello di reranker.

  • Se False, verrà sollevato un errore quando la query supera gli 8.000 token per rerank-2.5 e rerank-2.5-lite; i 4.000 token per rerank-2; i 2.000 token rerank-2-lite e rerank-1; e i 1.000 token per rerank-lite-1, o la somma del numero di token nella query e del numero di token in ogni singolo documento supera i 16.000 per rerank-2; gli 8.000 per rerank-2-lite e rerank-1; e i 4.000 per rerank-lite-1.

True (predefinito) o False

credential

No

Credenziale di autenticazione per l'accesso ai servizi API di Voyage AI. Se non viene specificata, il sistema cercherà la variabile d'ambiente VOYAGE_API_KEY.

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

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

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?