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
VARCHARque contenga el texto a ser reordenadoUna 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, oEspecificar la clave API directamente en
credentialde 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 |
|---|---|---|---|
|
Sí |
Debe establecerse en |
|
|
Sí |
El proveedor de servicios de modelos que se utilizará para la reordenación. |
|
|
Sí |
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. |
|
|
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 |
Número máximo de tokens por documento. Los documentos largos se truncarán automáticamente al número de tokens especificado. |
|
|
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 |
"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.
Aplicar a la búsqueda vectorial estándar
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