DashScope RankerCompatible with Milvus 2.6.x

DashScope Ranker позволяет Milvus вызывать модели переранжирования Alibaba Cloud DashScope для переупорядочения результатов поиска по семантической релевантности.

Необходимые условия

Перед использованием DashScope Ranker убедитесь, что у вас есть:

  • Коллекция Milvus с полем « VARCHAR », содержащим текст для переранжирования.

  • Действительный ключ API DashScope.

  • Доступ к модели переранжирования DashScope, например gte-rerank-v2.

Информацию о доступных моделях переранжирования и региональных конечных точках см. в документации по API переранжирования текста в Alibaba Cloud Model Studio.

Настройте учетные данные

Прежде чем Milvus сможет отправить запрос на переранжирование в DashScope, ему необходимо знать ваш ключ API DashScope. Вы можете настроить ключ API в milvus.yaml или с помощью переменной среды.

Вариант 1: Файл конфигурации

Сохраните ключ API в milvus.yaml и укажите провайдеру переранжирования DashScope метку учетных данных.

# 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

Вариант 2: Переменная среды

Если в файле milvus.yaml не настроено соответствующее учетное средство, Milvus может считывать ключ API DashScope из следующей переменной среды:

Переменная

Обязательна?

Описание

MILVUS_DASHSCOPE_API_KEY

Да

Ключ API DashScope, используемый службой Milvus для вызова Alibaba Cloud DashScope.

Создание функции ранжирования DashScope

Чтобы использовать ранжировщик DashScope, создайте объект Function, в котором укажите модель переранжирования DashScope и текст запроса. Для переранжирования с помощью DashScope используйте функцию provider: "ali".

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",
    },
)

Параметры, специфичные для рангера DashScope

Параметр

Обязателен?

Описание

Значение / Пример

reranker

Да

Должно быть установлено в значение « "model" », чтобы включить переранжирование моделей.

"model"

provider

Да

Поставщик услуг модели, который будет использоваться для переранжирования. Для DashScope используйте "ali".

"ali"

model_name

Да

Модель переранжирования DashScope, которую следует использовать.

"gte-rerank-v2"

queries

Да

Список строк запроса, используемых моделью переранжирования для расчёта показателей релевантности. Количество строк запроса должно соответствовать количеству запросов в поисковом запросе.

["renewable energy developments"]

max_client_batch_size

Нет

Максимальное количество документов, отправляемых в службу модели за один запрос.

128 (по умолчанию)

credential

Нет

Метка учетных данных, определённая в разделе верхнего уровня credential: на странице milvus.yaml.

"dashscope_apikey"

Общие параметры, общие для всех ранжеров моделей, такие как provider и queries, см. в разделе «Создание ранжера моделей».

Чтобы применить DashScope Ranker к стандартному векторному поиску, передайте функцию ранжера в параметр 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",
)