Erste Schritte mit einer Milvus-Verbindung
Milvus ist eine Open-Source-Vektordatenbank zum Erstellen von KI-Anwendungen mit Einbettungen aus unstrukturierten Daten. Sie enthält alles, was Sie für den Einstieg benötigen, direkt integriert, und läuft auf Ihrem lokalen Rechner oder gehostet in der Zilliz Cloud (siehe Notebook connect to Zilliz Free Tier).
Milvus hat vier SDKs: Java, Python, React und Ruby. Im Folgenden zeigen wir die Schritte für Python.
Installieren und Starten eines Milvus-Servers
pip install milvus pymilvus #pymilvus is the python sdk
from milvus import default_server
default_server.start()
Hinweis: Wenn Sie eine Verbindung zu Zilliz herstellen, können Sie die Installation von Milvus überspringen und stattdessen den Cluster über die Konsole starten.
Den Milvus-Client abrufen (Verbindung)
from pymilvus import connections
connections.connect(
host=’127.0.0.1’,
port=default_server.listen_port)
Hinweis: Um eine Verbindung zu serverlosem Milvus herzustellen, das in der Zilliz Cloud statt auf localhost läuft, müssen Sie die Endpunkt-URI und das Token aus der Konsole abrufen.
from pymilvus import connections
ENDPOINT=”https://endpoint.api.region.zillizcloud.com:443”
connections.connect(
uri=ENDPOINT,
token=TOKEN)
Eine Collection erstellen
Sie können sich eine Collection wie eine Datenbanktabelle vorstellen. Dort speichern Sie Ihre Einbettungen, Dokumente und alle zusätzlichen Metadaten.
Mit einer Collection sind ein Schema und ein Index verknüpft.
Der Index wird mithilfe eines Vektor-Suchalgorithmus und einer Vektorähnlichkeitsmetrik erstellt. Sie können die Milvus-Standardeinstellungen verwenden. Für eine optimale Leistung sollten Sie jedoch die Parameter konfigurieren. Die Wahl des Suchindex und der Parameter hängt von Ihren Daten ab. Siehe diesen Leitfaden zu Best Practices zur Auswahl eines Suchindex. Dieses Notebook zeigt, wie die Parameter geändert werden.
from pymilvus import (
FieldSchema, DataType,
CollectionSchema, Collection)
## 1. Define a minimum expandable schema.
fields = [
FieldSchema(“pk”, DataType.INT64, is_primary=True, auto_id=True),
FieldSchema(“vector”, DataType.FLOAT_VECTOR, dim=768),
]
schema = CollectionSchema(
fields,
enable_dynamic_field=True,
)
## 2. Create a collection.
mc = Collection(“my_collection_name”, schema)
## 3. Index the collection.
mc.create_index(
field_name=”vector”,
index_params={
“Index_type”: “AUTOINDEX”,
“Metric_type”: “COSINE”,
}
Daten in Milvus einfügen
Wenn Sie bereits Einbettungen aus Ihren unstrukturierten Daten generiert haben, können Sie diese laden.
Eingabedaten können in Form eines pandas-DataFrame oder einer Liste von Dictionaries vorliegen. Sie müssen eine Vektoreinbettung enthalten. Die übrigen Felder sind optional: ursprünglicher Textabschnitt und Metadatenfelder.
from pymilvus import connections
## 1. Input data can be pandas dataframe or list of dicts.
data_rows = []
data_rows.extend([
{“vector”: np.random.randn(768).tolist(),
“text”: “This is a document”,
“source”: “source_url_1”},
{“vector”: np.random.randn(768).tolist(),
“text”: “This is another document”,
“source”: “source_url_2”},
])
## 2. Insert data into milvus.
mc.insert(data_rows)
mc.flush()
Die Collection abfragen
Die Fragen müssen mit demselben Modell eingebettet werden, das verwendet wurde, um die in die Datenbank geladenen unstrukturierten Daten einzubetten. Sie können die Collection mithilfe der Frage-Einbettungen mit den Milvus-Standardsuchparametern abfragen. Für die Auswahl des richtigen Suchindex für optimale Leistung gelten dieselben Best Practices.
Unten gibt Milvus die top_k = 3 ähnlichsten Ergebnisse zurück. Beachten Sie außerdem, dass der ursprüngliche Textabschnitt und die Metadaten zurückgegeben werden, was beim Grounding helfen kann (generierter Text wird auf faktischen Informationen basiert, um Halluzinationen zu reduzieren).
## 1. Search for answers to your embedded questions.
mc.load()
results = mc.search(
data=encoder([“my_question_1”]),
anns_field=”vector”,
output_fields-[“text”, “source”], #optional return fields
limit=3,
param={}, #no params if using milvus defaults
)
## 2. View the answers.
for n, hits in enumerate(results):
print(f”{n}th result:”)
for hit in hits:
print(hit)
In meinem folgenden Blog werde ich behandeln, wie man einen Chatbot mit LangChain und Milvus erstellt. Bleiben Sie dran.
Weitere Ressourcen für den Einstieg in Milvus und Zilliz
Weiterlesen

Introducing Functions and Model Inference on Zilliz Cloud: Automatic Embedding and Reranking with Hosted Models
Zilliz Cloud Functions auto-generate embeddings via OpenAI, Voyage AI, Cohere, or Zilliz Hosted Models. Built-in reranking — just insert text and search.

Milvus WebUI: A Visual Management Tool for Your Vector Database
Explore Milvus WebUI to monitor, manage, and optimize your vector database with real-time insights, performance tracking, and system health monitoring.

Why Deepseek is Waking up AI Giants Like OpenAI And Why You Should Care
Discover how DeepSeek R1's open-source AI model with superior reasoning capabilities and lower costs is disrupting the AI landscape and challenging tech giants like OpenAI.



