2025-09-07 08:00:15 +08:00
|
|
|
import json
|
2025-09-07 08:04:43 +08:00
|
|
|
import logging
|
2025-09-07 08:00:15 +08:00
|
|
|
|
|
|
|
from Config.Config import VOLC_ACCESSKEY, VOLC_SECRETKEY
|
2025-09-07 08:02:23 +08:00
|
|
|
from VikingDBMemoryService import VikingDBMemoryService, MEMORY_COLLECTION_NAME
|
2025-09-07 08:04:43 +08:00
|
|
|
# 控制日志输出
|
|
|
|
logger = logging.getLogger('CollectionMemory')
|
|
|
|
logger.setLevel(logging.INFO)
|
|
|
|
handler = logging.StreamHandler()
|
|
|
|
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
|
|
|
|
logger.addHandler(handler)
|
2025-09-07 08:00:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
def create_memory_collection(collection_name, description="情感陪伴记忆库"):
|
|
|
|
# 初始化记忆库服务
|
|
|
|
memory_service = VikingDBMemoryService(
|
|
|
|
ak=VOLC_ACCESSKEY,
|
|
|
|
sk=VOLC_SECRETKEY,
|
|
|
|
host="api-knowledgebase.mlp.cn-beijing.volces.com",
|
|
|
|
region="cn-beijing"
|
|
|
|
)
|
|
|
|
|
|
|
|
try:
|
|
|
|
# 检查集合是否已存在
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.info(f"正在检查集合 '{collection_name}'...")
|
2025-09-07 08:00:15 +08:00
|
|
|
memory_service.get_collection(collection_name)
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.info(f"集合 '{collection_name}' 已存在,无需重复创建")
|
2025-09-07 08:00:15 +08:00
|
|
|
return False
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
if "collection not exist" not in str(e):
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.info(f"检查集合时发生错误: {str(e)}")
|
2025-09-07 08:00:15 +08:00
|
|
|
raise
|
|
|
|
|
|
|
|
# 创建新集合
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.info(f"开始创建集合 '{collection_name}'...")
|
2025-09-07 08:00:15 +08:00
|
|
|
try:
|
|
|
|
response = memory_service.create_collection(
|
|
|
|
collection_name=collection_name,
|
|
|
|
description=description,
|
|
|
|
builtin_event_types=["sys_event_v1", "sys_profile_collect_v1"],
|
|
|
|
builtin_entity_types=["sys_profile_v1"]
|
|
|
|
)
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.info(f"创建响应: {json.dumps(response, ensure_ascii=False, indent=2)}")
|
|
|
|
logger.info(f"集合 '{collection_name}' 创建成功")
|
2025-09-07 08:00:15 +08:00
|
|
|
|
|
|
|
# 等待集合就绪
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.info("等待集合初始化完成...")
|
2025-09-07 08:13:00 +08:00
|
|
|
# 将独立函数调用改为实例方法调用
|
|
|
|
if memory_service.wait_for_collection_ready():
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.info(f"集合 '{collection_name}' 已就绪,可以开始使用")
|
2025-09-07 08:00:15 +08:00
|
|
|
return True
|
|
|
|
else:
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.info(f"集合 '{collection_name}' 初始化超时")
|
2025-09-07 08:00:15 +08:00
|
|
|
return False
|
|
|
|
|
|
|
|
except Exception as e:
|
2025-09-07 08:04:43 +08:00
|
|
|
logger.error(f"创建集合失败: {str(e)}")
|
2025-09-07 08:00:15 +08:00
|
|
|
raise
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2025-09-07 08:02:23 +08:00
|
|
|
create_memory_collection(MEMORY_COLLECTION_NAME)
|