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 VARCHAR que 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, o

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

reranker

Debe establecerse en "model" para habilitar la reordenación de modelos.

"model"

provider

El proveedor de servicios de modelos que se utilizará para la reordenación.

"voyageai"

model_name

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.

"rerank-2.5"

queries

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

max_client_batch_size

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.

128 (por defecto)

truncation

No

Si se trunca la entrada para satisfacer el "límite de longitud del contexto" en la consulta y los documentos.

  • Si True, la consulta y los documentos se truncarán para ajustarse al límite de longitud del contexto, antes de ser procesados por el modelo reranker.

  • Si False, se producirá un error cuando la consulta supere los 8.000 tokens para rerank-2.5 y rerank-2.5-lite; 4.000 tokens para rerank-2; 2.000 tokens rerank-2-lite y rerank-1; y 1.000 tokens para rerank-lite-1, o la suma del número de tokens de la consulta y el número de tokens de cualquier documento supere los 16.000 para rerank-2; 8.000 para rerank-2-lite y rerank-1; y 4.000 para rerank-lite-1.

True (por defecto) o False

credential

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

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

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

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?