Introdução a uma conexão com o Milvus
Milvus é um banco de dados vetorial de código aberto para criar aplicações de IA com embeddings de dados não estruturados. Ele vem com tudo de que você precisa para começar já integrado e é executado na sua máquina local ou hospedado no Zilliz Cloud (veja o notebook connect to Zilliz Free Tier).
O Milvus tem quatro SDKs: Java, Python, React, e Ruby. Abaixo, mostraremos os passos para Python.
Instale e inicie um servidor Milvus
pip install milvus pymilvus #pymilvus is the python sdk
from milvus import default_server
default_server.start()
Nota: Se você estiver se conectando ao Zilliz, pode pular a instalação do Milvus e iniciar o cluster a partir do console.
Obtenha o cliente Milvus (conexão)
from pymilvus import connections
connections.connect(
host=’127.0.0.1’,
port=default_server.listen_port)
Nota: Para se conectar ao Milvus serverless em execução no Zilliz Cloud em vez de localhost, você precisa obter o uri do endpoint e o token no console.
from pymilvus import connections
ENDPOINT=”https://endpoint.api.region.zillizcloud.com:443”
connections.connect(
uri=ENDPOINT,
token=TOKEN)
Crie uma collection
Você pode pensar em uma collection como uma tabela de banco de dados. É onde você armazenará seus embeddings, documentos e quaisquer metadados adicionais.
Associados a uma collection estão um schema e um índice.
O índice é criado usando um algoritmo de busca vetorial e uma métrica de similaridade vetorial. Você pode usar os padrões do Milvus. No entanto, para desempenho ideal, você deve configurar os parâmetros. A escolha do índice de busca e dos parâmetros depende dos seus dados. Veja este guia de melhores práticas para escolher um índice de busca. Este notebook mostra como modificar os parâmetros.
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”,
}
Insira dados no Milvus
Se você já gerou embeddings a partir dos seus dados não estruturados, pode carregá-los.
Os dados de entrada podem estar na forma de um dataframe pandas ou de uma lista de dicionários. Eles devem conter um embedding vetorial. Os campos restantes são opcionais: trecho de texto original e campos de metadados.
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()
Consulte a collection
As perguntas precisam ser transformadas em embeddings usando o mesmo modelo usado para gerar embeddings dos dados não estruturados carregados no banco de dados. Você pode consultar a collection usando os embeddings das perguntas com os parâmetros de busca padrão do Milvus. As mesmas melhores práticas se aplicam à escolha do índice de busca correto para desempenho ideal.
Abaixo, o Milvus retornará os top_k = 3 resultados mais semelhantes. Além disso, observe que o fragmento de texto original e os metadados são retornados, o que pode ajudar com a fundamentação (basear o texto gerado em informações factuais para reduzir alucinações).
## 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)
No meu próximo blog, abordarei como criar um chatbot usando LangChain e Milvus. Fique ligado.
Mais recursos para começar a usar o Milvus e a Zilliz
Continue lendo
Stop Building AI Data Infra for the Wrong Stage
Learn how AI data infrastructure should evolve from prototype to enterprise scale, and when Vector Lakebase becomes the right architecture for AI apps.

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

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.



