• Sobre Milvus
  • Começar a trabalhar
  • Conceitos
  • Guia do utilizador
  • Importação de dados
  • Ferramentas de IA
  • Guia de Administração
  • Ferramentas
  • Integrações
  • Tutoriais
  • FAQs
  • API Reference

Integrar o Milvus com o MindsDB

O MindsDB é uma ferramenta poderosa para integrar aplicações de IA com diversas fontes de dados empresariais. Ele atua como um mecanismo de consulta federado que coloca ordem na dispersão de dados, respondendo meticulosamente a consultas em dados estruturados e não estruturados. Quer seus dados estejam espalhados por aplicativos SaaS, bancos de dados ou data warehouses, o MindsDB pode conectar e consultar tudo isso usando SQL padrão. Ele apresenta sistemas RAG autônomos de última geração por meio de bases de conhecimento, suporta centenas de fontes de dados e oferece opções flexíveis de implantação, desde o desenvolvimento local até ambientes de nuvem.

Este tutorial demonstra como integrar o Milvus com o MindsDB, permitindo-lhe tirar partido das capacidades de IA do MindsDB com a funcionalidade de base de dados de vectores do Milvus através de operações do tipo SQL para gerir e consultar embeddings de vectores.

Este tutorial refere-se principalmente à documentação oficial do MindsDB Milvus Handler. Se encontrar alguma parte desactualizada neste tutorial, pode dar prioridade ao seguimento da documentação oficial e criar um problema para nós.

Instalar o MindsDB

Antes de começarmos, instale o MindsDB localmente via Docker ou Docker Desktop.

Antes de prosseguir, certifique-se de ter uma sólida compreensão dos conceitos e operações fundamentais do MindsDB e do Milvus.

Introdução aos argumentos

Os argumentos necessários para estabelecer uma conexão são:

  • uriuri para a base de dados milvus, pode ser definido para o ficheiro local ".db" ou para o serviço docker ou cloud
  • tokentoken para suportar o serviço docker ou cloud de acordo com a opção uri

Os argumentos opcionais para estabelecer uma ligação são:

Estes são utilizados para as consultas SELECT:

  • search_default_limit: limite predefinido a ser passado em instruções select (predefinição=100)
  • search_metric_typeTipo de métrica utilizado para pesquisas (predefinição="L2")
  • search_ignore_growing: se os segmentos crescentes devem ser ignorados durante as pesquisas de similaridade (por defeito=False)
  • search_params: específico para search_metric_type (pré-definição={"nprobe": 10})

Estas são utilizadas para as consultas CREATE:

  • create_auto_id: se se deve gerar automaticamente o id quando se inserem registos sem ID (pré-definição=False)
  • create_id_max_len: comprimento máximo do campo id ao criar uma tabela (predefinição=64)
  • create_embedding_dim: dimensão de incorporação para criar uma tabela (predefinição=8)
  • create_dynamic_field: se as tabelas criadas têm ou não campos dinâmicos (predefinição=Verdadeiro)
  • create_content_max_len: comprimento máximo da coluna de conteúdo (pré-definição=200)
  • create_content_default_value: valor por defeito da coluna de conteúdo (por defeito='')
  • create_schema_description: descrição dos esquemas criados (por defeito='')
  • create_aliasalias dos esquemas criados (por defeito='default')
  • create_index_params: parâmetros do índice criado na coluna "embeddings" (predefinição={})
  • create_index_metric_type: métrica utilizada para criar o índice (predefinição='L2')
  • create_index_typeo tipo de índice (predefinição='AUTOINDEX')

Utilização

Antes de continuar, certifique-se de que a versão pymilvus é igual a esta versão fixada. Se encontrar quaisquer problemas com a compatibilidade de versões, pode reverter a sua versão do pymilvus ou personalizá-la neste ficheiro de requisitos.

Criar uma ligação

Para utilizar este manipulador e ligar-se a um servidor Milvus no MindsDB, pode ser utilizada a seguinte sintaxe:

CREATE DATABASE milvus_datasource
WITH
  ENGINE = 'milvus',
  PARAMETERS = {
    "uri": "./milvus_local.db",
    "token": "",
    "create_embedding_dim": 3,
    "create_auto_id": true
};
  • Se apenas necessitar de uma base de dados vetorial local para dados de pequena escala ou prototipagem, definir o uri como um ficheiro local, por exemplo,./milvus.db, é o método mais conveniente, uma vez que utiliza automaticamente o Milvus Lite para armazenar todos os dados neste ficheiro.
  • Para dados de maior escala e tráfego em produção, pode configurar um servidor Milvus em Docker ou Kubernetes. Nesta configuração, use o endereço e a porta do servidor como seu uri, por exemplo,http://localhost:19530. Se ativar a funcionalidade de autenticação no Milvus, defina o token como "<your_username>:<your_password>", caso contrário não é necessário definir o token.
  • Também pode utilizar o Milvus totalmente gerido no Zilliz Cloud. Basta definir os endereços uri e token para o Public Endpoint e a chave API da sua instância Zilliz Cloud.

Abandonar a ligação

Para abandonar a ligação, utilize este comando

DROP DATABASE milvus_datasource;

Criar tabelas

Para inserir dados de uma tabela pré-existente, utilize CREATE

CREATE TABLE milvus_datasource.test
(SELECT * FROM sqlitedb.test);

Eliminar colecções

A eliminação de uma coleção não é suportada

Consultar e selecionar

Para consultar a base de dados utilizando um vetor de pesquisa, pode utilizar search_vector na cláusula WHERE

Advertências:

  • Se omitir LIMIT, a cláusula search_default_limit é utilizada, uma vez que o Milvus assim o exige
  • A coluna de metadados não é suportada, mas se a coleção tiver um esquema dinâmico ativado, pode efetuar a consulta normalmente, ver o exemplo abaixo
  • Os campos dinâmicos não podem ser apresentados, mas podem ser consultados
SELECT * from milvus_datasource.test
WHERE search_vector = '[3.0, 1.0, 2.0, 4.5]'
LIMIT 10;

Se omitir a cláusula search_vector, esta torna-se uma pesquisa básica e é devolvida a quantidade de entradas na coleção LIMIT ou search_default_limit

SELECT * from milvus_datasource.test

Pode utilizar a cláusula WHERE nos campos dinâmicos como se fosse uma SQL normal.

SELECT * FROM milvus_datasource.createtest
WHERE category = "science";

Eliminar registos

Pode eliminar registos utilizando DELETE tal como em SQL.

Advertências:

  • O Milvus apenas suporta a eliminação de entidades com chaves primárias claramente especificadas
  • Só é possível utilizar o operador IN
DELETE FROM milvus_datasource.test
WHERE id IN (1, 2, 3);

Inserir registos

Também pode inserir linhas individuais desta forma:

INSERT INTO milvus_test.testable (id,content,metadata,embeddings)
VALUES ("id3", 'this is a test', '{"test": "test"}', '[1.0, 8.0, 9.0]');

Atualização

A atualização de registos não é suportada pela API do Milvus. Pode tentar utilizar a combinação de DELETE e INSERT


Para obter mais detalhes e exemplos, consulte a documentação oficial do MindsDB.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?