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ältEinen 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, oderGeben 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 |
|---|---|---|---|
|
Ja |
Muss auf |
|
|
Ja |
Der Modelldienstanbieter, der für das Reranking verwendet werden soll. |
|
|
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. |
|
|
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"] |
|
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. |
|
|
Nein |
Ob die Eingabe gekürzt werden soll, um die "Kontextlängenbegrenzung" für die Abfrage und die Dokumente zu erfüllen.
|
|
|
Keine |
Authentifizierungsnachweis für den Zugriff auf Voyage AI API-Dienste. Wenn nicht angegeben, sucht das System nach der Umgebungsvariablen |
"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.
Auf Standard-Vektorsuche anwenden
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