Yandex CloudCompatible with Milvus 2.6.x

En este tema se describe cómo configurar y utilizar las funciones de incrustación de Yandex Cloud en Milvus.

Elegir un modelo de incrustación

Milvus es compatible con los modelos de vectorización de texto de Yandex Cloud AI Studio a través del proveedor yc. En los parámetros de la función, establece « model_name » en la URI del modelo de Yandex Cloud que Milvus debe invocar.

Por ejemplo, Yandex Text Embeddings para documentos utiliza una URI de modelo como emb://<folder_ID>/text-search-doc/latest y devuelve vectores de 256 dimensiones. Para conocer las URI de modelo y las dimensiones disponibles, consulta Modelos de vectorización de texto.

Configurar las credenciales

Milvus debe conocer su clave de API de Yandex Cloud antes de poder solicitar incrustaciones. Puede configurar la clave de API en milvus.yaml o mediante una variable de entorno.

Opción 1: Archivo de configuración

Guarde su clave de API en milvus.yaml y asigne la etiqueta de credenciales al proveedor Yandex Cloud.

# 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

Opción 2: Variable de entorno

Si no hay ninguna credencial coincidente configurada en milvus.yaml, Milvus puede leer la clave de la API de Yandex Cloud a partir de la siguiente variable de entorno:

Variable

¿Es obligatoria?

Descripción

MILVUS_YC_API_KEY

Clave de la API de Yandex Cloud utilizada por el servicio Milvus para llamar a Yandex Cloud AI Studio.

Utilizar la función de incrustación

Una vez configuradas las credenciales, define un esquema con un campo de texto de entrada y un campo vectorial de salida; a continuación, añade una función de incrustación de Yandex Cloud al esquema.

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)

Parámetros específicos de Yandex Cloud

Parámetro

¿Es obligatorio?

Descripción

Valor / Ejemplo

provider

El proveedor del modelo de incrustación que se va a utilizar.

"yc"

model_name

El URI del modelo de Yandex Cloud al que se va a llamar.

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

credential

No

La etiqueta de una credencial definida en la sección de nivel superior « credential: » de milvus.yaml.

"yandex_apikey"

dim

No

La dimensión del vector de salida. Si se establece, el valor debe coincidir con la dimensión del campo del vector de salida.

"256"

Próximos pasos

Tras configurar la función de incrustación, consulta la Descripción general de la función de incrustación para obtener orientación sobre cómo crear índices, insertar datos y ejecutar búsquedas semánticas.