DashScope RankerCompatible with Milvus 2.6.x

O DashScope Ranker permite que o Milvus recorra aos modelos de reclassificação do DashScope da Alibaba Cloud para reordenar os resultados de pesquisa por relevância semântica.

Pré-requisitos

Antes de utilizar o DashScope Ranker, certifique-se de que dispõe de:

  • Uma coleção do Milvus com um campo « VARCHAR » que contenha o texto a ser reclassificado.

  • Uma chave de API válida do DashScope.

  • Acesso a um modelo de reclassificação do DashScope, como o gte-rerank-v2.

Para conhecer os modelos de reclassificação disponíveis e os pontos de extremidade regionais, consulte a API de reclassificação de texto do Alibaba Cloud Model Studio.

Configurar credenciais

O Milvus precisa de conhecer a sua chave API do DashScope antes de poder solicitar a reclassificação ao DashScope. Pode configurar a chave API em milvus.yaml ou através de uma variável de ambiente.

Opção 1: Ficheiro de configuração

Guarde a sua chave de API em milvus.yaml e indique ao fornecedor de reclassificação do DashScope o rótulo da credencial.

# milvus.yaml
credential:
  dashscope_apikey:
    apikey: <YOUR_DASHSCOPE_API_KEY>

function:
  rerank:
    model:
      providers:
        ali:
          credential: dashscope_apikey
          # url: https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank

Opção 2: Variável de ambiente

Se não estiver configurada nenhuma credencial correspondente em milvus.yaml, o Milvus pode ler a chave API do DashScope a partir da seguinte variável de ambiente:

Variável

Obrigatória?

Descrição

MILVUS_DASHSCOPE_API_KEY

Sim

Chave da API do DashScope utilizada pelo serviço Milvus para aceder ao DashScope da Alibaba Cloud.

Criar uma função de classificação do DashScope

Para utilizar o DashScope Ranker, crie um objeto Function que especifique o modelo de reclassificação do DashScope e o texto da consulta. Utilize provider: "ali" para a reclassificação do DashScope.

from pymilvus import Function, FunctionType

dashscope_ranker = Function(
    name="dashscope_semantic_ranker",
    input_field_names=["document"],
    function_type=FunctionType.RERANK,
    params={
        "reranker": "model",
        "provider": "ali",
        "model_name": "gte-rerank-v2",
        "queries": ["renewable energy developments"],
        "max_client_batch_size": 128,
        "credential": "dashscope_apikey",
    },
)

Parâmetros específicos do classificador DashScope

Parâmetro

Obrigatório?

Descrição

Valor / Exemplo

reranker

Sim

Deve ser definido como « "model" » para ativar a reclassificação do modelo.

"model"

provider

Sim

O fornecedor de serviços de modelo a utilizar para a reclassificação. Para o DashScope, utilize "ali".

"ali"

model_name

Sim

O modelo de reclassificação do DashScope a utilizar.

"gte-rerank-v2"

queries

Sim

Lista de cadeias de consulta utilizadas pelo modelo de reclassificação para calcular as pontuações de relevância. O número de cadeias de consulta deve corresponder ao número de consultas na solicitação de pesquisa.

["renewable energy developments"]

max_client_batch_size

Não

Número máximo de documentos a enviar para o serviço do modelo por pedido.

128 (padrão)

credential

Não

O rótulo de uma credencial definida na secção de nível superior « credential: » em milvus.yaml.

"dashscope_apikey"

Para parâmetros gerais partilhados por todos os classificadores de modelos, tais como provider e queries, consulte Criar um classificador de modelos.

Para aplicar o DashScope Ranker a uma pesquisa vetorial padrão, passe a função do classificador para search().

results = client.search(
    collection_name="your_collection",
    data=[your_query_vector],
    anns_field="dense_vector",
    limit=5,
    output_fields=["document"],
    ranker=dashscope_ranker,
    consistency_level="Bounded",
)