You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
49 lines
1.7 KiB
"""
|
|
pip install pymilvus gensim
|
|
"""
|
|
|
|
from pymilvus import FieldSchema, DataType, utility
|
|
|
|
from Config.Config import MS_HOST, MS_PORT, MS_MAX_CONNECTIONS, MS_COLLECTION_NAME, MS_DIMENSION
|
|
from Backup.Milvus.Utils.MilvusCollectionManager import MilvusCollectionManager
|
|
|
|
# 1. 使用连接池管理 Milvus 连接
|
|
milvus_pool = MilvusConnectionPool(host=MS_HOST, port=MS_PORT, max_connections=MS_MAX_CONNECTIONS)
|
|
|
|
# 2. 从连接池中获取一个连接
|
|
connection = milvus_pool.get_connection()
|
|
|
|
# 3. 初始化集合管理器
|
|
collection_name = MS_COLLECTION_NAME
|
|
collection_manager = MilvusCollectionManager(collection_name)
|
|
|
|
# 4. 判断集合是否存在,存在则删除
|
|
if utility.has_collection(collection_name):
|
|
print(f"集合 '{collection_name}' 已存在,正在删除...")
|
|
utility.drop_collection(collection_name)
|
|
print(f"集合 '{collection_name}' 已删除。")
|
|
|
|
# 5. 定义集合的字段和模式
|
|
fields = [
|
|
FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
|
|
FieldSchema(name="tags", dtype=DataType.JSON), # 改为JSON类型存储多个标签
|
|
FieldSchema(name="user_input", dtype=DataType.VARCHAR, max_length=65535),
|
|
FieldSchema(name="timestamp", dtype=DataType.VARCHAR, max_length=32),
|
|
FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=MS_DIMENSION)
|
|
]
|
|
schema_description = "Chat records collection with tags , user_input, and timestamp"
|
|
|
|
# 6. 创建集合
|
|
print(f"正在创建集合 '{collection_name}'...")
|
|
collection_manager.create_collection(fields, schema_description)
|
|
print(f"集合 '{collection_name}' 创建成功。")
|
|
|
|
# 7. 释放连接
|
|
milvus_pool.release_connection(connection)
|
|
|
|
# 8. 关闭连接池
|
|
milvus_pool.close()
|
|
|
|
|
|
|