Voyage AI RankerCompatible with Milvus 2.6.x

Der Voyage AI Ranker nutzt die spezialisierten Reranker von Voyage AI zur Verbesserung der Suchrelevanz durch semantisches Reranking. Er bietet leistungsstarke Reranking-Funktionen, die für Retrieval-Augmented Generation (RAG) und Suchanwendungen optimiert sind.

Der Voyage AI Ranker ist besonders wertvoll für Anwendungen, die Folgendes erfordern

  • Fortschrittliches semantisches Verständnis mit speziell für Reranking-Aufgaben trainierten Modellen

  • Leistungsstarke Verarbeitung mit optimierter Inferenz für Produktions-Workloads

  • Flexible Trunkierungssteuerungen für den Umgang mit unterschiedlichen Dokumentenlängen

  • Feinabgestimmte Leistung über verschiedene Modellvarianten (rerank-2, rerank-lite, etc.)

Voraussetzungen

Bevor Sie Voyage AI Ranker in Milvus implementieren, müssen Sie sicherstellen, dass Sie über Folgendes verfügen

  • Eine Milvus-Sammlung mit einem VARCHAR -Feld, das den zu rankenden Text enthält

  • Einen gültigen Voyage AI API-Schlüssel mit Zugriff auf Reranker. Melden Sie sich auf der Plattform von Voyage AI an, um Ihre API-Anmeldedaten zu erhalten. Sie können entweder:

    • Setzen Sie die Umgebungsvariable VOYAGE_API_KEY, oder

    • Geben Sie den API-Schlüssel direkt in der Ranker-Konfiguration an

Erstellen Sie eine Voyage AI Ranker Funktion

Um den Voyage AI Ranker in Ihrer Milvus-Anwendung zu verwenden, erstellen Sie ein Function-Objekt, das angibt, wie das Ranking funktionieren soll. Diese Funktion wird an Milvus-Suchoperationen übergeben, um das Ergebnis-Ranking zu verbessern.

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

Voyage AI Ranker-spezifische Parameter

Die folgenden Parameter sind spezifisch für den Voyage AI Ranker:

Parameter

Erforderlich?

Beschreibung

Wert / Beispiel

reranker

Ja

Muss auf "model" gesetzt werden, um das Modell-Reranking zu aktivieren.

"model"

provider

Ja

Der Modelldienstanbieter, der für das Reranking verwendet werden soll.

"voyageai"

model_name

Ja

Der Voyage AI Reranker, der von den unterstützten Modellen auf der Voyage AI Plattform verwendet werden soll.

Eine Liste der verfügbaren Reranker finden Sie in der Voyage AI-Dokumentation.

"rerank-2.5"

queries

Ja

Liste der Abfrage-Strings, die vom Rerank-Modell zur Berechnung der Relevanz-Scores verwendet werden. Die Anzahl der Abfrage-Strings muss genau mit der Anzahl der Abfragen in Ihrem Suchvorgang übereinstimmen (auch bei Verwendung von Abfrage-Vektoren anstelle von Text), andernfalls wird ein Fehler gemeldet.

["Suchanfrage"]

max_client_batch_size

Nein

Da Modelldienste möglicherweise nicht alle Daten auf einmal verarbeiten, wird hier die Stapelgröße für den Zugriff auf den Modelldienst in mehreren Anfragen festgelegt.

128 (Voreinstellung)

truncation

Nein

Ob die Eingabe gekürzt werden soll, um die "Kontextlängenbegrenzung" für die Abfrage und die Dokumente zu erfüllen.

  • Wenn True, werden die Abfrage und die Dokumente so gekürzt, dass sie in die Kontextlängenbegrenzung passen, bevor sie vom Reranker-Modell verarbeitet werden.

  • Wenn False, wird ein Fehler ausgelöst, wenn die Abfrage 8.000 Token für rerank-2.5 und rerank-2.5-lite; 4.000 Token für rerank-2; 2.000 Token rerank-2-lite und rerank-1; und 1.000 Token für rerank-lite-1 überschreitet, oder die Summe der Anzahl der Token in der Abfrage und der Anzahl der Token in einem einzelnen Dokument 16.000 für rerank-2; 8.000 für rerank-2-lite und rerank-1; und 4.000 für rerank-lite-1 übersteigt.

True (Standard) oder False

credential

Keine

Authentifizierungsnachweis für den Zugriff auf Voyage AI API-Dienste. Wenn nicht angegeben, sucht das System nach der Umgebungsvariablen VOYAGE_API_KEY.

"ihr-voyage-api-schlüssel"

Für allgemeine Parameter, die von allen Model Rankern verwendet werden (z.B. provider, queries), siehe Erstellen eines Model Rankers.

So wenden Sie den Voyage AI Ranker auf eine Standard-Vektorsuche an:

# 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

War diese Seite hilfreich?