DashScope RankerCompatible with Milvus 2.6.x

Le DashScope Ranker permet à Milvus d'appeler les modèles de reclassement DashScope d'Alibaba Cloud afin de réorganiser les résultats de recherche en fonction de leur pertinence sémantique.

Prérequis

Avant d’utiliser le DashScope Ranker, assurez-vous de disposer des éléments suivants :

  • Une collection Milvus comportant un champ « VARCHAR » contenant le texte à reclasser.

  • Une clé API DashScope valide.

  • L'accès à un modèle de reclassement DashScope, tel que « gte-rerank-v2 ».

Pour connaître les modèles de reclassement disponibles et les points de terminaison régionaux, consultez l’API de reclassement de texte d’Alibaba Cloud Model Studio.

Configurer les identifiants

Milvus doit connaître votre clé API DashScope avant de pouvoir demander un reclassement à DashScope. Vous pouvez configurer la clé API dans milvus.yaml ou via une variable d’environnement.

Option 1 : fichier de configuration

Enregistrez votre clé API dans milvus.yaml et pointez le fournisseur de reclassement DashScope vers le libellé des informations d’authentification.

# 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

Option 2 : Variable d’environnement

Si aucun identifiant correspondant n’est configuré dans ` milvus.yaml`, Milvus peut lire la clé API DashScope à partir de la variable d’environnement suivante :

Variable

Obligatoire ?

Description

MILVUS_DASHSCOPE_API_KEY

Oui

Clé API DashScope utilisée par le service Milvus pour appeler Alibaba Cloud DashScope.

Créer une fonction de classement DashScope

Pour utiliser le classificateur DashScope, créez un objet Function qui spécifie le modèle de reclassement DashScope et le texte de la requête. Utilisez provider: "ali" pour le reclassement 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",
    },
)

Paramètres spécifiques au classement DashScope

Paramètre

Obligatoire ?

Description

Valeur / Exemple

reranker

Oui

Doit être défini sur « "model" » pour activer le reclassement des modèles.

"model"

provider

Oui

Fournisseur de services de modèle à utiliser pour le reclassement. Pour DashScope, utilisez "ali".

"ali"

model_name

Oui

Modèle de reclassement DashScope à utiliser.

"gte-rerank-v2"

queries

Oui

Liste des chaînes de requête utilisées par le modèle de reclassement pour calculer les scores de pertinence. Le nombre de chaînes de requête doit correspondre au nombre de requêtes contenues dans la demande de recherche.

["renewable energy developments"]

max_client_batch_size

Non

Nombre maximal de documents à envoyer au service du modèle par requête.

128 (par défaut)

credential

Non

L'étiquette d'un identifiant défini dans la section de niveau supérieur credential: de milvus.yaml.

"dashscope_apikey"

Pour les paramètres généraux communs à tous les classements de modèles, tels que provider et queries, reportez-vous à la section Créer un classement de modèles.

Pour appliquer DashScope Ranker à une recherche vectorielle standard, transmettez la fonction de classement à 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",
)