Ir al contenido

Conectar Milvus

Milvus es una base vectorial externa para búsquedas a gran escala. Utilícela si su organización ya la opera o necesita administrar muchos datos en un clúster separado.

Los archivos y textos originales permanecen en SpaceBuilder; Milvus solo guarda vectores y la información mínima necesaria.


Antes de comenzar

  • Permisos: administrador de Workspace y autorización para administrar colecciones de Milvus
  • SpaceBuilder debe poder acceder al endpoint de Milvus.
  • Compruebe las dimensiones de salida del modelo de embeddings.

Instalar Milvus

SpaceBuilder utiliza la API REST v2 de Milvus 2.4 o posterior, normalmente en el puerto 19530, con rutas /v2/vectordb/.... No funciona con Milvus 2.3 o anterior. Si ya dispone de un servidor, vaya a Crear previamente la colección.

Milvus ofrece Standalone para un servidor y Distributed para clústeres grandes. Standalone basta para SpaceBuilder.

Preparación

ElementoDescripción
ServidorLinux con Docker. Como Milvus consume más recursos que Qdrant, recomendamos separarlo de SpaceBuilder.
MemoriaMínimo 8 GB; 16 GB o más para más de un millón de vectores.
DiscoReserve espacio suficiente para datos y registros; se recomienda SSD.
Puertos19530 para la API utilizada por SpaceBuilder; 9091 para estado y administración.

Ejecución

El script oficial inicia un contenedor con los componentes necesarios.

mkdir -p ~/milvus && cd ~/milvus
curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
bash standalone_embed.sh start
  • Los datos se guardan en volumes/milvus bajo la carpeta actual. No la elimine.
  • Detenga e inicie con bash standalone_embed.sh stop y bash standalone_embed.sh start desde la misma carpeta.
  • Modifique user.yaml y reinicie para cambiar la configuración.

Activar la autenticación

En otro servidor o una red compartida, añada esto a user.yaml y reinicie.

common:
  security:
    authorizationEnabled: true

La cuenta inicial es root con contraseña Milvus. Cámbiela y cree una cuenta exclusiva. Puede introducir un token con formato usuario:contraseña o los campos separados; si introduce ambos, se usa el token.

Comprobar la instalación

curl http://localhost:9091/healthz

Una respuesta OK confirma el servicio. En Milvus 2.5 o posterior, abra http://<dirección del servidor Milvus>:9091/webui/.

Consejos operativos

  • Permita 19530 solo desde SpaceBuilder y no exponga 9091.
  • Los vectores son derivados y pueden reconstruirse mediante Sync Existing Embeddings.
  • Siga la guía oficial al actualizar; entre versiones menores puede ser necesaria una migración.

Crear previamente la colección

A diferencia de Qdrant, Milvus no crea la colección automáticamente. Créela antes de guardar la conexión.

CampoTipoDescripción
idVARCHAR(64), clave primariaID del vector
instance_namespaceVARCHAR(64)Clave de aislamiento por instalación
generation_idVARCHAR(64)Generación de indexación
chunk_idINT64Número de fragmento
space_flagVARCHAR(16)team o client
owner_idVARCHAR(64)Propietario
source_pathVARCHARRuta original
textVARCHARFragmento mostrado en resultados
vectorFLOAT_VECTORVector con las mismas dimensiones que el modelo
  • La dimensión dim debe coincidir, por ejemplo 1024 para bge-m3.
  • La métrica del índice debe ser COSINE.
  • SpaceBuilder limita text a 4096 caracteres. Utilice max_length de al menos 16384 para cubrir UTF-8 de hasta cuatro bytes.
  • Para rutas largas y coreanas, utilice unos 4096 en source_path.

El siguiente comando crea la colección mediante REST v2. Sustituya <dirección del servidor Milvus>, la autenticación, el nombre y las dimensiones.

  • En Authorization, introduzca <usuario>:<contraseña> o una clave API (token).
  • Si no activó la autenticación, elimine la línea Authorization.
curl -X POST "http://<dirección del servidor Milvus>:19530/v2/vectordb/collections/create" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <usuario>:<contraseña>" \
  -d '{
    "collectionName": "setfn_knowledge_example",
    "schema": {
      "autoId": false,
      "enableDynamicField": false,
      "fields": [
        { "fieldName": "id", "dataType": "VarChar", "isPrimary": true, "elementTypeParams": { "max_length": 64 } },
        { "fieldName": "instance_namespace", "dataType": "VarChar", "elementTypeParams": { "max_length": 64 } },
        { "fieldName": "generation_id", "dataType": "VarChar", "elementTypeParams": { "max_length": 64 } },
        { "fieldName": "chunk_id", "dataType": "Int64" },
        { "fieldName": "space_flag", "dataType": "VarChar", "elementTypeParams": { "max_length": 16 } },
        { "fieldName": "owner_id", "dataType": "VarChar", "elementTypeParams": { "max_length": 64 } },
        { "fieldName": "source_path", "dataType": "VarChar", "elementTypeParams": { "max_length": 4096 } },
        { "fieldName": "text", "dataType": "VarChar", "elementTypeParams": { "max_length": 16384 } },
        { "fieldName": "vector", "dataType": "FloatVector", "elementTypeParams": { "dim": 1024 } }
      ]
    },
    "indexParams": [
      { "fieldName": "vector", "indexName": "vector", "metricType": "COSINE", "params": { "index_type": "AUTOINDEX" } }
    ]
  }'

Una respuesta con "code":0 confirma la creación.

Configurar la conexión

Introduzca estos valores en Vector DB Setup de Almacenamiento de conocimiento y seleccione Save.

CampoValorDescripción
DriverMilvusServidor externo
Endpointhttp://<dirección del servidor Milvus>:19530Si omite http://, se añade; vacío usa http://localhost:19530.
CollectionNombre creado previamenteUse uno distinto por instancia, preferiblemente el recomendado setfn_knowledge_....
API keyToken de MilvusSe muestra enmascarada; vacío al guardar la elimina.
Username / PasswordCuenta de MilvusLa contraseña vacía conserva la guardada.
Vector dimensionsMismo valor que dimSi difiere, conecta pero falla al guardar la indexación.

No aparece Data Path. Al guardar, el planificador comprueba el cambio e inicia una reindexación completa si hace falta.

Comprobar la conexión

Consulte estos valores en Vector DB Overview.

CampoEstado correcto
ConnectionConnected
Collection configurationOK (compatible with current settings)
Stored vectorsAumentan durante la indexación; solo los de esta instancia
Total CollectionsTotal del servidor Milvus
Estado incorrectoAcción
Collection not found · create it in Milvus firstCréela con la estructura anterior o corrija el nombre.
Collection configuration needs review con collection dimension is ..., expected ...Cree otra colección con las dimensiones correctas.
Collection configuration needs review con collection metric must be COSINEVuelva a crear el índice vector con COSINE.

Documentos relacionados