🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство пользователя
  • Home
  • Docs
  • Руководство пользователя

  • Коллекции

  • Создайте коллекцию мгновенно

Мгновенное создание коллекции

Вы можете мгновенно создать коллекцию, задав ее имя и размерность векторного поля. Milvus автоматически индексирует векторное поле и загружает коллекцию при ее создании. На этой странице показано, как мгновенно создать коллекцию с настройками по умолчанию.

Обзор

Коллекция - это двумерная таблица с фиксированными столбцами и вариативными строками. Каждый столбец представляет поле, а каждая строка - сущность. Для реализации такого структурного управления данными необходима схема. Каждая вставляемая сущность должна удовлетворять ограничениям, определенным в схеме.

Приложения AIGC обычно используют векторные базы данных в качестве базы знаний для управления данными, генерируемыми в процессе взаимодействия пользователей с большими языковыми моделями (LLM). Такие базы знаний практически аналогичны. Чтобы ускорить использование кластеров Milvus в таких сценариях, вам доступен метод мгновенного создания коллекции с помощью всего двух параметров, а именно имени коллекции и размерности векторного поля.

При мгновенном создании коллекции с настройками по умолчанию применяются следующие параметры.

  • Первичное и векторное поля добавляются в схему(id и vector).

  • Первичное поле принимает целые числа и отключает AutoId.

  • Поле vector принимает плавающие векторные вложения.

  • AUTOINDEX используется для создания индекса на векторном поле.

  • COSINE используется для измерения сходства между векторными вкраплениями.

  • Динамическое поле резервов с именем $meta используется для сохранения не определенных схемой полей и их значений в парах ключ-значение.

  • Коллекция автоматически загружается при создании.

Для получения подробной информации о вышеупомянутых терминах см. раздел "Объяснение коллекции".

Стоит отметить, что мгновенное создание коллекции с настройками по умолчанию подходит не для всех сценариев. Советуем ознакомиться с общей процедурой создания коллекции, чтобы лучше понять возможности Milvus.

Быстрая настройка

Таким образом, вы можете мгновенно создать коллекцию, указав только имя коллекции и размерность векторного поля.

from pymilvus import MilvusClient, DataType

CLUSTER_ENDPOINT = "http://localhost:19530"
TOKEN = "root:Milvus"

# 1. Set up a Milvus client
client = MilvusClient(
    uri=CLUSTER_ENDPOINT,
    token=TOKEN 
)

# 2. Create a collection in quick setup mode
client.create_collection(
    collection_name="quick_setup",
    dimension=5
)

res = client.get_load_state(
    collection_name="quick_setup"
)

print(res)

# Output
#
# {
#     "state": "<LoadState: Loaded>"
# }

import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
import io.milvus.v2.service.collection.request.CreateCollectionReq;

String CLUSTER_ENDPOINT = "http://localhost:19530";
String TOKEN = "root:Milvus";

// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
        .uri(CLUSTER_ENDPOINT)
        .token(TOKEN)
        .build();

MilvusClientV2 client = new MilvusClientV2(connectConfig);

// 2. Create a collection in quick setup mode
CreateCollectionReq quickSetupReq = CreateCollectionReq.builder()
        .collectionName("quick_setup")
        .dimension(5)
        .build();

client.createCollection(quickSetupReq);

GetLoadStateReq quickSetupLoadStateReq = GetLoadStateReq.builder()
        .collectionName("quick_setup")
        .build();

Boolean res = client.getLoadState(quickSetupLoadStateReq);
System.out.println(res);

// Output:
// true

// 1. Set up a Milvus Client
import { MilvusClient, DataType } from "@zilliz/milvus2-sdk-node";

const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});

// 2. Create a collection in quick setup mode
let res = await client.createCollection({
    collection_name: "quick_setup",
    dimension: 5,
});  

console.log(res.error_code)

// Output
// 
// Success
// 

res = await client.getLoadState({
    collection_name: "quick_setup"
})

console.log(res.state)

// Output
// 
// LoadStateLoaded
// 

// Go 缺失

export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "collectionName": "quick_setup",
    "dimension": 5
}'

# {
#     "code": 0,
#     "data": {}
# }

Быстрая настройка с помощью пользовательских полей

Если тип метрики, имена полей и типы данных по умолчанию не удовлетворяют вашим потребностям, вы можете настроить эти параметры следующим образом.

from pymilvus import MilvusClient, DataType

CLUSTER_ENDPOINT = "http://localhost:19530"
TOKEN = "root:Milvus"

# 1. Set up a Milvus client
client = MilvusClient(
    uri=CLUSTER_ENDPOINT,
    token=TOKEN 
)

# 2. Create a collection in quick setup mode
client.create_collection(
    collection_name="custom_quick_setup",
    dimension=5,
    primary_field_name="my_id",
    id_type="string",
    vector_field_name="my_vector",
    metric_type="L2",
    auto_id=True,
    max_length=512
)

res = client.get_load_state(
    collection_name="custom_quick_setup"
)

print(res)

# Output
#
# {
#     "state": "<LoadState: Loaded>"
# }

import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
import io.milvus.v2.service.collection.request.CreateCollectionReq;

String CLUSTER_ENDPOINT = "http://localhost:19530";
String TOKEN = "root:Milvus";

// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
        .uri(CLUSTER_ENDPOINT)
        .token(TOKEN)
        .build();

MilvusClientV2 client = new MilvusClientV2(connectConfig);

// 2. Create a collection in quick setup mode
CreateCollectionReq customQuickSetupReq = CreateCollectionReq.builder()
        .collectionName("custom_quick_setup")
        .dimension(5)
        .primaryFieldName("my_id")
        .idType(DataType.VarChar)
        .maxLength(512)
        .vectorFieldName("my_vector")
        .metricType("L2")
        .autoID(true)
        .build();

client.createCollection(customQuickSetupReq);

GetLoadStateReq customQuickSetupLoadStateReq = GetLoadStateReq.builder()
        .collectionName("custom_quick_setup")
        .build();

Boolean res = client.getLoadState(customQuickSetupLoadStateReq);
System.out.println(res);

// Output:
// true

// 1. Set up a Milvus Client
const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});

// 2. Create a collection in quick setup mode
let res = await client.createCollection({
    collection_name: "custom_quick_setup",
    dimension: 5,
    primary_field_name: "my_id",
    id_type: "Varchar",
    max_length: 512,
    vector_field_name: "my_vector",
    metric_type: "L2",
    auto_id: true
});  

console.log(res.error_code)

// Output
// 
// Success
// 

res = await client.getLoadState({
    collection_name: "custom_quick_setup"
})

console.log(res.state)

// Output
// 
// LoadStateLoaded
// 

// Go 缺失

export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "collectionName": "custom_quick_setup",
    "dimension": 5,
    "primaryFieldName": "my_id",
    "idType": "VarChar",
    "vectorFieldName": "my_vector",
    "metricType": "L2",
    "autoId": true,
    "params": {
        "max_length": "512"
    }
}'

Если коллекции, созданные двумя вышеуказанными способами, все еще не удовлетворяют вашим потребностям, выполните процедуру в разделе "Создание коллекции".

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?