Mengintegrasikan Milvus dengan MindsDB

MindsDB adalah alat yang ampuh untuk mengintegrasikan aplikasi AI dengan beragam sumber data perusahaan. Alat ini bertindak sebagai mesin kueri federasi yang menertibkan penyebaran data sekaligus menjawab kueri dengan cermat di seluruh data terstruktur dan tidak terstruktur. Baik data Anda tersebar di seluruh aplikasi SaaS, database, atau gudang data, MindsDB dapat menghubungkan dan melakukan kueri menggunakan SQL standar. MindsDB memiliki sistem RAG otonom yang canggih melalui Basis Pengetahuan, mendukung ratusan sumber data, dan menyediakan opsi penerapan yang fleksibel mulai dari pengembangan lokal hingga lingkungan cloud.

Tutorial ini mendemonstrasikan cara mengintegrasikan Milvus dengan MindsDB, sehingga Anda dapat memanfaatkan kemampuan AI MindsDB dengan fungsionalitas basis data vektor Milvus melalui operasi mirip SQL untuk mengelola dan menanyakan penyematan vektor.

Tutorial ini terutama mengacu pada dokumentasi resmi MindsDB Milvus Handler. Jika Anda menemukan bagian yang sudah ketinggalan zaman dalam tutorial ini, Anda dapat memprioritaskan untuk mengikuti dokumentasi resmi dan membuat masalah untuk kami.

Menginstal MindsDB

Sebelum kita mulai, instal MindsDB secara lokal melalui Docker atau Docker Desktop.

Sebelum melanjutkan, pastikan Anda memiliki pemahaman yang kuat tentang konsep dan operasi dasar MindsDB dan Milvus.

Pengenalan Argumen

Argumen yang diperlukan untuk membuat koneksi adalah:

  • uriuri untuk basis data milvus, dapat diatur ke berkas ".db" lokal atau docker atau layanan cloud
  • token: token untuk mendukung docker atau layanan cloud sesuai dengan opsi uri

Argumen opsional untuk membuat koneksi adalah:

Ini digunakan untuk kueri SELECT:

  • search_default_limit: batas default yang akan dilewatkan dalam pernyataan tertentu (default=100)
  • search_metric_type: jenis metrik yang digunakan untuk pencarian (default = "L2")
  • search_ignore_growing: apakah akan mengabaikan segmen yang sedang berkembang selama pencarian kemiripan (default=False)
  • search_params: khusus untuk search_metric_type (default={"nprobe": 10})

Ini digunakan untuk kueri CREATE:

  • create_auto_id: apakah akan membuat id secara otomatis saat memasukkan rekaman tanpa ID (default=False)
  • create_id_max_len: panjang maksimum bidang id saat membuat tabel (default=64)
  • create_embedding_dim: dimensi penyisipan untuk membuat tabel (default=8)
  • create_dynamic_field: apakah tabel yang dibuat memiliki kolom dinamis atau tidak (default=True)
  • create_content_max_len: panjang maksimal kolom konten (default=200)
  • create_content_default_value: nilai default dari kolom konten (default='')
  • create_schema_description: deskripsi dari skema yang dibuat (default='')
  • create_alias: alias dari skema yang dibuat (default='default')
  • create_index_params: parameter indeks yang dibuat pada kolom sematan (default={})
  • create_index_metric_type: metrik yang digunakan untuk membuat indeks (default='L2')
  • create_index_type: jenis indeks (default = 'AUTOINDEX')

Penggunaan

Sebelum melanjutkan, pastikan bahwa versi pymilvus sama dengan versi yang disematkan ini. Jika Anda menemukan masalah dengan kompatibilitas versi, Anda dapat mengembalikan versi pymilvus Anda, atau menyesuaikannya di file persyaratan ini.

Membuat koneksi

Untuk menggunakan handler ini dan menyambungkan ke server Milvus di MindsDB, sintaks berikut ini dapat digunakan:

CREATE DATABASE milvus_datasource
WITH
  ENGINE = 'milvus',
  PARAMETERS = {
    "uri": "./milvus_local.db",
    "token": "",
    "create_embedding_dim": 3,
    "create_auto_id": true
};
  • Jika Anda hanya membutuhkan basis data vektor lokal untuk data skala kecil atau pembuatan prototipe, menetapkan uri sebagai file lokal, misalnya./milvus.db, adalah metode yang paling mudah, karena secara otomatis menggunakan Milvus Lite untuk menyimpan semua data dalam file ini.
  • Untuk data dan lalu lintas data yang lebih besar dalam produksi, Anda dapat menyiapkan server Milvus di Docker atau Kubernetes. Dalam penyiapan ini, gunakan alamat dan port server sebagai uri, misalnyahttp://localhost:19530. Jika Anda mengaktifkan fitur autentikasi pada Milvus, setel token sebagai "<your_username>:<your_password>", jika tidak, Anda tidak perlu menyetel token.
  • Anda juga dapat menggunakan Milvus yang dikelola sepenuhnya di Zilliz Cloud. Cukup setel uri dan token ke Public Endpoint dan API key dari instance Zilliz Cloud Anda.

Memutuskan koneksi

Untuk memutuskan koneksi, gunakan perintah ini

DROP DATABASE milvus_datasource;

Membuat tabel

Untuk menyisipkan data dari tabel yang sudah ada sebelumnya, gunakan CREATE

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

Menghapus koleksi

Menghapus koleksi tidak didukung

Membuat kueri dan memilih

Untuk melakukan kueri basis data menggunakan vektor pencarian, Anda dapat menggunakan search_vector dalam klausa WHERE

Peringatan:

  • Jika Anda menghilangkan LIMIT, maka search_default_limit akan digunakan karena Milvus mengharuskannya
  • Kolom metadata tidak didukung, tapi jika koleksi memiliki skema dinamis yang diaktifkan, Anda dapat melakukan kueri seperti biasa, lihat contoh di bawah ini
  • Kolom dinamis tidak dapat ditampilkan tapi dapat di-query
SELECT * from milvus_datasource.test
WHERE search_vector = '[3.0, 1.0, 2.0, 4.5]'
LIMIT 10;

Jika Anda menghilangkan search_vector, ini menjadi pencarian dasar dan LIMIT atau search_default_limit jumlah entri dalam koleksi akan dikembalikan

SELECT * from milvus_datasource.test

Anda dapat menggunakan klausa WHERE pada bidang dinamis seperti SQL biasa

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

Menghapus rekaman

Anda dapat menghapus entri menggunakan DELETE seperti halnya dalam SQL.

Peringatan:

  • Milvus hanya mendukung penghapusan entitas dengan kunci primer yang ditentukan dengan jelas
  • Anda hanya dapat menggunakan operator IN
DELETE FROM milvus_datasource.test
WHERE id IN (1, 2, 3);

Memasukkan catatan

Anda juga dapat menyisipkan baris individu seperti ini:

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

Memperbarui

Memperbarui record tidak didukung oleh Milvus API. Anda dapat mencoba menggunakan kombinasi DELETE dan INSERT


Untuk detail dan contoh lebih lanjut, silakan lihat Dokumentasi Resmi MindsDB.

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?