Premiers pas avec une connexion Milvus
Milvus est une base de données vectorielle open-source pour créer des applications d’IA avec des embeddings de données non structurées. Elle intègre tout ce dont vous avez besoin pour démarrer, et s’exécute sur votre machine locale ou hébergée dans Zilliz Cloud (voir le notebook se connecter à Zilliz Free Tier).
Milvus dispose de quatre SDK : Java, Python, React, et Ruby. Ci-dessous, nous montrerons les étapes pour Python.
Installer et démarrer un serveur Milvus
pip install milvus pymilvus #pymilvus is the python sdk
from milvus import default_server
default_server.start()
Remarque : Si vous vous connectez à Zilliz, vous pouvez ignorer l’installation de Milvus et démarrer le cluster depuis la console à la place.
Obtenir le client Milvus (connexion)
from pymilvus import connections
connections.connect(
host=’127.0.0.1’,
port=default_server.listen_port)
Remarque : Pour vous connecter à Milvus sans serveur exécuté sur Zilliz Cloud au lieu de localhost, vous devez obtenir l’URI du point de terminaison et le jeton depuis la console.
from pymilvus import connections
ENDPOINT=”https://endpoint.api.region.zillizcloud.com:443”
connections.connect(
uri=ENDPOINT,
token=TOKEN)
Créer une collection
Vous pouvez considérer une collection comme une table de base de données. C’est là que vous stockerez vos embeddings, documents et toute métadonnée supplémentaire.
Une collection est associée à un schéma et à un index.
L’index est construit à l’aide d’un algorithme de recherche vectorielle et d’une métrique de similarité vectorielle. Vous pouvez utiliser les valeurs par défaut de Milvus. Toutefois, pour des performances optimales, vous devriez configurer les paramètres. Le choix de l’index de recherche et des paramètres dépend de vos données. Consultez ce guide de bonnes pratiques pour choisir un index de recherche. Ce notebook montre comment modifier les paramètres.
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”,
}
Insérer des données dans Milvus
Si vous avez déjà généré des embeddings à partir de vos données non structurées, vous pouvez les charger.
Les données d’entrée peuvent prendre la forme d’un dataframe pandas ou d’une liste de dictionnaires. Elles doivent contenir un embedding vectoriel. Les champs restants sont facultatifs : fragment de texte original et champs de métadonnées.
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()
Interroger la collection
Les questions doivent être transformées en embeddings à l’aide du même modèle que celui utilisé pour vectoriser les données non structurées chargées dans la base de données. Vous pouvez interroger la collection en utilisant les embeddings des questions avec les paramètres de recherche par défaut de Milvus. Les mêmes bonnes pratiques s’appliquent au choix du bon index de recherche pour des performances optimales.
Ci-dessous, Milvus renverra les top_k = 3 résultats les plus similaires. Notez également que le segment de texte original et les métadonnées sont renvoyés, ce qui peut aider à l’ancrage (fonder le texte généré sur des informations factuelles afin de réduire les hallucinations).
## 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)
Dans mon prochain blog, je vous expliquerai comment créer un chatbot avec LangChain et Milvus. Restez à l’écoute.
Plus de ressources pour démarrer avec Milvus et Zilliz
Continuer à lire

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

Zilliz Skills Breakdown: How AI Agents Master Vector Databases
Zilliz's Milvus Skill (pymilvus, 7 files) and Zilliz Cloud Skill (zilliz-cli, 14 modules) bring vector-DB dev and ops into one Claude Code session.

Vector Databases vs. Hierarchical Databases
Use a vector database for AI-powered similarity search; use a hierarchical database for organizing data in parent-child relationships with efficient top-down access patterns.



