Iniziare con una connessione Milvus
Milvus è un database vettoriale open-source per creare applicazioni di IA con embeddings di dati non strutturati. Include già integrato tutto ciò di cui hai bisogno per iniziare e viene eseguito sulla tua macchina locale o ospitato in Zilliz Cloud (vedi notebook connect to Zilliz Free Tier).
Milvus ha quattro SDK: Java, Python, React, e Ruby. Di seguito, mostreremo i passaggi per Python.
Installa e avvia un server Milvus
pip install milvus pymilvus #pymilvus is the python sdk
from milvus import default_server
default_server.start()
Nota: se ti connetti a Zilliz, puoi saltare l’installazione di Milvus e avviare invece il cluster dalla console.
Ottieni il client Milvus (connessione)
from pymilvus import connections
connections.connect(
host=’127.0.0.1’,
port=default_server.listen_port)
Nota: per connetterti a Milvus serverless in esecuzione su Zilliz Cloud invece che su localhost, devi ottenere l’uri dell’endpoint e il token dalla console.
from pymilvus import connections
ENDPOINT=”https://endpoint.api.region.zillizcloud.com:443”
connections.connect(
uri=ENDPOINT,
token=TOKEN)
Crea una collection
Puoi pensare a una collection come a una tabella di database. È dove memorizzerai i tuoi embeddings, documenti e qualsiasi metadata aggiuntivo.
Associati a una collection ci sono uno schema e un indice.
L’indice è costruito usando un algoritmo di ricerca vettoriale e una metrica di similarità vettoriale. Puoi usare le impostazioni predefinite di Milvus. Tuttavia, per prestazioni ottimali, dovresti configurare i parametri. La scelta dell’indice di ricerca e dei parametri dipende dai tuoi dati. Consulta questa guida alle best practice per scegliere un indice di ricerca. Questo notebook mostra come modificare i parametri.
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”,
}
Inserisci dati in Milvus
Se hai già generato embeddings dai tuoi dati non strutturati, puoi caricarli.
I dati di input possono essere sotto forma di dataframe pandas o di un elenco di dizionari. Devono contenere un embedding vettoriale. I campi rimanenti sono opzionali: frammento di testo originale e campi di metadata.
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()
Esegui query sulla collection
Le domande devono essere trasformate in embedding usando lo stesso modello utilizzato per creare gli embedding dei dati non strutturati caricati nel database. Puoi interrogare la collection usando gli embedding delle domande con i parametri di ricerca predefiniti di Milvus. Le stesse best practice si applicano alla scelta dell’indice di ricerca giusto per prestazioni ottimali.
Di seguito, Milvus restituirà i top_k = 3 risultati più simili. Inoltre, nota che vengono restituiti il frammento di testo originale e i metadati, il che può aiutare con il grounding (basare il testo generato su informazioni fattuali per ridurre le allucinazioni).
## 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)
Nel mio prossimo blog, tratterò come creare un chatbot usando LangChain e Milvus. Restate sintonizzati.
Altre risorse per iniziare con Milvus e Zilliz
Continua a leggere

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Announcing VDBBench 1.0: Open-Source VectorDB Benchmarking with Your Real-World Production Workloads
Discover VDBBench 1.0, an open-source tool for benchmarking vector databases with real-world production data, streaming ingestion, and concurrent workloads.

8 Latest RAG Advancements Every Developer Should Know
Explore eight advanced RAG variants that can solve real problems you might be facing: slow retrieval, poor context understanding, multimodal data handling, and resource optimization.



