Clasificador CohereCompatible with Milvus 2.6.x

El Cohere Ranker aprovecha los poderosos modelos de rerank de Cohere para mejorar la relevancia de la búsqueda a través del reranking semántico. Proporciona capacidades de reranking de nivel empresarial con una sólida infraestructura API y un rendimiento optimizado para entornos de producción.

Cohere Ranker es particularmente valioso para aplicaciones que requieren:

  • Comprensión semántica de alta calidad con modelos de reordenación de última generación

  • Fiabilidad y escalabilidad de nivel empresarial para cargas de trabajo de producción

  • Capacidades de reordenamiento multilingüe a través de diversos tipos de contenido

  • Rendimiento coherente de la API con limitación de velocidad y gestión de errores integrados.

Requisitos previos

Antes de implementar Cohere Ranker en Milvus, asegúrese de tener:

  • Una colección Milvus con un campo VARCHAR que contenga el texto a ser reordenado

  • Una clave API válida de Cohere con acceso a los modelos de reranking. Regístrese en la plataforma de Cohere para obtener sus credenciales API. Usted puede:

    • Establecer la variable de entorno COHERE_API_KEY, o

    • Especificar la clave API directamente en credential de la configuración del ranker

Crear una función Cohere ranker

Para utilizar Cohere Ranker en su aplicación Milvus, cree un objeto Function que especifique cómo debe operar el reranking. Esta función será pasada 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 Cohere Ranker
cohere_ranker = Function(
    name="cohere_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": "cohere",               # Specifies Cohere as the service provider
        "model_name": "rerank-english-v3.0", # Cohere rerank model 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)
        "max_tokens_per_doc": 4096,         # Optional: max tokens per document (default: 4096)
        # "credential": "your-cohere-api-key" # Optional: authentication credential for Cohere API
    }
)
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("cohere_semantic_ranker")
                       .inputFieldNames(Collections.singletonList("document"))
                       .param("reranker", "model")
                       .param("provider", "cohere")
                       .param("model_name", "rerank-english-v3.0")
                       .param("queries", "[\"renewable energy developments\"]")
                       .param("endpoint", "http://localhost:8080")
                       .param("max_client_batch_size", "128")
                       .param("max_tokens_per_doc", "4096")
                       .build();
// nodejs
// go
# restful

Parámetros específicos de Cohere ranker

Los siguientes parámetros son específicos del clasificador Cohere:

Parámetro

¿Requerido?

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.

"cohere"

model_name

El modelo Cohere rerank a utilizar de los modelos soportados en la plataforma Cohere.

Para obtener una lista de los modelos disponibles, consulte la documentación de Cohere.

"rerank-english-v3.0", "rerank-multilingual-v3.0"

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)

max_tokens_per_doc

No

Número máximo de tokens por documento. Los documentos largos se truncarán automáticamente al número de tokens especificado.

4096 (por defecto)

credential

No

Credencial de autenticación para acceder a los servicios de la API de Cohere. Si no se especifica, el sistema buscará la variable de entorno COHERE_API_KEY.

"su-cohere-api-key"

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 Cohere Ranker a una búsqueda vectorial estándar:

# Execute search with Cohere reranking
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=cohere_ranker,                       # Apply Cohere reranking
    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(COLLECTION_NAME)
        .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?