Yandex CloudCompatible with Milvus 2.6.x

Cette rubrique explique comment configurer et utiliser les fonctions d'embedding de Yandex Cloud dans Milvus.

Choisissez un modèle d'embedding

Milvus prend en charge les modèles de vectorisation de texte de Yandex Cloud AI Studio via le fournisseur yc. Dans les paramètres de la fonction, définissez « model_name » sur l’URI du modèle Yandex Cloud que Milvus doit appeler.

Par exemple, Yandex Text Embeddings pour les documents utilise une URI de modèle telle que emb://<folder_ID>/text-search-doc/latest et renvoie des vecteurs à 256 dimensions. Pour connaître les URI de modèles et les dimensions disponibles, consultez la section Modèles de vectorisation de texte.

Configurer les identifiants

Milvus doit connaître votre clé API Yandex Cloud avant de pouvoir demander des embeddings. 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 indiquez au fournisseur Yandex Cloud le libellé correspondant aux informations d’authentification.

# milvus.yaml
credential:
  yandex_apikey:
    apikey: <YOUR_YC_API_KEY>

function:
  textEmbedding:
    providers:
      yc:
        credential: yandex_apikey
        # url: https://llm.api.cloud.yandex.net/foundationModels/v1/textEmbedding

Option 2 : Variable d’environnement

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

Variable

Obligatoire ?

Description

MILVUS_YC_API_KEY

Oui

Clé API Yandex Cloud utilisée par le service Milvus pour appeler Yandex Cloud AI Studio.

Utiliser la fonction d'embedding

Une fois les identifiants configurés, définissez un schéma comportant un champ de texte en entrée et un champ vectoriel en sortie, puis ajoutez une fonction d'embedding Yandex Cloud au schéma.

from pymilvus import MilvusClient, DataType, Function, FunctionType

client = MilvusClient(uri="http://localhost:19530")

schema = client.create_schema()
schema.add_field("id", DataType.INT64, is_primary=True, auto_id=False)
schema.add_field("document", DataType.VARCHAR, max_length=9000)
schema.add_field("dense", DataType.FLOAT_VECTOR, dim=256)

text_embedding_function = Function(
    name="yandex_cloud_embedding",
    function_type=FunctionType.TEXTEMBEDDING,
    input_field_names=["document"],
    output_field_names=["dense"],
    params={
        "provider": "yc",
        "model_name": "emb://<folder_ID>/text-search-doc/latest",
        "credential": "yandex_apikey",
        "dim": "256",
    },
)

schema.add_function(text_embedding_function)

Paramètres spécifiques à Yandex Cloud

Paramètre

Obligatoire ?

Description

Valeur / Exemple

provider

Oui

Fournisseur de modèle d'intégration à utiliser.

"yc"

model_name

Oui

L'URI du modèle Yandex Cloud à appeler.

"emb://<folder_ID>/text-search-doc/latest"

credential

Non

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

"yandex_apikey"

dim

Non

La dimension du vecteur de sortie. Si elle est définie, la valeur doit correspondre à la dimension du champ du vecteur de sortie.

"256"

Étapes suivantes

Une fois la fonction d’intégration configurée, consultez la section Présentation de la fonction d’intégration pour obtenir des conseils sur la création d’index, l’insertion de données et l’exécution d’une recherche sémantique.