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
| Elemento | Descripción |
|---|---|
| Servidor | Linux con Docker. Como Milvus consume más recursos que Qdrant, recomendamos separarlo de SpaceBuilder. |
| Memoria | Mínimo 8 GB; 16 GB o más para más de un millón de vectores. |
| Disco | Reserve espacio suficiente para datos y registros; se recomienda SSD. |
| Puertos | 19530 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/milvusbajo la carpeta actual. No la elimine. - Detenga e inicie con
bash standalone_embed.sh stopybash standalone_embed.sh startdesde la misma carpeta. - Modifique
user.yamly 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
19530solo desde SpaceBuilder y no exponga9091. - 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.
| Campo | Tipo | Descripción |
|---|---|---|
id | VARCHAR(64), clave primaria | ID del vector |
instance_namespace | VARCHAR(64) | Clave de aislamiento por instalación |
generation_id | VARCHAR(64) | Generación de indexación |
chunk_id | INT64 | Número de fragmento |
space_flag | VARCHAR(16) | team o client |
owner_id | VARCHAR(64) | Propietario |
source_path | VARCHAR | Ruta original |
text | VARCHAR | Fragmento mostrado en resultados |
vector | FLOAT_VECTOR | Vector con las mismas dimensiones que el modelo |
- La dimensión
dimdebe coincidir, por ejemplo1024parabge-m3. - La métrica del índice debe ser
COSINE. - SpaceBuilder limita
texta 4096 caracteres. Utilicemax_lengthde al menos16384para cubrir UTF-8 de hasta cuatro bytes. - Para rutas largas y coreanas, utilice unos
4096ensource_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.
| Campo | Valor | Descripción |
|---|---|---|
Driver | Milvus | Servidor externo |
Endpoint | http://<dirección del servidor Milvus>:19530 | Si omite http://, se añade; vacío usa http://localhost:19530. |
Collection | Nombre creado previamente | Use uno distinto por instancia, preferiblemente el recomendado setfn_knowledge_.... |
API key | Token de Milvus | Se muestra enmascarada; vacío al guardar la elimina. |
Username / Password | Cuenta de Milvus | La contraseña vacía conserva la guardada. |
Vector dimensions | Mismo valor que dim | Si 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.
| Campo | Estado correcto |
|---|---|
Connection | Connected |
Collection configuration | OK (compatible with current settings) |
Stored vectors | Aumentan durante la indexación; solo los de esta instancia |
Total Collections | Total del servidor Milvus |
| Estado incorrecto | Acción |
|---|---|
Collection not found · create it in Milvus first | Cré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 COSINE | Vuelva a crear el índice vector con COSINE. |