ANFRAGE
Einführung in Milvus: Ein praktischer Leitfaden

SOFTWARE & KI

Milvus ist eine leistungsstarke Open-Source-Vektordatenbank, die sich durch Ähnlichkeitssuche und KI-gestützte Analysen auszeichnet. In diesem Blogbeitrag führen wir dich durch die ersten Schritte der Nutzung von Milvus mit Python und zeigen dir, wie du eine Collection erstellst, Daten einfügst und eine einfache Suche durchführst.

Einrichtung der Umgebung

Zuerst richten wir die Umgebung ein und importieren die notwendigen Bibliotheken:

from pymilvus import MilvusClient
from pymilvus import model
import os
from pathlib import Path

cache_dir = Path("./model_cache")
cache_dir.mkdir(exist_ok=True)

os.environ['HF_HOME'] = str(cache_dir)

Verbindung mit Milvus

Als Nächstes erstellen wir eine Instanz des MilvusClient:

client = MilvusClient("milvus_demo.db")

Erstellen einer Collection

Jetzt erstellen wir eine Collection, um unsere Vektordaten zu speichern. Falls die Collection bereits existiert, wird sie zunächst gelöscht:

if client.has_collection(collection_name="demo_collection"):
    client.drop_collection(collection_name="demo_collection")
client.create_collection(collection_name="demo_collection", dimension=768)

Vorbereitung und Einfügen von Daten

Wir verwenden eine Standard-Embedding-Funktion, um unsere Textdaten in Vektoren umzuwandeln:

embedding_fn = model.DefaultEmbeddingFunction()

docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]

vectors = embedding_fn.encode_documents(docs)
print("Dim:", embedding_fn.dim, vectors[0].shape) 

Nun bereiten wir die Daten für das Einfügen vor:

data = [
    {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"}
    for i in range(len(vectors))
]

print("Data has", len(data), "entities, each with fields: ", data[0].keys())
print("Vector dim:", len(data[0]["vector"]))

res = client.insert(collection_name="demo_collection", data=data)

Durchführung einer Suche

Zum Schluss führen wir eine einfache Suchoperation durch:

query_vectors = embedding_fn.encode_queries(["Who is Alan Turing?"])

res = client.search(
    collection_name="demo_collection",  # target collection
    data=query_vectors,  # query vectors
    limit=2,  # number of returned entities
    output_fields=["text", "subject"],  # specifies fields to be returned
)

print(res)

Diese Suche gibt die zwei ähnlichsten Einträge zu unserer Abfrage zurück, einschließlich ihrer Text- und Themenfelder.

Fazit

In diesem Blogbeitrag haben wir die Grundlagen der Nutzung von Milvus mit Python behandelt. Wir haben gelernt, wie man einen Client einrichtet, eine Collection erstellt, Vektordaten einfügt und eine einfache Suche durchführt. Dieses Wissen bildet die Grundlage für komplexere Anwendungen, die die leistungsstarke Vektor-Ähnlichkeitssuche von Milvus nutzen.

Vergiss nicht, die Dokumentation von Milvus zu erkunden, um fortgeschrittene Funktionen und Optimierungen kennenzulernen, während du deine Reise mit dieser vielseitigen Vektordatenbank fortsetzt.

https://www.milvus.io