Clasificador Voyage AICompatible with Milvus 2.6.x
El Voyage AI Ranker aprovecha los rerankers especializados de Voyage AI para mejorar la relevancia de la búsqueda a través del reranking semántico. Proporciona capacidades de reordenación de alto rendimiento optimizadas para aplicaciones de búsqueda y generación de recuperación aumentada (RAG).
Voyage AI Ranker es particularmente valioso para aplicaciones que requieren:
Comprensión semántica avanzada con modelos específicamente entrenados para tareas de reordenación.
Procesamiento de alto rendimiento con inferencia optimizada para cargas de trabajo de producción
Controles de truncamiento flexibles para manejar documentos de distintas longitudes
Rendimiento ajustado a distintas variantes del modelo (rerank-2, rerank-lite, etc.)
Requisitos previos
Antes de implementar Voyage AI Ranker en Milvus, asegúrese de que dispone de:
Una colección Milvus con un campo
VARCHARque contenga el texto que se va a clasificar.Una clave API Voyage AI válida con acceso a los rerankers. Regístrese en la plataforma de Voyage AI para obtener sus credenciales API. Puede:
Establecer la variable de entorno
VOYAGE_API_KEY, oEspecificar la clave API directamente en la configuración del ranker
Crear una función Voyage AI ranker
Para utilizar Voyage AI Ranker en su aplicación Milvus, cree un objeto Function que especifique cómo debe operar el reranking. Esta función se pasará a las operaciones de búsqueda de Milvus para mejorar la clasificación de los resultados.
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
Parámetros específicos de Voyage AI ranker
Los siguientes parámetros son específicos del clasificador Voyage AI:
Parámetro |
Obligatorio |
Descripción |
Valor / Ejemplo |
|---|---|---|---|
|
Sí |
Debe establecerse en |
|
|
Sí |
El proveedor de servicios de modelos que se utilizará para la reordenación. |
|
|
Sí |
El reranker de Voyage AI a utilizar de entre los modelos soportados en la plataforma Voyage AI. Para obtener una lista de los rerankers disponibles, consulte la documentación de Voyage AI. |
|
|
Sí |
Lista de cadenas de consulta utilizadas por el modelo rerank para calcular las puntuaciones de relevancia. El número de cadenas de consulta debe coincidir exactamente con el número de consultas en su operación de búsqueda (incluso cuando se utilizan vectores de consulta en lugar de texto), de lo contrario se informará de un error. |
["consulta de búsqueda"] |
|
No |
Dado que los servicios modelo pueden no procesar todos los datos a la vez, esto establece el tamaño del lote para acceder al servicio modelo en múltiples peticiones. |
|
|
No |
Si se trunca la entrada para satisfacer el "límite de longitud del contexto" en la consulta y los documentos.
|
|
|
No |
Credencial de autenticación para acceder a los servicios API de Voyage AI. Si no se especifica, el sistema buscará la variable de entorno |
"su-clave-api-voyage" |
Para conocer los parámetros generales compartidos por todos los clasificadores de modelos(por ejemplo, provider, queries), consulte Crear un clasificador de modelos.
Aplicar a la búsqueda vectorial estándar
Para aplicar Voyage AI Ranker a una búsqueda vectorial estándar:
# 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