• Informazioni su Milvus
  • Iniziare
  • Concetti
  • Guida per l'utente
  • Importazione dei dati
  • Strumenti AI
  • Guida all'amministrazione
  • Strumenti
  • Integrazioni
  • Tutorial
  • Domande frequenti
  • API Reference

Integrare Milvus con MindsDB

MindsDB è uno strumento potente per integrare le applicazioni di intelligenza artificiale con diverse fonti di dati aziendali. Funziona come un motore di interrogazione federato che mette ordine nella dispersione dei dati e risponde meticolosamente alle interrogazioni su dati strutturati e non strutturati. Che i dati siano sparsi in applicazioni SaaS, database o data warehouse, MindsDB è in grado di collegarli e interrogarli tutti utilizzando SQL standard. È dotato di sistemi RAG autonomi all'avanguardia attraverso le Knowledge Bases, supporta centinaia di fonti di dati e offre opzioni di distribuzione flessibili, dallo sviluppo locale agli ambienti cloud.

Questo tutorial mostra come integrare Milvus con MindsDB, consentendo di sfruttare le capacità di intelligenza artificiale di MindsDB con le funzionalità del database vettoriale di Milvus attraverso operazioni simili a SQL per la gestione e l'interrogazione di embeddings vettoriali.

Questo tutorial fa riferimento principalmente alla documentazione ufficiale di MindsDB Milvus Handler. Se trovate parti non aggiornate in questo tutorial, potete seguire prioritariamente la documentazione ufficiale e creare un problema per noi.

Installare MindsDB

Prima di iniziare, installate MindsDB in locale tramite Docker o Docker Desktop.

Prima di procedere, assicuratevi di avere una solida conoscenza dei concetti e delle operazioni fondamentali di MindsDB e Milvus.

Introduzione agli argomenti

Gli argomenti necessari per stabilire una connessione sono:

  • uri: uri per il database Milvus, che può essere impostato sul file ".db" locale o sul servizio docker o cloud
  • tokentoken per supportare docker o il servizio cloud, in base all'opzione uri.

Gli argomenti opzionali per stabilire una connessione sono:

Questi sono utilizzati per le query di SELECT:

  • search_default_limit: limite predefinito da passare nelle istruzioni select (default=100)
  • search_metric_type: tipo di metrica utilizzata per le ricerche (default="L2")
  • search_ignore_growing: se ignorare o meno i segmenti in crescita durante le ricerche di similarità (default=False)
  • search_params: specifico per search_metric_type (default={"nprobe": 10})

Sono utilizzati per le query di CREATE:

  • create_auto_id: se generare automaticamente l'id quando si inseriscono record senza ID (default=False)
  • create_id_max_len: lunghezza massima del campo id quando si crea una tabella (default=64)
  • create_embedding_dim: dimensione di incorporamento per la creazione della tabella (default=8)
  • create_dynamic_field: se le tabelle create hanno o meno campi dinamici (default=True)
  • create_content_max_len: lunghezza massima della colonna di contenuto (predefinito=200)
  • create_content_default_value: valore predefinito della colonna di contenuto (default='')
  • create_schema_description: descrizione degli schemi creati (default='')
  • create_alias: alias degli schemi creati (default='default')
  • create_index_params: parametri dell'indice creato sulla colonna embeddings (default={})
  • create_index_metric_type: metrica usata per creare l'indice (default='L2')
  • create_index_type: il tipo di indice (predefinito='AUTOINDEX')

Utilizzo

Prima di continuare, assicurarsi che la versione di pymilvus sia uguale a questa versione appuntata. Se si riscontrano problemi di compatibilità tra le versioni, è possibile ripristinare la versione di pymilvus o personalizzarla in questo file di requisiti.

Creazione della connessione

Per utilizzare questo gestore e connettersi a un server Milvus in MindsDB, si può usare la seguente sintassi:

CREATE DATABASE milvus_datasource
WITH
  ENGINE = 'milvus',
  PARAMETERS = {
    "uri": "./milvus_local.db",
    "token": "",
    "create_embedding_dim": 3,
    "create_auto_id": true
};
  • Se si ha bisogno di un database vettoriale locale solo per dati su piccola scala o per la prototipazione, l'impostazione dell'uri come file locale, ad esempio./milvus.db, è il metodo più conveniente, in quanto utilizza automaticamente Milvus Lite per memorizzare tutti i dati in questo file.
  • Per i dati su larga scala e il traffico in produzione, è possibile configurare un server Milvus su Docker o Kubernetes. In questa configurazione, utilizzare l'indirizzo e la porta del server come uri, ad esempiohttp://localhost:19530. Se si abilita la funzione di autenticazione su Milvus, impostare token come "<your_username>:<your_password>", altrimenti non è necessario impostare il token.
  • È anche possibile utilizzare Milvus completamente gestito su Zilliz Cloud. È sufficiente impostare uri e token con l'endpoint pubblico e la chiave API della propria istanza Zilliz Cloud.

Interruzione della connessione

Per interrompere la connessione, utilizzare questo comando

DROP DATABASE milvus_datasource;

Creare tabelle

Per inserire dati da una tabella preesistente, utilizzare il comando CREATE

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

Eliminazione di collezioni

L'eliminazione di una collezione non è supportata

Interrogazione e selezione

Per interrogare il database usando un vettore di ricerca, si può usare search_vector nella clausola WHERE.

Avvertenze:

  • Se si omette LIMIT, viene utilizzato search_default_limit, poiché Milvus lo richiede.
  • La colonna dei metadati non è supportata, ma se la collezione ha lo schema dinamico abilitato, è possibile eseguire le query come di consueto, vedere l'esempio seguente
  • I campi dinamici non possono essere visualizzati, ma possono essere interrogati.
SELECT * from milvus_datasource.test
WHERE search_vector = '[3.0, 1.0, 2.0, 4.5]'
LIMIT 10;

Se si omette la clausola search_vector, questa diventa una ricerca di base e vengono restituite le voci LIMIT o search_default_limit della collezione.

SELECT * from milvus_datasource.test

È possibile utilizzare la clausola WHERE sui campi dinamici come nel normale SQL.

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

Eliminazione di record

È possibile cancellare le voci utilizzando DELETE proprio come in SQL.

Avvertenze:

  • Milvus supporta solo l'eliminazione di entità con chiavi primarie chiaramente specificate.
  • Si può usare solo l'operatore IN
DELETE FROM milvus_datasource.test
WHERE id IN (1, 2, 3);

Inserimento di record

È possibile inserire anche singole righe come in questo caso:

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

Aggiornamento

L'aggiornamento dei record non è supportato dall'API Milvus. Si può provare a usare una combinazione di DELETE e INSERT


Per ulteriori dettagli ed esempi, consultare la documentazione ufficiale di MindsDB.

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?