Начало работы с подключением Milvus
Milvus — это векторная база данных с открытым исходным кодом для создания AI-приложений с эмбеддингами неструктурированных данных. В ней уже встроено всё необходимое для начала работы, и она запускается на вашем локальном компьютере или размещается в Zilliz Cloud (см. блокнот connect to Zilliz Free Tier).
У Milvus есть четыре SDK: Java, Python, React и Ruby. Ниже мы покажем шаги для Python.
Установите и запустите сервер Milvus
pip install milvus pymilvus #pymilvus is the python sdk
from milvus import default_server
default_server.start()
Примечание: Если вы подключаетесь к Zilliz, вы можете пропустить установку Milvus и вместо этого запустить кластер из консоли.
Получите клиент Milvus (подключение)
from pymilvus import connections
connections.connect(
host=’127.0.0.1’,
port=default_server.listen_port)
Примечание: Чтобы подключиться к serverless Milvus, работающему в Zilliz Cloud, вместо localhost, вам нужно получить endpoint uri и token из консоли.
from pymilvus import connections
ENDPOINT=”https://endpoint.api.region.zillizcloud.com:443”
connections.connect(
uri=ENDPOINT,
token=TOKEN)
Создайте коллекцию
Коллекцию можно представить как таблицу базы данных. Это место, где вы будете хранить свои эмбеддинги, документы и любые дополнительные метаданные.
С коллекцией связаны схема и индекс.
Индекс строится с использованием векторного алгоритма поиска и метрики векторного сходства. Вы можете использовать настройки Milvus по умолчанию. Однако для оптимальной производительности вам следует настроить параметры. Выбор поискового индекса и параметров зависит от ваших данных. См. это руководство по лучшим практикам для выбора поискового индекса. В этом блокноте показано, как изменить параметры.
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”,
}
Вставьте данные в Milvus
Если у вас уже есть сгенерированные эмбеддинги из ваших неструктурированных данных, вы можете загрузить их.
Входные данные могут быть в форме pandas dataframe или списка словарей. Они должны содержать векторный эмбеддинг. Остальные поля являются необязательными: исходный текстовый фрагмент и поля метаданных.
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()
Запросите коллекцию
Вопросы необходимо эмбеддить с использованием той же модели, которая использовалась для эмбеддинга неструктурированных данных, загруженных в базу данных. Вы можете запрашивать коллекцию, используя эмбеддинги вопросов с параметрами поиска Milvus по умолчанию. Те же лучшие практики применяются к выбору правильного поискового индекса для оптимальной производительности.
Ниже Milvus вернет top_k = 3 наиболее похожих результата. Также обратите внимание, что возвращаются исходный фрагмент текста и метаданные, что может помочь с grounding (основанием сгенерированного текста на фактической информации для снижения галлюцинаций).
## 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)
В моем следующем блоге я расскажу, как создать чат-бота с использованием LangChain и Milvus. Оставайтесь на связи.
Дополнительные ресурсы для начала работы с Milvus и Zilliz
Читать далее

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.

A Developer's Guide to Exploring Milvus 2.6 Features on Zilliz Cloud
Milvus 2.6 marks a shift from “vector search + glue code” to a more advanced retrieval engine, and it is now Generally Available (GA) on Zilliz Cloud (a managed Milvus service).

OpenAI o1: What Developers Need to Know
In this article, we will talk about the o1 series from a developer's perspective, exploring how these models can be implemented for sophisticated use cases.



